The present disclosure relates to methods, systems and programming for searching applications. More particularly, the present disclosure is directed to methods, systems, and programming for providing mobile application recommendations.
With the current proliferation of smartphone, tablet, and other handheld device usage by consumers and businesses, users are increasingly looking to mobile applications from App stores to provide them with applications they need to take full advantage of their devices. However, most App stores do not offer recommendations that are adequate or even serviceable for all users. The iTunes store represents one example of App stores, where very often, searching for applications leads to a list of results with a few relevant results populating the beginning of the list and results deeper in the list being much less relevant and appearing in a random order. Another example of App stores, the Android Market, does not allow searching from a desktop computer and requires a user to search for applications on a handheld device screen, which may sometimes be less than ideal for browsing search results. Searching also produces inconsistent results as result lists often mix highly rated applications with low rated applications, leaving the user to take the time to sort through the applications. Yet another App store, Blackberry App World, returns excessive results that do not seem tailored to the search terms. Thus, current App stores do not tailor their search queries to provide applications to users based on user interests or provide personalization of application recommendations on the basis of user interests.
The embodiments disclosed herein relate to methods, systems, and programming for adaptive application searching.
In an embodiment, a method, implemented on a machine having at least one processor, storage, and a communication platform connected to a network for providing adaptive application searching is disclosed. An application search request relevant to a user is received. First information associated with the user and second information associated with a plurality of applications is obtained. At least one application of the plurality of applications is identified as of interest based on the application search request, the first information, and the second information. The at least one application is provided in response to the application search request.
In another embodiment, the application search request includes at least one of: a query originating from the user or an automatically initiated application search request.
In another embodiment, the first information includes at least one of: user device information, a profile associated with the user, trending data associated with the user, and past behavior data of the user with respect to usage of applications.
In another embodiment, providing the at least one application comprises filtering the identified at least one application based on criterion comprising at least one of: user social networking groups, user device location, user personal contacts, and user personal relationship data.
In another embodiment, the at least one application is caused to be automatically installed on a device associated with the user.
In an embodiment, a method, implemented on a machine having at least one processor, storage, and a communication platform connected to a network for presenting advertisements is disclosed. At least one application is selected based on user information. At least one advertisement is associated with at least one application. The at least one advertisement is provided for display when the at least one application is displayed in response to an application search query from a user associated with the user information.
In another embodiment, information related to presentation of the at least one advertisement associated with the at least one application is obtained. Statistics associated with the presentation are determined. A record associated with an advertiser is updated based on the statistics. A payment associated with the at least one advertisement is received based on the updated record.
In an embodiment, a method, implemented on a machine having at least one processor, storage, and a communication platform connected to a network for providing sponsored application searching is disclosed. First information associated with a user is obtained. Second information associated with at least one application provided by a sponsor is obtained. At least one application relevant to the user is selected based on the first information and the second information. Third information associated with activity of the user is obtained with respect to the selected at least one application. The third information is provided to the sponsor for analysis. A list of additional applications is provided to the user based on the analyzed third information.
In another embodiment, the sponsor is at least one of: an application developer, an application repository, an application distributor, and an application dealer.
In an embodiment, a method, implemented on a machine having at least one processor, storage, and a communication platform connected to a network for providing applications to a user is disclosed. First information associated with a user and second information associated with at least one application is analyzed. A subscription plan allowing the user to access the at least one application in accordance with predetermined terms is established based on the analyzing. The user is provided access to the at least one application based on the subscription plan.
In another embodiment, the predetermined terms comprise at least one of: a fee for the subscription plan, a number of applications allowed by the subscription plan, an incentive program, and awards to be provided based on conditions associated with usage of the applications.
In an embodiment a system providing adaptive application searching is disclosed. The system includes a search engine for receiving an application search request relevant to a user; a user database storing first information associated with the user; an application trend database storing second information associated with a plurality of applications, and an application search engine for identifying at least one application of the plurality of applications of interest based on the application search request, the first information and the second information, and providing the at least one application as a response to the application search request.
In another embodiment, the application search request includes at least one of: a query originating from the user or an automatically initiated application search request.
In another embodiment, the first information includes at least one of: user device information, a profile associated with the user, trending data associated with the user, and past behavior data of the user with respect to usage of applications.
In another embodiment, the application search engine is further configured for filtering the identified at least one application based on criterion comprising at least one of: user social networking groups, user device location, user personal contacts, and user personal relationship data.
In another embodiment, the application search engine is further configured for causing the at least one application to be automatically installed on a device associated with the user.
Other concepts relate to software for implementing adaptive application searching. A software product, in accord with this concept, includes at least one machine-readable non-transitory medium and information carried by the medium. The information carried by the medium may be executable program code data regarding parameters in association with a request or operational parameters.
In an embodiment, a machine readable and non-transitory medium having information recorded thereon for providing adaptive application searching, where when the information is read by the machine, causes the machine to receive an application search request relevant to a user, obtain first information associated with the user and second information associated with a plurality of applications, identify at least one application of the plurality of applications of interest based on the application search request, the first information, and the second information, and provide the at least one application as a response to the application search request.
In another embodiment, the application search request includes at least one of: a query originating from the user or an automatically initiated application search request.
In another embodiment, the first information includes at least one of: user device information, a profile associated with the user, trending data associated with the user, and past behavior data of the user with respect to usage of applications.
In another embodiment, providing the at least one application comprises filtering the identified at least one application based on criterion comprising at least one of: user social networking groups, user device location, user personal contacts, and user personal relationship data.
In another embodiment, the at least one application is caused to be automatically installed on a device associated with the user.
Additional advantages and novel features will be set forth in part in the description which follows, and in part will become apparent to those skilled in the art upon examination of the following and the accompanying figures or may be learned by production or operation of the embodiments described herein. The advantages of the embodiments described herein may be realized and attained by practice or use of various aspects of the methodologies, instrumentalities, and combinations set forth in the description below.
The methods, systems, and/or programming described herein are further described in terms of exemplary embodiments. These exemplary embodiments are described in detail with reference to the drawings. These embodiments are non-limiting exemplary embodiments, in which like reference numerals represent similar structures throughout the several views of the drawings.
In the following detailed description, numerous specific details are set forth by way of example in order to provide a thorough understanding of the relevant embodiments described herein. However, it should be apparent to those skilled in the art that the present embodiments may be practiced without such details. In other instances, well known methods, procedures, components and/or circuitry have been described at a relatively high-level, without detail, in order to avoid unnecessarily obscuring aspects of the embodiments described herein.
The present disclosure relates to methods, systems and programming for providing adaptive application searching and application recommendations. The embodiments described herein describes an application search engine that leverages information associated with a user and information associated with applications to provide highly relevant application search results and recommendations. The application search engine facilitates search results displayable by both personal computing devices, as well as handheld or mobile devices. When a user searches for applications using the application search engine, search results are returned in a filtered fashion such that the search results will display only the applications for a specific device the user is using or specified by the user, and using information associated with a user such as information from a user profile. Thus, the search results will be targeted to the user. Additionally, information regarding a particular user's application usage can be gathered. Using this information in conjunction with other information associated with the user, application recommendations may be furnished automatically or at the user's request.
Users 510 may be of different types such as users connected to the network via desktop connections (510-4), users connecting to the network via wireless connections such as through a laptop (510-3), a handheld device (510-1), or a built-in device in a motor vehicle (510-2). A user may submit an application search query through network 520. The application search query may be directed to application search engine 530, which provides an application search result back to the user. The application search result provided to the user may be based upon information received from the user, information stored at user database 550 and application trend database 540, third-party information provider 560, and application stores 580. Once a user has access to a search engine provided by application search engine 530, the user may send instructions or requests to search engine 590 and/or application search engine 530 via network 520. Application search engine 530, may in turn produce application search results for display by the user.
For example, one of users 510 submits an application search query to application search engine 530, The search query may be routed to application search engine 530 via search engine 590. Once application search engine 530 receives the application search query, application search engine 530 obtains as much information about the user, the user's device, and available applications from users 510, user database 550, application trend database 540, app stores 580, and third-party information provider 560 to provide filtered and directed search results that are personalized for the user. By using the information obtained, application search engine 530 may also determine application recommendations that may be sent to the user. Application search engine 530 may also store statistics related to the download and purchase of applications by users 510 in order to compile statistics that may be used to respond to future application search queries or provide application recommendations. Third-party information providers 560 may also leverage the information gathered by directing application search engine 530 to produce for display pages to users 510 to download certain applications. Third-party information providers 560 may also leverage the information to direct application search engine 530 to provide users 510 with targeted advertisements for display with application search results, and application recommendations.
Application trend database 540 includes data associated with applications that are trending. Applications that are classified as trending may be applications that may have been viewed or downloaded at a greater rate. Applications may also be classified as trending based on high user reviews for the applications, a user's location, social networking data, and a user's personal relationships (for example, if many of a user's friends in a social network have downloaded or viewed the application.) Trending applications may be defined as applications that have grown in popularity in a short time period. Application trend database 540 may provide this data to application search engine 530 to assist application search engine 530 in determining which applications to list on a search result list in response to an application search query. Application search engine 530 may also use this data to determine which applications to recommend to a user. Third-party information provider 560 may use this data to determine which applications to sponsor or which applications to place advertisements next to during display of the applications in an application search result list.
User database 550 includes data associated with users of a device at which application search queries are entered. This data may include information related to the users device, such as certain characteristics of the device relating to video and audio capabilities, profile information of the user including information about a user's application preferences and hobbies and interests, and information relating to current applications installed on the user's device and the user's usage of these applications. The data in the user database 550 may also include lists of personal contacts, social networking groups, and social networking websites that a user is a part of. All of this information may be used in conjunction with information in application trend database 540 to allow application search engine 530 to determine which applications to list on a search result list in response to an application search query. Application search engine 530 may also use this data to determine which applications to recommend to a user. Third-party information provider 560 may use this data to determine which applications to sponsor or which applications to place advertisements next to during display of the applications in an application search result list.
Third-party information provider 560 may represent a sponsor or an advertiser who wishes to associate their product or services with an application that is listed in an application search result list or application recommendation. Third-party information provider 560, for example, may direct application search engine 530 to present an advertisement alongside any application search result list that displays search results for a search query for “animals.” Additionally, a third-party information provider 560 may sponsor certain applications, which may appear under certain conditions while a user of a device is browsing an application search result list or application recommendation list provided by application search engine 530.
Application stores 580 represent application stores such as iTunes and Android Marketplace which server applications to user devices. Application search engine 530 searches through applications that reside within application stores 580, extracts relevant information about the applications, and analyzes that information in conjunction with any information obtained from the users, user database 550, application trend database 540, and third-party information provider 560 in order to determine an application search result list to provide to a user in response to a user's application search query. Application search engine 530 may also periodically poll application stores 580 for information that may be stored in application trend database 540, such as information regarding ratings of an application or number of downloads of an application.
In an embodiment, the user 510-1 using a mobile device sends an application search query through network 520. The application search query is routed to application search engine 530. Application search engine 530 then obtains information relating to the user and information relating to applications. This information is obtained from both user database 550 and application trend database 540. Application search engine 530 then analyzes the application search request, and determines a list of applications based on the analysis. This list of applications may be provided to user 510-1 from application search engine 530 via network 520 in the form of an application search result list. This application search result list may be formatted to be viewable by a device used by user 510-1.
In another embodiment, based on user settings, certain applications may be automatically installed on a device. For example, user 510-1 may have specified that all applications related to personal finance be automatically installed. Thus, when user 510-1 searches for applications related to personal finance, these applications may be installed automatically once the application search result list is provided.
In another embodiment, application search engine 530 analyzes data from user 510-1, user database 550, and application trend database 540. Based on this analyzed data, application search engine 530 may associate certain advertisements as directed by third-party information provider 560 to specific applications. Thus, when user 510-1 views an application search result list with the applications in the list, the advertisements will also be displayed. Similarly, the advertisements may be associated with the applications to cause the advertisements to display when an application launch page is reached. An application launch page may be reached, for example, when a user 510-1 selects an application from an application search result list to see more information or possibly download the application.
In another embodiment, application search engine 530 may obtain information related to a download of an application by a user 510-1. For example, if user 510-1 downloads an application related to cars, application search engine 530 may receive data representing statistics of user 510-1's usage of the application. Application search engine 530 may update a record based on the download of the application and receive a payment from, for example, the application developer based on the download. Application search engine 530 may also use the statistics to improve application search results provided to user 510-1 and provide improved application recommendations.
In another embodiment, application search engine 530 may obtain information from user database 550 and application trend database 540 in order to analyze the information to assist in establishing a subscription plan according to certain predetermined terms set by either a user and/or application search engine 530. The subscription plan provides a user access to certain applications on the basis of the information which allows the access to applications to be tailored around a user's specific interests.
In another embodiment, and especially in the event that the user is using a mobile or handheld device, such as user 510-1, application search engine 530 provides an application search application to the device of user 510-1. The application search application allows user 510-1 to enter application search queries and solicit application search results from application search engine 530. Likewise, the application also allows application search engine 530 to serve application recommendations, advertisements, sponsored applications, and subscription plan applications to user 510-1, as described above.
In another embodiment, application search engine 530 receives application search queries and application search results through a web browser viewable by the devices of users 510. Additionally, the web browser may also facilitate communication of application recommendations, advertisements, sponsored applications, and subscription plan applications to user 510-1, as described above,
In another example, if device 910-2 represented a mobile smartphone, using a dedicated application searching application may be more efficient and thus device 910-2 may utilize an application searching application to submit application search queries and receive application search results from application search engine 904.
Application search engine 904 includes application search layer 906, web service layer 908, search and recommendation layer 922, feeder 912, and data processor 914. Also part of system 900 are data sources 916, click log mining unit 918, and third party information provider 920.
Data sources 916 may be repositories of user information and application information. For example, data sources 916 may include user database 550 and application trend database 540. As described above, user database 550 stores information related to profiles of users describing user interests and application usage, and application trend database 540 stores information related to which applications are currently trending. Click log mining unit 918 logs application views in a particular application store and provides this data to a data source such as application trend database 540. Application trend database may then store this data in conjunction with other information received and stored by application trend database so that it may be used by application search engine 904 to determine trending applications.
Information and data from data sources may be transmitted to application search engine 904 through data processor 914 which processes the received data and information to prepare the data and information for usage by application search engine 904. The processed data and information may then be submitted to a feeder 912, which simultaneously may receive data from click log mining unit 918, and feed this data to search and recommendation layer 922 for analysis.
Search and recommendation layer 922 of application search engine 904 receives search results from users in user layer 902. For example, a user represented by user layer 902 may transmit an application search query to application search engine 904 to search for a particular type of application based on a keyword or search term. This application search query is directed to search and recommendation layer 922 which analyzes the application search query in conjunction with information and data received from feeder 912. Based on the analysis, search and recommendation layer 922 can generate an application search result list either listing all applicable applications or filtered base upon the user's device. Search and recommendation layer 922 may also determine related categories based on the application search query and provide specific application recommendations based on data such as past application usage of a user, interests of a user obtained from a user profile, geographic location of the user device, time data of the user device, and social networking information related to the user's social network, such as information regarding interests and applications used by those connected to the user via the user's social network. Search and recommendation layer 922 may also leverage information related to the user's device capabilities, such as processing power requirements, memory requirements, power consumption requirements, and bandwidth requirements for applications. Thus, if certain applications do not match the user device's capabilities, these applications may be filtered from the application search result list and not be included.
Search and recommendation layer 922 may also take into account information received from third party information provider 920 For example, if third party information provider 920 is a sponsor or advertiser associated with a particular application, these applications may be ranked higher on an application search result list. Furthermore, these applications may be flagged and provided as application recommendations. Third party information provider 920 may also be a partner, which can request certain applications be excluded from search results based on characteristics of the user's device. For example, if a user's smartphone 910-2 is registered on the Sprint network and third party information provider 920 is a different network operator such as T-Mobile, third party information provider 920 can instruct search and recommendation layer to exclude from the search results certain applications which have been tagged as exclusive to T-Mobile customers, and thus a user of smartphone 910-2 would not see those applications on an application search result list. If third party information provider 920 were an advertiser, the advertiser may specify that a particular advertisement be associated with a certain application such that the advertisement is provided for display at a user device whenever the corresponding application appears on an application search result list or appears as an application recommendation
Web service layer 908 serves as an intermediary layer between application search layer 906 and search and recommendation layer 922. Whereas search and recommendation layer 922 is responsible for receiving application search queries and providing responses to application search queries in the form of application search result lists, application recommendations, advertisements, and other information, application search layer 906 is responsible for the processing data and information received from search and recommendation layer 922 for display by any user device such as devices within user layer 902. As a result, web service layer 908 facilitates communication between application search layer 906 and search and recommendation layer 922 to ensure that results can be delivered appropriately depending on the type of device being used by a user in, for example, user layer 902.
Application search layer 906 receives application search result lists and application recommendations from web service layer 908. Application search layer then provides the application search result lists and application recommendations for display on any variety of devices such as devices 910-1, 910-2, and 910-3 of user layer 902. Application search layer 906, for example, may provide device 910-1, a desktop computing device, with a website viewable through a web browser in order for a user of device 910-1 to submit an application search query. Once results are compiled and received at application search layer 906, application search later 906 provides the results in a suitable form for display based upon information from search and recommendation layer 922. For example, results may be displayed in a certain order based on any of the information analyzed by search and recommendation layer 922. If a current location of device 910-1 is Florida, USA, then depending on what the application search query is, higher ranked results in the application search result list may refer to applications pertaining to local Florida businesses.
In an alternate embodiment, application search layer 906 may provide a mobile handheld device, such as device 910-2, an application search result list formatted for an application search application executing on device 910-2. As such, the initial application search query would also be received by application search engine 904 from device 910-2 through the application search application.
Application search layer 906 may also furnish recommendations determined by search and recommendation layer 922 for display on a device. These recommendations may be formatted to highlight certain sponsored applications or based upon any of the data and information processed by search and recommendation layer 922. Application search layer 906 may further receive information from third-party information provider, such as advertisements that are associated with certain applications. These advertisements may be conveniently displayed next to an associated application within an application search result list.
Application search engine 904 as depicted in
Application recommendations may be provided for display in a carousel style view where each recommended application may be actionable to reach an application launch page. The carousel style view may also be sideswiped to navigate through a list of application recommendations.
Additionally, if a user owns more than one device, which is often the case, application search engine 904, through instructions from user devices, may be configured to synchronize installed applications on all devices, even if the devices use different platforms or operating systems.
An application search engine, as described herein may deliver an application searching application to user devices where the devices are mobile handheld devices. The application searching application allows a user to submit application search queries and provides presentation of results in the form of application search result lists, application recommendations, and advertisements. The application searching application may also provide additional services such as automatic download of certain applications based on a user profile, such as those that are part of a subscription plan. The application searching application may advantageously provide application recommendations based on individual user based interests with regard to other applications or with regard to general interests, direct application search results in real-time as a user types in a search query field, the ability to easily navigate to similar applications, and search results that may be grouped in categories.
Application Scout Unit 1006 receives application recommendations from application search layer 906. Application Scout Unit 1006 processes the application recommendations and provides them to either PC Search Results Page Generator 1002 and Mobile Search Results Page Generator 1004 so that the application recommendations may be displayed either alone or in conjunction with application search results. Application Scout Unit 1006 may also passively, without user input, analyze application recommendations, and select ones that may be most appropriate to deliver to a user device for display based on a information about the user and information about applications such as trending application data. Application Scout Unit 1006 may for example facilitate delivery of an application recommendation or list of application recommendations at predetermined time periods.
At 1204, after application search engine 530 has received an application search request, application search engine 530 obtains information associated with the user sending the application search request and information about various applications that are available from application stores. Information may be obtained directly from a user or user device, such as capabilities of the device, operating system information, and user preferences. Information may also be obtained from user database 550 which may store user device information, profiles of users including user preferences and past behavior of users with regard to applications, user location data, and social networking information related to the users. Application trend database 540 may also provide information to application search engine 530. Application trend database 540 provides application trending information related to which applications are currently trending/or popular. Further information may also be obtained about specific applications from application stores 580.
At 1206, application search engine 530 identifies applications based on the application search request and the information obtained during step 1204. These identified applications are specifically tailored based on the information in order to provide a list of application search results that is relevant to the user originally submitting the application search request or query.
At 1208, the identified applications may be filtered. Filtering the applications may be performed based on certain criteria such as removing certain applications which may no longer be available for download, or removing applications that do not meet a certain price threshold set by a user of a device. The filtering may also be performed based upon other application characteristics such as statistics associated with the identified applications.
At 1210, the filtered applications are provided as a list of search results. This application search result list may then be formatted and provided to a user's device so that a user can view and browse the application search result list. Selection of any of the applications on the application search result list by a user results in the user being brought to an application launch page associated with that application.
If the application search result list was viewed from a device, such as a personal computing device using a web browser, then the process may continue by proceeding to any of steps 1304, 1306, or 1308. If the application search result list was viewed from a mobile handheld device using an application searching application, then the process continues to step 1310. At 1304, in response to receiving a request to download an application, application search engine 530 may cause display of a code on a screen of the personal computing device including scanning instructions. For example, the code may be a OR code that is scannable from a user's mobile handheld device which the application is intended for. Thus, the user may use their handheld device to scan the code on the screen of the personal computing device, the scanning of the code bringing the handheld device automatically to a display allowing download of the application to the mobile handheld device.
At 1306, in response to receiving a request to download an application, application search engine 530 may send a message to a user's mobile handheld device with download instructions. For example, the user of the personal computing device may receive a prompt to enter information about their mobile handheld device, such as a telephone number. Application search engine 530 may then transmit a message using a messaging protocol, such as SMS, MMS, or any other known communication protocol to the mobile handheld device associated with the telephone number with detailed instructions on how to download the application for the mobile handheld device.
At step 1308, in response to receiving a request to download an application, application search engine 530 may send an e-mail with download instructions and a link to the user at a user's mobile handheld device. For example, the user of personal computing device may receive a prompt to enter an e-mail address for the e-mail to be sent to. The user may then view the e-mail from their mobile handheld device and activate the link which provides a display allowing download of the application to the mobile handheld device.
The process then proceeds to 1310, where application search engine 530 updates accounting information based on the download of the application. The accounting information update includes updating a record that the user has downloaded the application to ensure that a developer or associated third-party is paid.
Application downloads accounting unit 1408 is responsible for receiving information from download information analyzer 1404 and receiving accounting criteria 1406 in order to update accounting database 1410 to update records with regard to application downloads, purchases, payments made, and application usage information. Accounting mechanism 1412 is responsible for updating an account-receivable database 1414 associated with third-party accounts to ensure that payment information associated with applications is furnished to third-party accounts. Account-receivable interface 1416 is provided to a third-party to interface with a third-party account-payable mechanism 1418 to facilitate payment based on download of applications to an appropriate third-party. A third-party may be an application developer, application store, application distributor, application dealer, advertiser, or sponsor.
At 1504, application search engine 530 may receive a request for application search. This request may be an application search request or application search query discussed above, received from a user of a device either through a web browser interface or through an application searching application. At 1506, application search engine 530 searches for applications based on the application search request, in accordance with the embodiments described above and herein. The results of the search may be furnished to the user of the device in the form of an application search results list, where selection of an application will bring a user to an application launch page where a user may initiate download of the application selected.
At 1508, application search engine 530 obtains information related to any download of applications by the user. This information may be used to determine which third-party providers may receive payments based on the application. For example, if an application that was downloaded had an associated advertisement that was displayed on the application launch page, then the advertiser, a third-party provider, may receive a payment based on the application download.
At 1510, third party providers associated with the searched and downloaded applications are identified. At 1512, accounting records are updated for downloads of applications that are associated with the identified third party providers.
At 2306, the user is provided access to the applications based on the subscription plan that is established. Subscription plans, as stated, are established base upon predetermined terms including fees for the subscription plan, a number of applications, an incentive fee, and awards that may be provided based on user usage of the applications. Subscription plans may allow provision of certain applications based on certain characteristics of a user or of a user device. For example, if a user is using a certain mobile phone, they may be able to sign up for a subscription plan that provides discounts for application purchases.
To implement the embodiments set forth herein, computer hardware platforms may be used as hardware platform(s) for one or more of the elements described herein. The hardware elements, operating systems and programming languages of such computer hardware platforms are conventional in nature, and it is presumed that those skilled in the art are adequately familiar therewith to adapt those technologies to implement any of the elements described herein. A computer with user interface elements may be used to implement a personal computer (PC) or other type of workstation or terminal device, although a computer may also act as a server if appropriately programmed. It is believed that those skilled in the art are familiar with the structure, programming, and general operation of such computer equipment, and as a result the drawings are self-explanatory.
The computer 2400, for example, includes COM ports 2450 connected to and from a network connected thereto to facilitate data communications. The computer 2400 also includes a central processing unit (CPU) 2420, in the form of one or more processors, for executing program instructions. The exemplary computer platform includes an internal communication bus 2410, program storage and data storage of different forms, e.g., disk 2470, read only memory (ROM) 2430, or random access memory (RAM) 2440, for various data files to be processed and/or communicated by the computer, as well as possibly program instructions to be executed by the CPU. The computer 2400 also includes an I/O component 2460, supporting input/output flows between the computer and other components therein such as user interface elements 2480. The computer 2400 may also receive programming and data via network communications.
Hence, aspects of the methods of developing, deploying, and hosting applications that are interoperable across a plurality of device platforms, as outlined above, may be embodied in programming. Program aspects of the technology may be thought of as “products” or “articles of manufacture” typically in the form of executable code and/or associated data that is carried on or embodied in a type of machine readable medium. Tangible non-transitory “storage” type media include any or all of the memory or other storage for the computers, processors or the like, or associated schedules thereof, such as various semiconductor memories, tape drives, disk drives and the like, which may provide storage at any time for the software programming.
All or portions of the software may at times be communicated through a network such as the Internet or various other telecommunication networks. Such communications, for example, may enable loading of the software from one computer or processor into another, for example, from a server or host computer into the hardware platform(s) of a computing environment or other system implementing a computing environment or similar functionalities in connection with generating application search results. Thus, another type of media that may bear the software elements includes optical, electrical and electromagnetic waves, such as used across physical interfaces between local devices, through wired and optical landline networks and over various air-links. The physical elements that carry such waves, such as wired or wireless links, optical links or the like, also may be considered as media bearing the software. As used herein, unless restricted to tangible “storage” media, terms such as computer or machine “readable medium” refer to any medium that participates in providing instructions to a processor for execution.
Hence, a machine readable medium may take many forms, including but not limited to, a tangible storage medium, a carrier wave medium or physical transmission medium. Non-volatile storage media include, for example, optical or magnetic disks, such as any of the storage devices in any computer(s) or the like, which may be used to implement the system or any of its components as shown in the drawings. Volatile storage media includes dynamic memory, such as a main memory of such a computer platform. Tangible transmission media includes coaxial cables, copper wire, and fiber optics, including wires that form a bus within a computer system. Carrier-wave transmission media can take the form of electric or electromagnetic signals, or acoustic or light waves such as those generated during radio frequency (RF) and infrared (IR) data communications. Common forms of computer-readable media therefore include for example: a floppy disk, a flexible disk, hard disk, magnetic take, any other magnetic medium, a CD-ROM, DVD or DVD-ROM, any other optical media, punch card paper tapes, any other physical storage medium with patterns of holes, a RAM, a PROM and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave transporting data or instructions, cables or links transporting such a carrier wave, or any other medium from which a computer can read programming code and/or data. Many of these forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to a processor for execution.
Those skilled in the art will recognize that the embodiments of the present disclosure are amenable to a variety of modifications an/or enhancements. For example, although the implementation of various components described above may be embodied in a hardware device, it can also be implemented as a software only solution —e.g. an installation on an existing server. In addition, the dynamic relation/event detector and its components as disclosed herein can be implemented as firmware, a firmware/software combination, a firmware/hardware combination, or a hardware/firmware/software combination.
While the foregoing has described what are considered to be the best mode and/or other examples, it is understood that various modifications may be made therein and that the subject matter disclosed herein may be implemented in various forms and examples, and that the teachings may be applied in numerous applications, only some of which have been described herein. It is intended by the following claims to claim and all applications, modifications and variations that fall within the true scope of the present teachings.
The present application claims the benefit of priority to U.S. Provisional Application Ser. No. 61/472,510 filed 6 Apr. 2011, which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61472510 | Apr 2011 | US |