1. Technical Field
The present invention relates generally to searching and identifying a computer application, and more particularly, the present invention relates to classifying and organizing computer applications and enabling simple retrieval and identification of computer applications.
2. Discussion of Related Art
The known is the art market place of smart phones applications, such as the apps store of apple provide mainly to techniques for search new applications: search by category or free search by keywords based on definitions provided by the developers of the application. These search techniques are limited to predefined categorizations and definitions which in many cases don't apply to user's needs when trying to search for applications which can perform specific tasks.
The present invention discloses a method for discovering and activating an application in a computer device. The method comprising the steps of: defining at least one application based on its functionality including at least one action which is enabled by the application, identifying a required action to be performed by the user and searching loading a relevant application for the identified action, wherein the process of defining and identifying are performed by at least one processor unit.
According to some embodiments of the present invention the functionality is further defined by at least one type of object on which the action is applied upon further identifying the object upon which the action is to be applied.
According to some embodiments of the present invention the identifying is achieved by a UI interface on the computer device which enables a user to define the required action to be performed and or the object type on which the action is applied upon.
According to some embodiments of the present invention defining include inserting application description and set of filters.
According to some embodiments of the present invention the defining includes define required interactivity procedure with the user.
According to some embodiments of the present invention the definition of the application is stored in at least one of: application metadata, central applications database, SDK package.
According to some embodiments of the present invention the method further comprising the step of defining a call up activation component by functionality based on required action and object, enabling cross functionality activation between applications.
According to some embodiments of the present invention the searching further include searching the internal memory of the computer device at the first stage and incase the relevant application is not found searching remote application database and downloading the relevant application.
According to some embodiments of the present invention the method further comprises the steps of presenting the user list of available relevant application and enabling him to select at least one application.
According to some embodiments of the present invention the method further comprising the step of ranking the relevant applications.
According to some embodiments of the present invention the identifying is activated within the processing of currently running application.
According to some embodiments of the present invention the method further comprises the step of returning to the originating application.
According to some embodiments of the present invention the method further comprises the step of learning and recording user's usage pattern and characteristics of application in relation to actions or objects.
According to some embodiments of the present invention the method further comprises the step of predicting the next application to be used by the user based on current context of application usage and learned usage pattern and characteristics.
The present invention discloses a system for discovering and activating an application in a computer device. The system comprised of: integration application enabling to define and search at least one application based on its functionality including at least one action which is enabled by the application and a UI interface module on the computer device which enables a user to search, load and activate an application by defining the required action to be performed and or the object type on which the action is applied upon.
According to some embodiments of the present invention the functionality is further defined by at least one type of object on which the action is applied upon further identifying the object upon which the action is to be applied.
According to some embodiments of the present invention the defining of the required action is achieved by a enabling a user to define the required action to be performed and or the object type on which the action is applied upon.
According to some embodiments of the present invention the defining of an application include defining the required interactivity procedure with the user.
According to some embodiments of the present invention the definition of the application is stored in at least one of: application metadata, central applications database, SDK package.
According to some embodiments of the present invention the system further comprises a call up activation component by functionality based on required action and object, enabling cross functionality activation between applications.
According to some embodiments of the present invention the searching further includes searching the internal memory and or storage of the computer device at the first stage and incase the relevant application is not found searching remote application database and downloading the relevant application.
According to some embodiments of the present invention the UI interface further presents the user list of available relevant application and enabling him to select at least one application.
According to some embodiments of the present invention the system further comprises a module for ranking the relevant applications.
According to some embodiments of the present invention the identifying is activated within the processing of currently running application.
According to some embodiments of the present invention the system further comprises a module for learning and recording user's usage pattern and characteristics of application in relation to actions or objects.
According to some embodiments of the present invention the system further comprises a module for predicting the next application to be used by the user based on current context of application usage and learned usage pattern and characteristics.
The present invention will be more readily understood from the detailed description of embodiments thereof made in conjunction with the accompanying drawings of which:
Before explaining at least one embodiment of the invention in detail, it is to be understood that the invention is not limited in its application to the details of construction and the arrangement of the components set forth in the following description or illustrated in the drawings. The invention is applicable to other embodiments or of being practiced or carried out in various ways. Also, it is to be understood that the phraseology and terminology employed herein is for the purpose of description and should not be regarded as limiting.
The term “computerized device” as used herein in this application, is defined as any device with processing capabilities such as a processing device, a computerized mobile device such as Smartphone and a tablet.
Embodiments of the present invention provide a method and system for improving a process of discovering application programs that are published in an electronic market of computer applications, such the Apps stores of Apple. The application programs may be installed on a computerized device or optionally installed on a personal computer. The market place of applications may be provided through any data communication network such as the Internet.
The present invention provides an integration application which can be implemented as a stand-alone service or integrated as part of a distribution platform. An end user of the application is equipped with a personal computerized device 40 such as a Smartphone, a tablet or a personal computer. The personal computerized device 40 optionally includes a designated user interface (UI) for enabling the user to select application according to her or his needs based on the application functionality.
According to alternative embodiments, the required application functionality can be identified by analyzing user actions and behavior. For example, identifying when a user is performing an activity on an object such as trying to open a file which is not recognized by the operating systems, searching for an application that its functionality is managing such a file type.
According to some embodiments of the invention, the filtering module 200 may enable to match implicitly or explicitly applications to the user profile including device limitation, geographic location, language, application usage history, current action being taken and current objects being worked on. The matching may check the following parameters: Target operating system and hardware, Target regions, License& pricing terms, usage categories, target language, target computing platform, development stage, required permissions, size of application and user's device memory capacity. According to some embodiments of the present invention the filtering definitions may be controlled by a system administrator of an organization which can define the available application for the organization employees.
The application functionality is defined by the type of at least one action performed by the application, the params and optionally the type of objects on which the actions are performed. The type of objects may be for example: an image, a video, a Portable Document Format (PDF) file, a contact etc. The type of actions may include: share, print, view, crop, effects for images or video and Short Message Service (SMS), call, send a vcard file, a video call, and a chat.
An action may be a general action that is not related to a specific type of object (such as zoom). The developer may define that the application is capable to perform any action on a specific type of object (e.g. Word application in relation to docs files). The list of type of actions and objects is not limited and developers may suggest adding new types of actions and objects.
At the last step, the developer defines the definitions and the parameters which are related to the user interactivity procedure with the application, such as authentication procedure and parameters. Once all application data is defined by the user, several update procedures take place: updating the central database (step 112) with application definitions and functionality, updating application metadata of application functionality (step 110) and/or creating platform specific definitions (step 114).
The application can be activated by using different implementation other than direct activation: through the operating system of the Smartphone or as a sub-application in another application. To enable such sub-application implementations call up activation module/component are defined by functionality based on the required action and object (step 116). For android based device are defined Intents to enable cross functionality between applications (calling one application functionality from another application) (step 114). For iOS implementation it is suggested to define a URL scheme (step 118). The different implantations described herein for the different operating systems are examples only, any known technique in the art may be used for the same purpose, such technique may include utilizing data network URLs for activating actions on web applications which run under a browsing application.
In case no internal application is found, an external search is performed in the application database 10, according to the required functionality (step 212). In return to a search query, a ranked list of available applications having the relevant functionality definition is received (step 214).
The ranked list may be presented to the user for selection of a single application (step 216). Alternatively, the selection may be performed automatically according to defined rules and/or user profile. Meaning, for example, one user may prefer to use only a free application, while another user may prefer to use the most updated applications or the application having the most advanced features. After the application was selected it may be downloaded and installed on the user mobile device (step 220). Optionally, through the distribution platform such as apple Apps store, by authenticating the user and performing required financial transaction (step 218) or through direct link to the software developer download site.
According to some embodiments of the present invention the user may be enabled to define association between applications and objects or actions, which can recorded and updated in predefined association list.
Once the desired application is selected and installed on the user device, the user is enabled to activate the application and the required functionality (step 220). The functionality may be applied automatically on the selected object, by the calling application. At the end of the action performed by the application, the control may be returned the calling application (step 222).
According to some embodiments of the present invention a third scenario for discovering an application is provided. According to this scenario, the discovery application is activated by an application installed on the user device, not necessarily requiring user intervention. This scenario utilizes the SDK integration of capabilities across apps. For example, when an image editing application is required to provide printing capabilities, the developer of this editing application may include the application discovery ability to add the printing functionality on demand. The discovery application will be responsible for automatic discovery and activation of the desired functionality. Optionally the system may download at least some of the candidates application which are presented to the user, prior to user selection, such that, when the user selects one of the candidate application, the application and it's functionality will be already available for use.
According to some embodiments of the present invention, the learning module 600 may monitor user's activity to identify usage pattern and characteristics related to functionality per type of object or per action (step 610). Usage pattern may include identifying order of sequenced actions (e.g. saving picture after capturing it), frequency of usage. Characteristics may include location of usage (Home, office, out door indoor, while driving), time of usage, etc. The usage pattern and characteristics are updated and stored for each a specified period of time (step 615).
At the first stage is identified a type object that is currently is use or the current action which is performed (step 720).
At the next step the modules identifies the context of usage of the object or the performed action, such which action or actions were performed or what other objects were used before the current action or object. (step 725).
At this stage of the process the modules checks the stored usage pattern and characteristics related to functionality for the identified type of object for predicting relevant application which the user is likely to use at the identified usage context (step 730).
According to some embodiments of the present invention, the system may aggregate pattern usage of plurality of users creating unified or clustered usage pattern files, hence the user context of use may be compared to a unified usage pattern or clusters of usage patterns of users having common behavior characteristics (or profile). Optionally friends recommendations for application may be available utilizing social network services.
Based on this prediction is retrieved (if already installed or downloaded otherwise) the relevant application (step 735).
The retrieved application may be presented to the user or automatically activated (step 740).
In the above description, an embodiment is an example or implementation of the invention. The various appearances of “one embodiment”, “an embodiment” or “some embodiments” do not necessarily all refer to the same embodiments.
Although various features of the invention may be described in the context of a single embodiment, the features may also be provided separately or in any suitable combination. Conversely, although the invention may be described herein in the context of separate embodiments for clarity, the invention may also be implemented in a single embodiment.
Furthermore, it is to be understood that the invention can be carried out or practiced in various ways and that the invention can be implemented in embodiments other than the ones outlined in the description above.
The invention is not limited to those diagrams or to the corresponding descriptions. For example, flow need not move through each illustrated box or state, or in exactly the same order as illustrated and described.
Meanings of technical and scientific terms used herein are to be commonly understood as by one of ordinary skill in the art to which the invention belongs, unless otherwise defined.
This application claims the benefit of provisional patent application No. 61/617,288 filed on Mar. 29, 2012, which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61617288 | Mar 2012 | US |