Method and apparatus for providing a marketplace for distributors and businesses

A method and apparatus is provided for displaying data related to a transaction of one or more products from one or more sellers by a buyer. The method includes receiving identifying criteria from the buyer and determining one or more products corresponding to the identifying criteria. The method further includes determining one or more sellers of the one or more products. The method further includes presenting the one or more sellers for each of the one or more products on a display, where the one or more sellers are presented in an order according to criteria. The method further includes presenting an order history of the buyer from the one or more sellers for each product on the display. Additionally, the method further includes presenting a total price of a particular quantity for each product on the display.

BACKGROUND

Transactions between distributors and businesses are currently facilitated using representatives of each distributor that visit businesses and attempt to initiate a business relationship between the distributor and the business. Once the distributor representative signs up the business and takes their order, the business waits to receive the order from the distributor.

In order for the business to obtain products from distributors that meet one or more criteria of the business, owners of the business must research multiple distributors to see which meet their criteria (e.g. price, review score, location, shipping time, product availability, etc). If a representative of a distributor shows up at the business and requests a relationship with the business, the owner of the business cannot confirm whether this distributor is superior to all of the other distributors, in terms of meeting the one or more criteria of the business.

SUMMARY

It is here recognized that conventional methods used to facilitate commerce between distributors and businesses are deficient. In order for the owner of the business to confirm which distributor among all distributors meets one or more criteria (e.g. price, product availability, review score, location, shipping time, etc.) for that business, the owner must spend large amounts of time researching each distributor. This reduces the efficiency of the business, since it depletes resources that could otherwise be spent operating the business. Additionally, the conventional methods that facilitate relationships between distributors and businesses involve representatives of the distributor visiting the business, often at inopportune times, which further reduces the efficiency of the business. Additionally, since the owner of the business cannot confirm whether each distributor is ideal for that business, the business owner is not informed when asked to initiate a business relationship by a representative of one distributor.

The inventors of the present invention developed a method that overcomes these noted drawbacks of conventional methods, by developing a marketplace that links distributors with businesses. In one embodiment, a business visits the marketplace and selects one or more products that the business is interested in purchasing. The marketplace displays a list of distributors that sell the selected products, and ranks the distributors according to one or more criteria. The business owner can then select a particular distributor to supply the business with each product, based on whether the particular distributor meets one or more criteria of the business. The marketplace transmits an order to the particular distributor along with information of the business (e.g. location, etc.) in order to finalize the transaction.

In a first set of embodiments, a method is provided for displaying data related to a transaction of one or more products from one or more sellers by a buyer. The method includes receiving identifying criteria from the buyer. The method further includes determining one or more products corresponding to the identifying criteria, where the one or more products are stored in a memory of a processor. The method further includes determining one or more sellers of the one or more products, where the one or more sellers are stored in the memory of the processor. The method further includes presenting the one or more sellers for each of the one or more products on a display, where the one or more sellers are presented in an order according to criteria. The method further includes presenting an order history of the buyer from the one or more sellers for at least one product on the display. Additionally, the method further includes presenting a total price of a particular quantity for each product on the display, in response to selection of the particular quantity of each product.

In a second set of embodiments, a method is provided for displaying data related to a transaction of one or more products from one or more sellers by a buyer. The method includes receiving identifying criteria of a product from the buyer. The method further includes presenting a first indicator in each active area of a seller region on a display where each active area corresponds to one of the sellers. The active areas in the seller region are displayed in an order based on at least one criteria. A respective seller region is displayed for each product. The method further includes presenting a second indicator in each active area of a product region on the display, where each product region corresponds to one of the products. The method further includes presenting order history data of the product between the buyer and the one or more sellers, where the order history data is presented in an active area of the product region. The method further includes presenting a total payment of the transaction in an active area in a transaction region, where the total payment of a desired quantity of the one or more products from a particular seller.

In a third set of embodiments, an apparatus is provided for displaying data related to the transaction of one or more products from one or more sellers by a buyer. The apparatus includes a processor, a memory including one or more sequences of instructions and a data structure including two or more records and where each record includes two or more fields. The memory and the sequence of instructions are configured to, with the processor, cause the apparatus to perform one or more steps of the above method.

Still other aspects, features, and advantages are readily apparent from the following detailed description, simply by illustrating a number of particular embodiments and implementations, including the best mode contemplated for carrying out the invention. Other embodiments are also capable of other and different features and advantages, and its several details can be modified in various obvious respects, all without departing from the spirit and scope of the invention. Accordingly, the drawings and description are to be regarded as illustrative in nature, and not as restrictive.

DETAILED DESCRIPTION

A method and apparatus are described for displaying data related to a transaction of one or more products from one or more sellers by a buyer. A method and apparatus is also described for displaying data related to a transaction of one or more services from one or more service providers by a consumer. A method and apparatus is also described for providing a marketplace for facilitating transactions between distributors and businesses or retailers. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention.

Notwithstanding that the numerical ranges and parameters setting forth the broad scope are approximations, the numerical values set forth in specific non-limiting examples are reported as precisely as possible. Any numerical value, however, inherently contains certain errors necessarily resulting from the standard deviation found in their respective testing measurements at the time of this writing. Furthermore, unless otherwise clear from the context, a numerical value presented herein has an implied precision given by the least significant digit. Thus a value 1.1 implies a value from 1.05 to 1.15. The term “about” is used to indicate a broader range centered on the given value, and unless otherwise clear from the context implies a broader range around the least significant digit, such as “about 1.1” implies a range from 1.0 to 1.2. If the least significant digit is unclear, then the term “about” implies a factor of two, e.g., “about X” implies a value in the range from 0.5X to 2X, for example, about 100 implies a value in a range from 50 to 200. Moreover, all ranges disclosed herein are to be understood to encompass any and all sub-ranges subsumed therein. For example, a range of “less than 10” can include any and all sub-ranges between (and including) the minimum value of zero and the maximum value of 10, that is, any and all sub-ranges having a minimum value of equal to or greater than zero and a maximum value of equal to or less than 10, e.g., 1 to 4.

Some embodiments of the invention are described below in the context of facilitating transactions of goods between buyers and sellers. In other embodiments, the invention is described in the context of facilitating transactions of goods between distributors and businesses. In still other embodiments, the invention is described in the context of facilitating transactions of goods between distributors and retailers. Other embodiments of the invention are described below in the context of the display of data related to any of the above transactions. In still other embodiments, the invention is described in the context of facilitating transaction of services between providers and consumers of the services. In an example embodiment, the invention is described in the context of the transaction of such services as cell phone plans, periodic office cleanings (e.g. weekly), appliance maintenance (e.g. dishwashing machine) or any type of service package that can be matched from different service providers.

As used herein the term “seller” refers to any entity that sells goods including distributors, retailers, businesses, individuals and non-profit organizations. As used herein the term “distributor” refers to any company who supplies goods or services to a business or retail environment. In some embodiments, “distributor” refers to any company that supplies goods to stores and other businesses that sell to customers. In other embodiments, “distributor” refers to any company that supplies services to stores or other businesses that sell services to customers. As used herein the term “buyer” refers to any entity that purchases goods or services including businesses, retailers, individuals, non-profit organizations. As used herein the term “business” or “retailer” refers to a licensed business that sells goods to customers.

As used herein the term “order history” refers to a number of prior transactions and/or units sold between a buyer (e.g. business) and a seller (e.g. distributor) over a previous time period. In one embodiment, the previous time period is 30 days. In another embodiment, the previous time period is 90 days. In still other embodiments, the previous time period can be adjusted to any length of time (e.g. days, weeks, years, etc). In still other embodiments, “order history” involves calculation of a pattern of how often the buyer makes an order over the previous time period. In an example embodiment, the pattern is calculated by determining a length of time (e.g. days, weeks, months, etc) between consecutive transactions over the previous time period. In an example embodiment, the pattern is determined based on whether the lengths of time between consecutive transactions are within a threshold of each other. In an example embodiment, the threshold is in a range of ±5% to ±20%.

FIG. 1is a block diagram that illustrates an example system100for facilitating transactions between buyers and sellers, according to an embodiment. In an embodiment, the system100is for displaying data relating to a transaction between one or more distributors103and a business105for one or more products or services, according to an embodiment. Although the examples below discuss the processing and displaying of data relating to the transaction of goods, the same principles can be employed for processing and displaying of data relating to the transaction of services.

The system100includes a plurality of distributors103a,103band a business105, where the business105is seeking to initiate a relationship with one or more of the distributors103a,103b, for the purpose of purchasing one or more products from the distributors. Distributor controllers102a,102band a business controller104are in connection through a network (e.g. internet180). Each distributor controller102a,102bis operated by a respective distributor103a,103band the business controller104is operated by the business105. AlthoughFIG. 1An depicts two distributors103a,103band a single business105connected to the system100, the system is not limited to this arrangement and includes embodiments where more than two distributors and more than one business are connected to the system. In various embodiments, the controllers102,104comprise one or more general purpose computer systems, as depicted inFIG. 5or one or more chip sets as depicted inFIG. 6or one or more mobile terminals as depicted inFIG. 7. As further depicted inFIG. 1, a display108is connected to the business controller104.

Additionally, the system100includes a marketplace controller106that is connected to the distributor controllers102a,102band business controller104through the network. In some embodiments, the controller106includes a module107to perform one or more steps of a method described below with reference toFIG. 4A. In other embodiments, the controller106includes the module107to perform one or more steps of a method described below with reference toFIG. 4B. In various embodiments, the controller106comprises one or more general purpose computer systems, as depicted inFIG. 5or one or more chip sets as depicted inFIG. 6, and instructions to cause the computer or chip set to perform one or more steps of a method described below with reference toFIG. 4Aor one or more steps of a method described below with reference toFIG. 4B. In some embodiments, the module107of the controller106is configured to present data relating to a transaction of one or more products from one or more distributors103a,103bon the display108connected to the business controller104.

Additionally, in some embodiments, the system100includes a delivery vehicle111to ship products from the distributors103to the business105. In some embodiments, at various stages of the delivery, a signal with location information of the product is transmitted from the delivery vehicle111(through the network) to the controller106. In an example embodiment, the signal is provided when a package containing the product is scanned (e.g. using any scanner that is appreciated by one skilled in the art) at various stages along a route to the business105. If the location information in the received signal is within a certain threshold of the business105location (e.g. 1 mile or 10 minutes), the controller106is configured to transmit an alert signal (e.g. via email or text or through a mobile app) to the business105over the network. In still other embodiments, the controller106is configured to transmit an alert signal to the business105for each received signal from the delivery vehicle111, to update the business105of every updated location of the product along a delivery route to the business105.

Additionally, in some embodiments, the system100includes an external payment provider113connected to the network. In these embodiments, when a business105registers with the system100, secure payment information (e.g. bank account information, credit card number, etc) is stored with the external payment provider113. After storing the secure payment information of the business105, the external payment provider113tokenizes the payment information in the form of a token and transmits the token to the controller106. In this embodiment, the token of the business105is stored in a memory of the controller106and the secure payment information is not stored in the memory of the controller106.

FIG. 2Ais a block diagram that illustrates an example data structure200used to store product data, according to an embodiment. In some embodiments, the data structure200is stored in a memory of the controller106. In some embodiments, when a distributor103connects to the system100, the controller106sends a signal to the distributor controller102requesting product data of each product sold by the distributor103. In one embodiment, the product data includes one or more of data indicating each product (e.g. product name), data indicating identifying criteria of each product (e.g. search term, UPC, SKU, etc), data indicating the distributor (e.g. distributor name), data indicating a review score of the product (e.g. 5-star review score), data indicating a price of the product and data indicating a location (e.g. delivery area) of the distributor. Upon receiving the product data from each distributor103, the controller106stores the product data in one more records202of the data structure200. In some embodiments, each record202includes a first field204to store data indicating each product, a second field206to store data indicating the identifying criteria, a third field208to store data indicating the distributor103, a fourth field210to store data indicating the review score, a fifth field212to store data indicating the price and a sixth field214to store data indicating the location (e.g. delivery area) of the distributor103. In one embodiment, the controller106stores product data in a respective record202for each product sold by the distributor103. In another embodiment, the controller106stores product data from each distributor103that connects with the system100so that the data structure200includes records202that store product data of every product sold by every distributor103connected with the system100. In some embodiments, the data structure200has less than each of the fields depicted inFIG. 2A.

FIG. 2Bis a block diagram that illustrates an example data structure220used to store business data, according to an embodiment. In some embodiments, the data structure220is stored in a memory of the controller106. In some embodiments, when a business105connects to the system100, the controller106sends a signal to the business controller104requesting one or more criteria of the business105. In one embodiment, the criteria of the business105includes one or more of a name of the business, verification information of the business (e.g. business license, tax identification, etc.), an industry of the business, an annual revenue of the business, an order history between the business105and one or more distributors103, a location of the business and payment information of the business. Upon receiving the criteria from each business105, the controller106stores the criteria in a respective record222of the data structure220. In some embodiments, each record222includes a first field224to store data indicating the business name, a second field226to store data indicating the verification information, a third field228to store data indicating the industry of the business, a fourth field230to store data indicating the annual revenue, a fifth field232to store data indicating the order history, a sixth field234to store data indicating the location of the business, and a seventh field236to store data indicating the token of the business (e.g. received from external payment provider113). In one embodiment, the controller106stores criteria in a respective record222for each business105connected with the system100. In some embodiments, upon receiving the criteria of the business105, a representative of the system100verifies that the criteria is accurate and authentic. In an example embodiment, the representative checks with one or more government records to check that the verification information (e.g. business license) is authentic. In some embodiments, upon verifying the business criteria, the controller106transmits a relationship request signal to one or more distributors103connected to the system100, where the relationship request signal includes the business criteria. Upon receiving a confirmation signal from each distributor103, the controller106authorizes the business105to order products from each distributor103through the system100.

In some embodiments, upon confirming a relationship between the distributor103and the business105, a direct point-to-point messaging system is established between the distributor103and the business105. In an example embodiment, this messaging system can be used by the business105to initially contact a representative of the distributor103, for ongoing communications about orders, for ongoing communications about new products or customer service. In this example embodiment, the messaging system is provided between the distributor103and business105through the controller106. In another example embodiment, this messaging system permits distributors103to send notifications (e.g. push notifications, emails, text, or blast) to businesses105where a relationship request is confirmed, and send them updates about new products or special offers or sales on existing products.

In other embodiments, the data structure220includes other fields to store specific documents, such as contracts, tax forms, sales certificates and invoices. In these embodiments, the distributors103who confirmed a relationship request with the business105are provided access to these fields, for purposes of sharing documents with the business105. Additionally, in other embodiments, the stored documents in these fields can be electronically filed and shared between the distributors103and business105.

Although processes, equipment, and data structures are depicted inFIG. 1,FIG. 2AandFIG. 2Bas integral blocks in a particular arrangement for purposes of illustration, in other embodiments one or more processes or data structures, or portions thereof, are arranged in a different manner, on the same or different hosts, in one or more databases, or are omitted, or one or more different processes or data structures are included on the same or different hosts.

Although data structures, messages and fields are depicted inFIGS. 2A and 2B, as integral blocks in a particular order for purposes of illustration, in other embodiments, one or more data structures or messages or fields, or portions thereof, are arranged in a different order, in the same or different number of data structures or databases in one or more hosts or messages, or are omitted, or one or more additional fields are included, or the data structures and messages are changed in some combination of ways.

FIG. 3Ais an image that illustrates an example of a view350of search items based on inputted identifying criteria, according to an embodiment. In order to perform a transaction on the system100, a business105representative inputs identifying criteria (e.g. search term, UPC, SKU, etc) of one or more products that the business is interested in purchasing from distributors. In an example embodiment, the business105representative inputs “pasta sauce” as the identifying criteria. In response to the inputted identifying criteria, the view350of search items is presented on the display108that is viewed by the business representative. In some embodiments, the controller106generates the list of products in the view350by using to inputted identifying criteria to search the second field206data (e.g. identifying criteria) of each record202in the data structure200, where the list of products is based on the first field204data (e.g. product name) of those records202where the second field206data matched the inputted identifying criteria.

In some embodiments, for each product listed in the view350of search items, a first active area352ais provided and a second active area352bis provided. In one embodiment, selection of the first active area352a(e.g. with a mouse or other input device) causes the controller106to add the product to a custom order guide associated with the business105. In some embodiments, selection of the first active area352afor a product automatically causes the controller106to transmit the relationship request signal to all distributors103that sell the added product. In this embodiment, the product is subsequently added to the custom order guide of the business105, when one or more distributors103confirm the relationship request. In an example embodiment, the business105can only purchase the added product from those distributors103that confirm the relationship request. In other embodiments, selection of the second active area352bcauses the controller106to add the product to a shopping cart associated with the business. In one embodiment, the second active area352is used to expedite delivery of the product and is not used to add the product to the custom order guide.

FIG. 3Bis a block diagram that illustrates an example of an order guide view300for displaying data related to the transaction of one or more products from one or more distributors, according to an embodiment. In some embodiments, after the business105selects one or more products from the view350of search items (e.g. by selecting the first active area352a) and after one or more distributors103selling the product confirm the relationship request sent by the controller106, the product is added to the customized order guide and displayed in the order guide view300. In some embodiments, the order guide view300is presented on the display108and is viewed by a representative of the business105when performing a transaction through the system100.

As depicted inFIG. 3B, the order guide view300includes a first product region308athat includes data related to a first product in the customized order guide and a first distributor region302athat includes data related to one or more distributors that sell the first product. In an embodiment, the one or more distributors of the first distributor region302ahave each confirmed the relationship request with the business. The order guide view300also includes a second product region308bthat includes data related to a second product in the customized order guide and a second distributor region302bthat includes data related to one or more distributors that sell the second product. AlthoughFIG. 3Adepicts two product regions308a,308band two distributor regions302a,302b, the order guide view300is not limited to two product regions and two distributor regions and includes more than two product regions and more than two distributor regions. Additionally, as depicted inFIG. 3B, the order guide view300includes a transaction region312that includes data related to the transaction of one or more products from one or more distributors (e.g. delivery date, total price, amount saved, minimum price of each distributor, etc). Additionally, as depicted inFIG. 3B, the order guide view300includes a tab region392that includes one or more tabs that are used to categorize the products listed in the product region308. In some embodiments, the product regions308are presented on a left side of the view300, the distributor regions302are presented on a right side of the view300, the tab region392is presented above the product regions208and distributor regions302and the transaction region312is presented below the product regions308and distributor regions302.FIG. 3Kis an image that illustrates an example of the tab region392of the order guide view300ofFIG. 3B, according to an embodiment. The tab region392includes a plurality of tabs394that are used to categorize the products listed in the product regions308of the order guide view300. This advantageously permits the business105to quickly access a particular order guide view300for a specific category of products, by selecting one of the tabs394in the tab region392. Another advantage of this feature is that by limiting the order guide view300to products of a specific category, the number of products (e.g. number of product regions308) in the guide view300does not become excessively large. In one embodiment, the tabs394include a collective tab394a(e.g. “items”) for all products. In another embodiment, the tabs394include specific tabs394b(e.g. “food”, “produce”, “beverages”, etc.) that categorize the products listed in the order guide view. In still other embodiments, the tabs394can include main categories for products and additional tabs for sub-categories within each main category (e.g. “meat” sub-category within “food” main category, etc). Additionally, the tab region392includes a plurality of active areas396that perform various functions when selected, including a first active area396a(e.g. “search order guide”) that brings up a search field to search the order guide when selected and a second active area396b(e.g. “add item”) that presents a search field for entering identifying criteria for one or more products to add to the order guide.

FIG. 3Cis an image that illustrates an example of the order guide view300ofFIG. 3B, according to an embodiment. In some embodiments, the first distributor region302aincludes a plurality of active areas304a,304bwhere each active area304is associated with a respective distributor that sells the first product. In one embodiment, each active area304includes data associated with the first product sold by each distributor including the distributor name, a review score, a price and a location of the distributor. In an example embodiment, the controller106retrieves this data from fields208,210,212,214of each record202in the data structure200corresponding with the first product.

In an embodiment, the plurality of active areas304in the first distributor region302aare sorted or ranked based on one or more criteria including an order history of the first product between the business and the respective distributor; an average review score of the first product sold by the respective distributor; a price of the first product sold by the respective distributor and a location of the respective distributor (e.g. delivery date to the business). In an example embodiment, the plurality of active areas304in the first distributor region302are sorted or ranked based on the following criteria, weighted from highest to lowest: order history, average review score, price and location. In an example embodiment, the controller106retrieves the order history from field232of the record222associated with the business. In some embodiments, as depicted inFIG. 3C, one or more criteria are presented or displayed in each active area304including the average review score (e.g. number of stars on 5-star scale), the location (e.g. delivery date) and the price (e.g. in dollars and cents). In other embodiments, the active area304corresponding to the distributor with the best order history is aligned in a left column of the first distributor region302aand is colored different than the other active areas304. In an example embodiment, the active area304corresponding to the distributor with the best order history is colored green and the other active areas304are colored yellow. The second distributor region302bis arranged in a similar manner as the first distributor region302a, where the active areas in the second distributor region302bare associated with a respective distributor that sells the second product.

In some embodiments, the first product region308aincludes a plurality of active areas310a,310b,310c,310dwhere each active area310is associated with the first product sold by the distributors in the first distributor region302a. In one embodiment, a first active area310aindicates a name of the first product. In an example embodiment, the controller106retrieves the name of the first product from field204of the record202associated with the first product. In another embodiment, a second active area310bindicates a preferred quantity of the first product. Adjustment of the preferred quantity of the first product is performed by selection of up and down icons (e.g. using a mouse or other input device) in the first active area310a.

In some embodiments, a third active area310cincludes data relating to one or more prior transactions of the first product between the business and the distributors in the first distributor region302a. In some embodiments, the data related to one or more prior transactions is only displayed in the third active area310cif the data indicates a pattern in the data relating to the one or more prior transactions. In one embodiment, the pattern is established by determining a length of time between consecutive prior transactions and evaluating whether the lengths of time between the consecutive prior transactions are within a threshold of each other. In an example embodiment, the threshold is in ±10%. In another example embodiment, the threshold is ±5%. In another example embodiment, the threshold is in a range from ±5%. to ±20%. In an example embodiment, the data pertaining to the plurality of prior transactions includes dates of the prior transactions and a length of time between the prior transactions. In some embodiments, if the data related to the prior transactions indicates the pattern and if today's date is consistent with the pattern, a row of third active areas310cis alerted using an indicator. Advantageously, this alert indicator will make the row of third active areas310cin the product region308alook visually distinct from another row of active areas310cin a different product region308where there is no established pattern in the prior transaction data. In an example embodiment, the alert is “high” or “low” based on whether placement of the order on today's date is consistent (e.g. alert is “high”) or inconsistent (e.g. alert is “low”) with the data pertaining to the plurality of prior transactions. In other embodiments, the alert is color coded so that the row of active areas310chas a first color (e.g. red) or a second color (e.g. yellow) if no alert is present. In still other embodiments, the alert is placed in all-caps and with an exclamation point (e.g. “HIGH ALERT!”). In still other embodiments, the alert is color coded and placed in all-caps (e.g. “HIGH ALERT!” in red for high alert, “LOW ALERT” in yellow for low alert). In an example embodiment, if the data pertaining to the plurality of prior transactions indicated that the prior transactions took place on a certain calendar date (e.g. 17thof the month) of preceding months and today's date is within a threshold (e.g. 2 days) of the length of time (e.g. 30 days) between transactions, the row of active areas310cis alerted. If today's date is not within the threshold (e.g. 2 days) of the calendar date, the row of active areas310cis not alerted.

In some embodiments, upon moving an icon (e.g. mouse icon) over one of the active areas310cfor a minimum time period, further data pertaining to the prior transactions is presented on the display including one or more of the distributor, date, quantity, price, delivery date and total amount.

In some embodiments, upon selecting one of the active areas310with an input device (e.g. mouse), a graph of the order history of the first product between the business and the distributors in the distributor region302is presented on the display. In an example embodiment, upon selecting the active area310a, the graph is presented on the display.FIG. 3Dis an image that illustrates an example of an order history view320for displaying data related to an order history between the business and the distributors in the distributor region302, according to an embodiment. The order history view320includes a graph330with a horizontal axis332of time in units of calendar years and a vertical axis334of price of the first product in units of dollars. The graph330includes a first trace of the price336of the first product paid by the business to the distributors over time and a second trace of a median price337of the first product paid by all businesses to all distributors over time. The graph330advantageously allows the business to quickly determine whether the price336paid over time (and currently) is below or above the average price337paid by other businesses for the same product over time. In some embodiments, the graph330is generated after selecting the active area310and further selecting a tab322a(e.g. “price history” tab) in the view320.

FIG. 3Eis an image that illustrates an example of a distributor view340for displaying a list of distributors that sell a designated product inFIG. 3C, according to an embodiment. In one embodiment, the distributor view340is presented on the display108by selecting the tab322b(e.g. “distributors”) in the view320ofFIG. 3D. Upon selecting the tab322b, a list of the distributors is presented that sell the first product. In one embodiment, the list of distributors coincides with the distributors in each active area304of the first distributor region302a. In another embodiment, the distributor view340includes an active area (e.g. “view” icon). Upon selection of the active area (e.g. “view” icon) associated with one of the distributors, data regarding the distributor is output on the display108. In an example embodiment, the data output on the display108includes data from one or more of fields208,210,212,214from records202associated with the first product.

In some embodiments, to place an order, the representative of the business105selects a particular distributor from each distributor region302a,302b, such that the selected distributor from each distributor region302a,302bis the designated source of the respective product. In an example embodiment, as depicted inFIG. 3C, the representative of the business selected “Distributor5” as the particular distributor to provide the business with the first product and selected “Distributor2” as the particular distributor to provide the business with the second product. As depicted inFIG. 3C, in one embodiment, the particular distributor in each distributor region302is selected by clicking the icon319adjacent a name of the particular distributor. In other embodiments, the particular distributor in each distributor region302is selected using other means, such as clicking the name of the particular distributor. AlthoughFIG. 3Cdepicts that the distributor active areas304are horizontally aligned in the distributor regions302, in other embodiments, the active areas304are vertically aligned in the distributor region302.

The transaction region312ofFIG. 3Cincludes multiple active areas314a,314b,314cthat include data related to the transaction of one or more products from the one or more particular distributors. In one embodiment, a first active area314aincludes a total price based on a desired quantity (e.g. based on the active area310b) of the first product and a unit price of the first product provided by the particular distributor (e.g. “Distributor1”) of the first distributor region302a. Additionally, in one embodiment, the first active area314aincludes a minimum order amount that is required by the particular distributor (e.g. $500). In one embodiment, if the total price in the first active area314ais equal to or greater than the minimum order amount, the total price indicates that the total price satisfies the minimum order amount. In an example embodiment, where the total price is equal to or exceeds the minimum order amount, the total price is color coded green.

In another embodiment, the second active are314bincludes a total price based on a desired quantity of the second product and a unit price of the second product provided by the particular distributor (e.g. “Distributor2”) of the second distributor region302b. Additionally, in one embodiment, the second active area314bincludes a minimum order amount that is required by the particular distributor (e.g. $400). In one embodiment, if the total price in the second active area314bis less than the minimum order amount, the total price indicates that the total price does not yet satisfy the minimum order amount. In an example embodiment, where the total price is less than the minimum order amount, the total price is color coded red.

FIG. 3Fis an image that illustrates an example of a grand total and amount saved displayed in the order guide view300, according to an embodiment. In another embodiment, the transaction region312includes a fourth active area314dthat includes a total price of all products purchased from all distributors. In some embodiments, the total price is based on the desired quantity of each product (e.g. based on active area310b) and the unit price of each product sold by the particular distributor that is designated as the source of the product. In an additional embodiment, the transaction region312includes a fifth active area314ethat includes an amount saved based on a difference between a maximum total that is based on the desired quantity of each product and a maximum price of each product among all distributors and the total price in the fourth active area314d. In another embodiment, the transaction region314includes a sixth active area314f(e.g. a “confirm order” clickable icon) that confirms the order upon selection of the sixth active area314f.

In some embodiments, upon the business confirming the order, the controller106transmits a signal to the external payment provider113including the token (e.g. field236data), the transaction amount and the name of the distributor103. In response, the external payment provider113processes the payment information of the business105for the transaction amount and transfers the amount to an account for the distributor103at the external payment provider103. The external payment provider113then transmits a signal to the controller106with a payment confirmation number for the transaction. In these embodiments, the controller106then sends separate signals to separate distributors103a,103bover the network, where each signal includes transaction data with the desired quantity of the product from the distributor, the payment confirmation number of the transaction from the external payment provider113and the delivery date and the business location. The confirmation number of the transaction advantageously confirms to the distributor103that funds have been transferred to the distributor103account with the external payment provider113. In other embodiments, where the external payment provider113is not used, the signal further includes the payment information of the business105so that the distributor103can process the payment. In other embodiments, the controller106processes the payment information of the business105and subsequently transmits an electronic payment to the distributor103in the amount of the transaction.

In some embodiments, upon the business confirming the order, the controller106transmits an invoice including the transaction information (e.g. desired quantity of the product, unit price of the product, payment confirmation number of the transaction from external payment provider113, delivery date, business location, etc). In the event that the business105wants a refund, the controller104generates a signal through the network to the controller106requesting the refund. In this embodiment, upon receiving the refund request signal, the controller106transmits a signal to the distributor103to alert the distributor103that the business105is requesting a refund. If the distributor103approves of the refund, a reply signal is transmitted to the controller106approving of the refund and the controller106transmits a signal to the external payment provider113to refund or credit back the account of the business105for the transaction amount.

In another embodiment, as depicted inFIG. 3C, the transaction region312includes a third active area314cthat indicates an estimated date of delivery of the one or more products. In some embodiments, the third active area314cincludes multiple estimated dates of delivery, including a respective date of delivery for a respective distributor that is designated as the source for a respective product.

FIG. 3Gis an image that illustrates an example of a view360of a log-in screen of a mobile device connected to the system100, according to an embodiment. In one embodiment, the log-in screen includes fields for a username and password. In some embodiments, either a business105or a distributor103can both log-in through the log-in screen and sign up with the system100. In one embodiment, the log-in screen includes active areas to open an account with the system100(“sign up”) and another active area to log into the system100once the user name and password are entered (“login”).

FIG. 3His an image that illustrates an example of a view370of a main menu of the system100on a mobile device, according to an embodiment. In one embodiment, the view370of the main menu includes multiple active areas that perform various steps and features. In one embodiment, upon selecting a “products” active area, the business representative is brought to a search screen where they can enter identifying criteria of one or more products that the business105is interested in purchasing from distributors103. In another embodiment, upon selecting a “scan” active area372b, a scan feature of the mobile phone is activated and the business representative can use the mobile phone to scan the identifying criteria (e.g. UPC) of multiple products at the business which the business is interested in purchasing from distributors over the system100. In this embodiment, upon scanning the identifying criteria of each product, the controller106receives the scanned identifying criteria, determines one or more products associated with the received identifying criteria and transmits a signal to one or more distributors103that sell the one or more products to request a relationship with the business105. In an example embodiment, the controller106uses the inputted scanned identifying criteria to search the second field206of each record202, to identify the products (e.g. first field204data of matching records202) and distributors (e.g. third field208data of matching records202). This embodiment advantageously instantly initiates the relationship request between the business105with one or more distributors103by the business representative simply scanning one or more products at the business105location. Thus, this feature makes it easier for the business105to initiate transactions with distributors103over the system100.FIG. 3Jis an image that illustrates an example of a view390of a scan feature of the system100on a mobile device, according to an embodiment. As depicted inFIG. 3J, for each scanned product, an active area is displayed that indicates whether a relationship request has been sent to one or more distributors that sell the scanned product. In an example embodiment, the “requested” active area indicates that for each of the scanned products, a relationship request has been sent to one or more distributors that sell the scanned product.

In another embodiment, upon selecting a “locate me” active area372ain the main menu370, a locate feature (e.g. GPS) of the mobile phone is activated and the business representative can use the mobile phone to locate one or more distributors103that ship products to a geographic region (e.g. zip code) corresponding to the business location. This locate feature advantageously permits the business representative to instantly determine how many distributors103registered with the system100are registered to ship products to the business location. In one embodiment, the locate feature is industry specific or product specific and thus the located distributors are specific to the industry or specific to offering the products sought (e.g. scanned) by the business.FIG. 3Iis an image that illustrates an example of a view380of a locate feature of the system100on a mobile device, according to an embodiment.

Although steps are depicted inFIGS. 4A-4B, as integral steps in a particular order for purposes of illustration, in other embodiments, one or more steps, or portions thereof, are performed in a different order, or overlapping in time, in series or in parallel, or are omitted, or one or more additional steps are added, or the method is changed in some combination of ways.

FIG. 4Ais a flow diagram that illustrates an example of a method400for displaying data relating to a transaction of one or more products from one or more distributors103by the business105. In step402, the identifying criteria of the product is input by the business105(via. controller104) and received at the controller106. In one embodiment, the identifying criteria (e.g. search term, UPC, SKU, etc.) is input by a representative of the business105using an input device (e.g. keyboard on a computer or touchscreen on a mobile device) connected with the controller104, so that the identifying criteria is transmitted to the controller106.

In other embodiments, in step402, the representative of the business105inputs one or more criteria of the business over the network to the controller106. In one embodiment, the criteria of the business includes one or more of the name of the business, verification information of the business (e.g. business license, tax identification, etc.), an industry of the business, an annual revenue of the business, an order history between the business105and one or more distributors103, a location of the business and payment information (e.g. token from the external payment provider113) of the business. In one embodiment, after the controller106receives the criteria of the business105, the criteria are verified. In an example embodiment, a representative of the marketplace controller106verifies the criteria of the business (e.g. verify business license using government records, etc.). In an embodiment, the controller106updates the fields224,226,228,230,232,234,236of the record222of each business after receiving the criteria.

In step404, one or more products are determined that correspond to the inputted identifying criteria in step402. In one embodiment, in step404, the one or more products are retrieved from a memory of the controller106. In this embodiment, in step404, the one or more products are retrieved from the memory of the controller106, by searching the memory of the controller using the inputted identifying criteria from step402. In another embodiment, in step402, the controller106searches the fields206of all records202with the inputted identifying criteria from step402. In this embodiment, the field204of the matching records202indicates the one or more products corresponding to the inputted identifying criteria.

In step406, one or more distributors are determined of the products determined in step404. In one embodiment, in step406, the one or more distributors are retrieved from a memory of the controller106. In this embodiment, in step406, the one or more distributors are retrieved from the memory of the controller106, by searching the memory of the controller using the products determined in step404. In another embodiment, in step406, the field208of the matching records202in step404includes data indicating the one or more distributors that sell the products.

In some embodiments, in step406, the controller106transmits the relationship request signal to the one or more distributors103(i.e. to the distributor controllers102), where the signal includes the business criteria obtained in step402. Upon receiving the relationship request signal from the controller106, the distributors103review the criteria of the business105and determine whether or not to transact business with the business105. In an example embodiment, the distributor103determines whether the location of the business105is within a delivery area of the distributor103. In another example embodiment, the distributor103determines whether the industry of the business is within the industry of the distributor103. In another example embodiment, the distributor103determines whether the annual revenue of the business103exceeds an annual revenue threshold that the distributor103requires in order to transact business. If the distributor103accepts a relationship with the business105, the controller102transmits a confirmation signal to the controller106which is received at the controller106to confirm the relationship request. Upon receiving the relationship request from each distributor103, the controller106is configured to permit the business105to add products sold by each distributor103to the custom order guide300.

In step408, the one or more distributors determined in step406are presented for each of the products determined in step404. In one embodiment, the distributors are presented in an order based on one or more criteria. In one embodiment, the criteria includes the order history of the product between the business and the respective distributor; an average review score of the product sold by the respective distributor; a price of the product sold by the respective distributor and a location of the respective distributor. In an example embodiment, the order of the distributors is presented based on the order guide view300, where the order of the active areas304in the distributor region302is based on one or more of the criteria.

In step410, a particular distributor is selected from the distributors presented in step408. Additionally, in step410, a particular quantity of each product is selected. In one embodiment, the particular distributor in the order guide view300is selected among the presented distributors in the region302, by selecting one of the active areas304in the distributor region302. In an example embodiment, the active area304is selected using the icon319adjacent a name of the particular distributor that the business105chooses as the source of the particular product. Additionally, in an example embodiment, the particular quantity of the product is selected by adjusting the quantity in the active area310bin the product region308. In an example embodiment, the particular quantity of the product is adjusted by selecting up and down arrows with an input device (e.g. mouse) until the desired quantity is displayed for the particular product. In some embodiments, step410is repeated for each product that the business105wants to add to the transaction and thus for each product listed in the order guide view300.

In step412, a total price of the particular quantity of each product is presented in the order guide view300. In some embodiments, the total price is itemized for each distributor103, as depicted in active areas314a,314b. In these embodiments, the itemized price for each distributor includes a minimum order for each distributor and an indicator (e.g. coloring of the total amount) of whether the itemized price is equal to or greater than the minimum order. In other embodiments, in step412, the total price for the particular quantity of all products from all particular distributors selected in step410is presented in the order guide view300. In some embodiments, this total price is depicted in active area314d. In other embodiments, an amount saved is also presented in the active area314eand is based on a difference between a maximum total price (e.g. based on the particular quantity of each product and a maximum price among all distributors) and the total price in active area314d.

In other embodiments, in step412, an order history between the business105and the distributors in the distributor region302is presented in the order guide view300. In one embodiment, the order history is presented in active areas310cof the product region308. In an example embodiment, the active areas310cinclude data pertaining to prior transactions between the business105and the distributors in the distributor region302. In an example embodiment, the active areas310cinclude dates of one or more of the prior transactions and a length of time between the dates of the one or more prior transactions. In one embodiment, the order history is only presented in the order guide view300, if a pattern is determined in the data related to the prior transactions. Additionally, in other embodiments, in step412, if the pattern is determined in the prior transaction data and if today's date is consistent with the pattern, an alert is presented in the product region308. In one embodiment, the order history is hidden by default but is presented if the alert is presented in active area310d. In yet another embodiment, the order history is displayed when an active area (e.g. “history”) in the product region308is selected.

In other embodiments, in step412, the business can confirm the transaction by selecting one or more active areas in the order guide view300. In one embodiment, the active area314f(e.g. “confirm order”) is selected by the business105to initiate the transaction. In some embodiments, upon confirming the transaction, the controller106transmits a signal to the external payment provider113with the token and the transaction amount and receives a payment confirmation number once the external payment provider113processes the payment information of the business105for the transaction amount. The controller106then transmits respective signals to each particular distributor103selected in step410, where the respective signal includes one or more of the particular quantity of the product, the payment confirmation number from the external payment provider113, the price of the product, the total amount of the particular quantity of products from the distributor103(including shipping and tax), a delivery date of the products to the business105and information pertaining to the business105(e.g. location, etc). In some embodiments, upon confirmation of the transaction between the business105and each distributor103, the controller106updates data in the fifth field232of the record222corresponding to the business105, so that the order history of the business105is updated to include the confirmed transaction.

FIG. 4Bis a flow diagram that illustrates an example of a method450for displaying data relating to a transaction of one or more products from one or more distributors103by the business105. Step452is similar to step402. In step454, an indicator is presented in each active area304of the distributor region302, where each active area304corresponds to a respective distributor. In some embodiments, the active areas304within the distributor region302are presented in an order based on one or more criteria (e.g. order history, review score, price, location, etc.) as previously discussed. AlthoughFIG. 3Cdepicts the active areas304presented with a horizontal alignment in the distributor region302, the distributor region302is not limited to this arrangement and includes any alignment (e.g. vertical) of the active areas304.

In step456, an indicator is presented in each active area310in the product region308, where each product region308corresponds to a respective product that the business105wants to purchase from distributors103using the system100. In some embodiments, the active area310aincludes a title of the product. In other embodiments, the active area310bincludes a desired quantity of the product. In other embodiments, the active area310cincludes data pertaining to prior transactions of the product between the business105and the distributors in the distributor region302. In another embodiment, the active area310dincludes an alert to indicate to the business105whether ordering the product on today's date is consistent with the prior transaction data in the active area310c.

In step458, a particular distributor is selected in the distributor region302by selecting a particular active area304. In some embodiments, the selection of the particular active area304is done by selecting an icon319adjacent to a name of the particular distributor with an input device (e.g. mouse, touchscreen). In an embodiment, the business105selects the particular distributor by considering one or more of the criteria (e.g. order history, review score, price, location) that were used to sort the distributors in the distributor region302.

In step460, an order history between the business105and the distributors in the distributor region302is presented in the order guide view300. In some embodiments, the order history is presented in an active area310of the product region308. In an example embodiment, the order history is presented in active areas310cthat include data pertaining to multiple prior transactions between the business105and the distributors for the product.

In step462, the desired quantity of the product is selected. In one embodiment, the desired quantity of the product is selected by adjusting an active area310within the product region308. In an example embodiment, the desired quantity of the product is selected by adjusting up and down arrows in the active area310buntil a displayed quantity in the active area310bis the desired quantity.

In step464, an indicator is presented in each active area314of the transaction region312of the order guide view300. In one embodiment, a total price of the desired quantity of the product is presented in the active area314, where the total price is based on the desired quantity of the product and the unit price of the product offered by the distributor. In some embodiments, the total price is presented in active area314dand is a total price of the desired quantity of all products from all particular distributors selected in step458. In other embodiments, the total price is presented in active area314a,314b, and is an itemized price of the desired quantity of the product from one distributor.

In other embodiments, in step464, a delivery date is presented in the active area314cthat indicates the delivery date of the desired quantity of the products to the business105. In some embodiments, a single delivery date is presented in the active area314c, where each distributor selected in step458estimates the same delivery date. In other embodiments, multiple delivery dates are presented in the active area314c, where the distributors selected in step458estimate different delivery dates.

In other embodiments, the controller106searches the fifth field232data (e.g. order history) for each record202(e.g. each business105) to determine a geographical scope and time scope of the order history of the transactions placed by the businesses105. In these embodiments, the controller106subsequently transmits a signal to the distributors103where the signal indicates the geographic scope and time scope of the order history of the businesses105. This feature advantageously permits the system100to inform the distributors103about the quantity (e.g. number of businesses105), geographic scope and time scope of transactions for products offered by the distributors103. In an example embodiment, this information may incentivize one or more distributors103to offer products in geographical areas previously not offered.

2. Hardware Overview

A sequence of binary digits constitutes digital data that is used to represent a number or code for a character. A bus510includes many parallel conductors of information so that information is transferred quickly among devices coupled to the bus510. One or more processors502for processing information are coupled with the bus510. A processor502performs a set of operations on information. The set of operations include bringing information in from the bus510and placing information on the bus510. The set of operations also typically include comparing two or more units of information, shifting positions of units of information, and combining two or more units of information, such as by addition or multiplication. A sequence of operations to be executed by the processor502constitutes computer instructions.

Computer system500also includes a memory504coupled to bus510. The memory504, such as a random access memory (RAM) or other dynamic storage device, stores information including computer instructions. Dynamic memory allows information stored therein to be changed by the computer system500. RAM allows a unit of information stored at a location called a memory address to be stored and retrieved independently of information at neighboring addresses. The memory504is also used by the processor502to store temporary values during execution of computer instructions. The computer system500also includes a read only memory (ROM)506or other static storage device coupled to the bus510for storing static information, including instructions, that is not changed by the computer system500. Also coupled to bus510is a non-volatile (persistent) storage device508, such as a magnetic disk or optical disk, for storing information, including instructions, that persists even when the computer system500is turned off or otherwise loses power.

Information, including instructions, is provided to the bus510for use by the processor from an external input device512, such as a keyboard containing alphanumeric keys operated by a human user, or a sensor. A sensor detects conditions in its vicinity and transforms those detections into signals compatible with the signals used to represent information in computer system500. Other external devices coupled to bus510, used primarily for interacting with humans, include a display device514, such as a cathode ray tube (CRT) or a liquid crystal display (LCD), for presenting images, and a pointing device516, such as a mouse or a trackball or cursor direction keys, for controlling a position of a small cursor image presented on the display514and issuing commands associated with graphical elements presented on the display514.

Computer system500also includes one or more instances of a communications interface570coupled to bus510. Communication interface570provides a two-way communication coupling to a variety of external devices that operate with their own processors, such as printers, scanners and external disks. In general the coupling is with a network link578that is connected to a local network580to which a variety of external devices with their own processors are connected. For example, communication interface570may be a parallel port or a serial port or a universal serial bus (USB) port on a personal computer. In some embodiments, communications interface570is an integrated services digital network (ISDN) card or a digital subscriber line (DSL) card or a telephone modem that provides an information communication connection to a corresponding type of telephone line. In some embodiments, a communication interface570is a cable modem that converts signals on bus510into signals for a communication connection over a coaxial cable or into optical signals for a communication connection over a fiber optic cable. As another example, communications interface570may be a local area network (LAN) card to provide a data communication connection to a compatible LAN, such as Ethernet. Wireless links may also be implemented. Carrier waves, such as acoustic waves and electromagnetic waves, including radio, optical and infrared waves travel through space without wires or cables. Signals include man-made variations in amplitude, frequency, phase, polarization or other physical properties of carrier waves. For wireless links, the communications interface570sends and receives electrical, acoustic or electromagnetic signals, including infrared and optical signals, that carry information streams, such as digital data.

The term computer-readable medium is used herein to refer to any medium that participates in providing information to processor502, including instructions for execution. Such a medium may take many forms, including, but not limited to, non-volatile media, volatile media and transmission media. Non-volatile media include, for example, optical or magnetic disks, such as storage device508. Volatile media include, for example, dynamic memory504. Transmission media include, for example, coaxial cables, copper wire, fiber optic cables, and waves that travel through space without wires or cables, such as acoustic waves and electromagnetic waves, including radio, optical and infrared waves. The term computer-readable storage medium is used herein to refer to any medium that participates in providing information to processor502, except for transmission media.

Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, a hard disk, a magnetic tape, or any other magnetic medium, a compact disk ROM (CD-ROM), a digital video disk (DVD) or any other optical medium, punch cards, paper tape, or any other physical medium with patterns of holes, a RAM, a programmable ROM (PROM), an erasable PROM (EPROM), a FLASH-EPROM, or any other memory chip or cartridge, a carrier wave, or any other medium from which a computer can read. The term non-transitory computer-readable storage medium is used herein to refer to any medium that participates in providing information to processor502, except for carrier waves and other signals.

Network link578typically provides information communication through one or more networks to other devices that use or process the information. For example, network link578may provide a connection through local network580to a host computer582or to equipment584operated by an Internet Service Provider (ISP). ISP equipment584in turn provides data communication services through the public, world-wide packet-switching communication network of networks now commonly referred to as the Internet590. A computer called a server592connected to the Internet provides a service in response to information received over the Internet. For example, server592provides information representing video data for presentation at display514.

The invention is related to the use of computer system500for implementing the techniques described herein. According to one embodiment of the invention, those techniques are performed by computer system500in response to processor502executing one or more sequences of one or more instructions contained in memory504. Such instructions, also called software and program code, may be read into memory504from another computer-readable medium such as storage device508. Execution of the sequences of instructions contained in memory504causes processor502to perform the method steps described herein. In alternative embodiments, hardware, such as application specific integrated circuit520, may be used in place of or in combination with software to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware and software.

The signals transmitted over network link578and other networks through communications interface570, carry information to and from computer system500. Computer system500can send and receive information, including program code, through the networks580,590among others, through network link578and communications interface570. In an example using the Internet590, a server592transmits program code for a particular application, requested by a message sent from computer500, through Internet590, ISP equipment584, local network580and communications interface570. The received code may be executed by processor502as it is received, or may be stored in storage device508or other non-volatile storage for later execution, or both. In this manner, computer system500may obtain application program code in the form of a signal on a carrier wave.

Various forms of computer readable media may be involved in carrying one or more sequence of instructions or data or both to processor502for execution. For example, instructions and data may initially be carried on a magnetic disk of a remote computer such as host582. The remote computer loads the instructions and data into its dynamic memory and sends the instructions and data over a telephone line using a modem. A modem local to the computer system500receives the instructions and data on a telephone line and uses an infra-red transmitter to convert the instructions and data to a signal on an infra-red a carrier wave serving as the network link578. An infrared detector serving as communications interface570receives the instructions and data carried in the infrared signal and places information representing the instructions and data onto bus510. Bus510carries the information to memory504from which processor502retrieves and executes the instructions using some of the data sent with the instructions. The instructions and data received in memory504may optionally be stored on storage device508, either before or after execution by the processor502.

In one embodiment, the chip set600includes a communication mechanism such as a bus601for passing information among the components of the chip set600. A processor603has connectivity to the bus601to execute instructions and process information stored in, for example, a memory605. The processor603may include one or more processing cores with each core configured to perform independently. A multi-core processor enables multiprocessing within a single physical package. Examples of a multi-core processor include two, four, eight, or greater numbers of processing cores. Alternatively or in addition, the processor603may include one or more microprocessors configured in tandem via the bus601to enable independent execution of instructions, pipelining, and multithreading. The processor603may also be accompanied with one or more specialized components to perform certain processing functions and tasks such as one or more digital signal processors (DSP)607, or one or more application-specific integrated circuits (ASIC)609. A DSP607typically is configured to process real-world signals (e.g., sound) in real time independently of the processor603. Similarly, an ASIC609can be configured to performed specialized functions not easily performed by a general purposed processor. Other specialized components to aid in performing the inventive functions described herein include one or more field programmable gate arrays (FPGA) (not shown), one or more controllers (not shown), or one or more other special-purpose computer chips.

The processor603and accompanying components have connectivity to the memory605via the bus601. The memory605includes both dynamic memory (e.g., RAM, magnetic disk, writable optical disk, etc.) and static memory (e.g., ROM, CD-ROM, etc.) for storing executable instructions that when executed perform one or more steps of a method described herein. The memory605also stores the data associated with or generated by the execution of one or more steps of the methods described herein.

Pertinent internal components of the telephone include a Main Control Unit (MCU)703, a Digital Signal Processor (DSP)705, and a receiver/transmitter unit including a microphone gain control unit and a speaker gain control unit. A main display unit707provides a display to the user in support of various applications and mobile terminal functions that perform or support the steps as described herein. The display707includes display circuitry configured to display at least a portion of a user interface of the mobile terminal (e.g., mobile telephone). Additionally, the display707and display circuitry are configured to facilitate user control of at least some functions of the mobile terminal. An audio function circuitry709includes a microphone711and microphone amplifier that amplifies the speech signal output from the microphone711. The amplified speech signal output from the microphone711is fed to a coder/decoder (CODEC)713.

A radio section715amplifies power and converts frequency in order to communicate with a base station, which is included in a mobile communication system, via antenna717. The power amplifier (PA)719and the transmitter/modulation circuitry are operationally responsive to the MCU703, with an output from the PA719coupled to the duplexer721or circulator or antenna switch, as known in the art. The PA719also couples to a battery interface and power control unit720.

The encoded signals are then routed to an equalizer725for compensation of any frequency-dependent impairments that occur during transmission though the air such as phase and amplitude distortion. After equalizing the bit stream, the modulator727combines the signal with a RF signal generated in the RF interface729. The modulator727generates a sine wave by way of frequency or phase modulation. In order to prepare the signal for transmission, an up-converter731combines the sine wave output from the modulator727with another sine wave generated by a synthesizer733to achieve the desired frequency of transmission. The signal is then sent through a PA719to increase the signal to an appropriate power level. In practical systems, the PA719acts as a variable gain amplifier whose gain is controlled by the DSP705from information received from a network base station. The signal is then filtered within the duplexer721and optionally sent to an antenna coupler735to match impedances to provide maximum power transfer. Finally, the signal is transmitted via antenna717to a local base station. An automatic gain control (AGC) can be supplied to control the gain of the final stages of the receiver. The signals may be forwarded from there to a remote telephone which may be another cellular telephone, any other mobile phone or a land-line connected to a Public Switched Telephone Network (PSTN), or other telephony networks.

Voice signals transmitted to the mobile terminal701are received via antenna717and immediately amplified by a low noise amplifier (LNA)737. A down-converter739lowers the carrier frequency while the demodulator741strips away the RF leaving only a digital bit stream. The signal then goes through the equalizer725and is processed by the DSP705. A Digital to Analog Converter (DAC)743converts the signal and the resulting output is transmitted to the user through the speaker745, all under control of a Main Control Unit (MCU)703which can be implemented as a Central Processing Unit (CPU) (not shown).

The MCU703receives various signals including input signals from the keyboard747. The keyboard747and/or the MCU703in combination with other user input components (e.g., the microphone711) comprise a user interface circuitry for managing user input. The MCU703runs a user interface software to facilitate user control of at least some functions of the mobile terminal701as described herein. The MCU703also delivers a display command and a switch command to the display707and to the speech output switching controller, respectively. Further, the MCU703exchanges information with the DSP705and can access an optionally incorporated SIM card749and a memory751. In addition, the MCU703executes various control functions required of the terminal. The DSP705may, depending upon the implementation, perform any of a variety of conventional digital processing functions on the voice signals. Additionally, DSP705determines the background noise level of the local environment from the signals detected by microphone711and sets the gain of microphone711to a level selected to compensate for the natural tendency of the user of the mobile terminal701.

An optionally incorporated SIM card749carries, for instance, important information, such as the cellular phone number, the carrier supplying service, subscription details, and security information. The SIM card749serves primarily to identify the mobile terminal701on a radio network. The card749also contains a memory for storing a personal telephone number registry, text messages, and user specific mobile terminal settings.

In some embodiments, the mobile terminal701includes a digital camera comprising an array of optical detectors, such as charge coupled device (CCD) array765. The output of the array is image data that is transferred to the MCU for further processing or storage in the memory751or both. In the illustrated embodiment, the light impinges on the optical array through a lens763, such as a pin-hole lens or a material lens made of an optical grade glass or plastic material. In the illustrated embodiment, the mobile terminal701includes a light source761, such as a LED to illuminate a subject for capture by the optical array, e.g., CCD765. The light source is powered by the battery interface and power control module720and controlled by the MCU703based on instructions stored or loaded into the MCU703.

In the foregoing specification, the invention has been described with reference to specific embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. Throughout this specification and the claims, unless the context requires otherwise, the word “comprise” and its variations, such as “comprises” and “comprising,” will be understood to imply the inclusion of a stated item, element or step or group of items, elements or steps but not the exclusion of any other item, element or step or group of items, elements or steps. Furthermore, the indefinite article “a” or “an” is meant to indicate one or more of the item, element or step modified by the article. As used herein, unless otherwise clear from the context, a value is “about” another value if it is within a factor of two (twice or half) of the other value. While example ranges are given, unless otherwise clear from the context, any contained ranges are also intended in various embodiments. Thus, a range from 0 to 10 includes the range 1 to 4 in some embodiments.