Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SYSTEM, APPARATUS AND METHOD FOR PROVIDING AN APPLICATION DEVELOPMENT AND EXECUTION PLATFORM
Document Type and Number:
WIPO Patent Application WO/2018/158784
Kind Code:
A1
Abstract:
Embodiments of the present invention discloses a computer system comprising an execution environment for running a parent application stored locally on a memory of the computer system. The parent application comprises an interface for enabling communication between a user and plurality of child applications, wherein the child applications are stored on a remote server. The parent application further comprises a data access module for loading a requested child application in local memory of the computer system on request of the user and further comprises a memory management module for unloading previously stored unused child application data from the local memory to facilitate storage of the requested child application. The parent application further comprises a performance optimization module for determining and saving most frequently accessed child application content into local memory of the computer system to avoid frequent access of the child application content from the remote server.

Inventors:
PALA DAVIDE (IT)
PIZZIGNACH ROBERTO (IT)
Application Number:
PCT/IT2017/000040
Publication Date:
September 07, 2018
Filing Date:
February 28, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
FORWARD UNITY S R L (IT)
International Classes:
G06F9/50
Foreign References:
US20140215451A12014-07-31
US20150186179A12015-07-02
US20100017505A12010-01-21
US20060048139A12006-03-02
Other References:
None
Attorney, Agent or Firm:
PETRAZ Davide Luigi et al. (IT)
Download PDF:
Claims:
CLAIMS

1. A computer system comprising an execution environment for running a parent application stored locally on a memory (204) of the computer system, characterized in that the parent application comprises:

- an interface for enabling communication between a user and a plurality of child applications, wherein the child applications and its contents are stored on a remote server (102);

- a data access module for downloading a requested child application and its contents in local memory (204) of the computer system on request of the user;

- a memory management module (203) for removing a previously stored child application and its contents from the local memory (204); and

- a performance optimization module (205) for determining and storing most frequently accessed child applications and its contents into the local memory (204) of the computer system to avoid frequent access of the child applications and its contents from the remote server ( 102).

2. The computer system of claim 1, characterized in that the child applications are registered by service providers to provide services to a user of the parent application.

3. The computer system of claim 2, characterized in that the child applications are registered by the service providers at the remote server (102).

4. The computer system of claim 1, characterized in that the memory management module (203) is further configured for removing child applications and its data if total memory occupied by the child applications and its data exceeds a memory threshold defined by a user of the parent application.

5. The computer system of claim 1, characterized in that the performance optimization module (205) is further configured for storing only those child applications and contents that are accessed more number of times than a frequency threshold limit defined by a user of the parent application.

6. An apparatus connected with a network, characterized in that it comprises:

- one or more processors (202);

- a network interface module (206) for connecting the apparatus (200) with the network;

- a memory (204) comprising:

- a parent application (201) comprising:

- a database (208) comprising a plurality of child applications, and a plurality of contents corresponding to the plurality of child applications;

- a memory optimizing module (210) comprising a frequency threshold; and

- an instruction set (212) comprising instructions which when executed by the one or more processors (202) causes the apparatus (200) to:

- receive a request from a user to search for a content related to a child application;

- determine whether the content is locally stored in the database (208);

- request the content from a remote server (102) if the content is not locally stored in the database (208);

- receive the content from the remote server (102);

- determine whether an access frequency of the received content is greater than the frequency threshold;

- save the received content in the database (208) if the access frequency is greater than the frequency threshold; and

- display the saved content to the user.

7. The apparatus of claim 6, characterized in that the received content is directly displayed to the user from the remote server (102) without saving the received content in the database (208) if the access frequency of the received content is lesser than the frequency threshold stored in the memory (210).

8. The apparatus of claim 6, characterized in that it further comprises:

- automatically determining access frequency for each of the contents related to the plurality of child applications;

- automatically determining one or more contents related to the plurality of child applications whose access frequency is greater than the frequency threshold stored in the memory optimizing module (210); and

- automatically downloading and saving the determined one or more contents from the remote server (102) into the database (208).

9. The apparatus of claim 6, characterized in that further comprising:

- automatically determining access frequency for each of the plurality of child applications residing at the remote server (102);

- automatically determining one or more child applications whose access frequency is greater than the frequency threshold stored in the memory optimizing module (210); and

- automatically downloading and saving the determined child applications from the remote server (102) into the database (208).

10. The apparatus of claim 6, characterized in that the memory optimizing module (210) further comprises a memory threshold for optimizing memory (201) of the apparatus (200).

11. The apparatus of claim 10, characterized in that the instruction set (212) stored i the memory (201) of the apparatus (200) further comprising instructions for:

- automatically determining if memory occupied by the child applications and the content related to the child applications is lower than the memory threshold;

- automatically determining one or more child applications whose access frequency is greater than the frequency threshold if it is determined that the occupied memory is lower than the memory threshold; and

- automatically downloading and saving the determined child applications from the remote server (102) into the database (208).

12. The apparatus of claim 6, characterized in that the instruction set (212) stored in the memory (201) of the apparatus (200) further comprising instructions for:

- automatically determining access frequency for each of the plurality of child applications residing at the remote server (102);

- automatically determining access frequency for each of the plurality of child applications residing in the database (208);

- automatically determining one or more child applications residing at the remote server (102) whose access frequency is higher than any of the plurality of child applications residing in the database (208);

- automatically removing the determined child application, having lower access frequency, from the database (208); and

- automatically downloading the determined child application, having higher access frequency, from the remote server (102) into the database (208).

13. The apparatus of claim 10, characterized in that the instruction set (212) stored in the memory (201) of the apparatus (200) further comprising instructions for:

- automatically determining whether memory occupied by the child applications is greater than the memory threshold;

- automatically determining access frequency for each of the child applications residing in the database (208) if the memory occupied by the child applications is greater than the memory threshold; - automatically determining one or more child applications with lower access frequencies; and

- automatically removing the determined one or more child applications, with lower access frequencies, from the database (208).

14. The apparatus of claim 10, characterized in that the frequency threshold and the memory threshold are user defined.

15. The apparatus of claim 10, characterized in that updating of any of the frequency threshold and the memory threshold automatically triggers a memory optimization process, the memory optimization process comprises:

- determining whether memory occupied by the child applications and contents related to the child applications is higher or lower than the updated memory threshold; and

- determining whether access frequency of each of the child applications or its contents is lower or higher than the updated frequency threshold.

16. The apparatus of claim 10, characterized in that updating of the memory threshold automatically triggers a memory optimization process, the memory optimization process comprises:

- determining whether memory occupied by the child applications and contents related to the child applications is lower or higher than the updated memory threshold;

- downloading frequently accessed child applications or its contents into the memory if memory occupied is lower than the updated memory threshold; and

- removing less frequently accessed child applications or its contents from the memory if memory occupied is higher than the updated memory threshold.

17. The apparatus of claim 6, characterized in that the apparatus (200) is one of a laptop, tablet, smart-phone, television, and desktop computer.

18. The apparatus of claim 6, characterized in that the parent application provides a platform for registering new child applications.

19. The apparatus of claim 6, characterized in that the parent application is required to be executed first for accessing the plurality of child applications.

20. The apparatus of claim 6, characterized in that the number of child applications to be stored in the database is determined by the frequency threshold.

21. The apparatus of claim 6, characterized in that the amount of content related to the child applications to be stored in the database (208) is determined by the frequency threshold.

22. The apparatus of claim 6, characterized in that the number of child applications to be stored in the database (208) is determined by the memory threshold.

23. The apparatus of claim 6, characterized in that the amount of content related to the child applications to be stored in the database (208) is determined by the memory threshold.

24. A method to manage a local memory storing a parent application correlated to a plurality of child applications and a plurality of contents corresponding to the plurality of child applications, wherein the child applications and their contents are stored on a remote server, wherein said method provides to:

- set (302) a frequency threshold to optimize the memory, said frequency threshold being used to determine and save most frequently accessed child application content into the memory;

- receive (304) a request from a user to search for a content related to a child application;

- determine (306) whether the content is locally stored in the local memory;

- determine (310) whether access frequency of the content is greater than a frequency threshold, if the content is not locally stored in the local memory;

- display (316) the content directly from a remote server if the access frequency of the content is not greater than the frequency threshold;

- download (314) and save the content from the remote server in the local memory if the access frequency of the content is greater than the frequency threshold; and

- display (308) the content stored in the local memory to the user.

25. The method of claim 24, characterized in that further provides to:

- display (308) the content stored in the local memory to the user if the content is determined to be locally stored in the local memory.

Description:
SYSTEM, APPARATUS AND METHOD FOR PROVIDING AN APPLICATION DEVELOPMENT AND EXECUTION PLATFORM

FIELD OF THE INVENTION

Embodiments of the present invention in general, concern a system, apparatus, and method to provide an application development and execution platform.

More particularly, embodiments of the present invention provide a web and application infrastructure that provides a user with a unique experience of navigating among many different businesses using a uniform and standard system.

BACKGROUND OF THE INVENTION

Recently, with the advancement of technology, gadgets such as mobiles, tablets, laptops, etc. have seen a huge dip in their market pricing. The dip in pricing made such gadgets affordable to many people across the globe. Now, as majority of global population owns such electronic gadgets, demand for more advanced and user friendly software applications have also grown exponentially.

Moreover, as majority of world's population owns such electronic gadgets, industries are now adapting to new ways of enhancing their customer support and customer loyalty programs. One of such new ways comprises building software applications, which customers can install in their electronic gadgets and can enjoy user friendly services and customer support offered by the industries.

However, it is well known that installation of software applications in the electronic gadgets implies decrease in availability of memory for other tasks and applications. As the electronic gadgets have limited memory options, and availability of free memory is very critical in performance of the electronic gadgets, the gadget owners are bound to be selective with the use of the software applications.

Further, the memory limitation of electronic gadgets not just limits the user experience of the gadget owners, but also impedes convenience and accessibility between industries and customers. One solution is to produce gadgets with higher memory options, which is definitely not an idle approach due to affordability issues. Moreover, use of higher memory gadgets is only a temporary solution, as number of applications are still limited in such gadgets.

Interestingly, there have been few recent attempts to club independent service providing applications under a single parent application. Customers now only need to install one parent application and can access multiple independent services offered by the same parent application.

Clubbing of different applications solved the memory issue only up to a limited extent, as customers were not having the choice of which all applications to club. Further, clubbing of different applications under a parent application generally adds to the size of parent application, which again diminishes the usability of this solution.

Additionally, despite of the clubbing of the multiple applications under a single parent application, user interface of all the different services remains the same as their native application interface. Therefore, the user interface of the parent applications may be very complicated to use for a novice, as he/she will have to navigate with multiple user interfaces within same application and it could be very discouraging.

Therefore, there is a need for a system and method that is capable of solving the memory issues of the electronic gadgets for allowing gadget users to use unlimited number of applications without a need of purchasing expensive gadgets with high memory capacities.

The applicant has devised, tested and embodied the present invention to overcome the shortcomings of the state of the art and to obtain these and other purposes and advantages.

SUMMARY OF THE INVENTION

The present invention is set forth and characterized in the independent claim, while the dependent claims describe other characteristics of the invention or variants to the main inventive idea.

Embodiments in accordance with the present invention disclose a method to manage a local memory storing a parent application correlated to a plurality of child applications and a plurality of contents corresponding to the plurality of child applications, wherein the child applications and their contents are stored on a remote server.

The method comprises the steps of setting a frequency threshold to optimize the memory, said frequency threshold being used to determine and save most frequently accessed child application content into the memory; receive a request from the user to search for a content related to a child application; determine whether content is locally stored in the database; request the content from a remote server if the content is not locally stored in the memory; receive the content from the remote server; determine if the received content is accessed more frequently than the frequency threshold and, in the case this condition it is satisfied, save the received content in the memory; and display the content stored in the memory or directly from the remote server to the user.

Embodiments in accordance with the present invention disclose a computer system comprising an execution environment for running a parent application stored locally on a memory of the computer system.

The parent application comprises an interface for enabling communication between a user and plurality of child applications, wherein the child applications are stored on a remote server.

The parent application further comprises a data access module for loading a requested child application in local memory of the computer system on request of the user.

The parent application further comprises a memory management module for unloading previously stored unused child application data from the local memory to facilitate storage of the requested child application.

The parent application further comprises a performance optimization module for determining and saving most frequently accessed child application content into local memory of the computer system to avoid frequent access of the child application content from the remote server.

Embodiments in accordance with the present invention disclose an apparatus connected with a network, wherein the apparatus comprises one or more processors, a network interface module for connecting the apparatus with the network, and a memory.

The memory comprises a parent application which further comprises a database, a memory optimizing module, and an instruction set.

The database comprises a plurality of child applications, and a plurality of contents corresponding to the plurality of child applications.

The memory optimizing module comprises a frequency threshold and a memory threshold limit for optimizing memory of the apparatus.

The instruction set comprises instructions which when executed by the one or more processors causes the apparatus to receive a request from a user to search for a content related to a child application, determine whether the content is locally stored in the database, request the content from a remote server if the content is not locally stored in the memory, receive the content from the remote server, determine whether an access frequency of the received content is greater than the frequency threshold, save the received content in the database if the access frequency is greater than the frequency threshold, and display the saved content to the user.

In an embodiment of the present invention, the received content is directly displayed to the user from the remote server without saving the received content in the database if the access frequency of the received content is lesser than the frequency threshold stored in the memory.

In another embodiment of the present invention, the instruction set further comprises the steps of automatically determining a user access frequency for all the contents related to the plurality of child applications, automatically determining one or more contents related to the plurality of child applications whose user access frequency is greater than the frequency threshold stored in the memory, and automatically downloading and saving the determined one or more contents from the remote server into the database.

In another embodiment of the present invention, the instruction set further comprises the steps of automatically determining a user access frequency for each of the plurality of child applications residing on the remote server, automatically determining one or more child applications whose user access frequency is greater than the frequency threshold stored in the memory, and automatically downloading and saving the determined child applications from the remote server into the database.

In another embodiment of the present invention, the instruction set further comprises the steps of automatically determining if memory occupied by the child applications and the content related to the child applications is lower than the memory threshold, automatically determining a user access frequency for each of the plurality of child applications residing on the remote server if it is determined that the occupied memory is lower than the memory threshold, automatically determining one or more child applications whose user access frequency is greater than the frequency threshold stored in the memory, and automatically downloading and saving the determined child applications from the remote server into the database.

In another embodiment of the present invention, the instruction set further comprises the steps of automatically determining a user access frequency for each of the plurality of child applications residing on the remote server, automatically determining a user access frequency for each of the plurality of child applications residing in the database, determining one or more child applications from remote server whose user access frequency is higher than any of the child application residing in the database, unloading the determined child application from the database having lower user access frequency, loading the determined child application from the remote server into the database having higher user access frequency, automatically determining one or more child applications whose user access frequency is greater than the frequency threshold stored in the memory, and automatically downloading and saving the determined child applications from the remote server into the database.

In another embodiment of the present invention, the instruction set further comprises the steps of automatically determining whether memory occupied by the child applications is greater than the memory threshold, automatically determining a user access frequency for each of the child applications residing in the memory, automatically determining one or more child applications with lower user access frequencies in comparison with user access frequencies of other child applications residing in the memory, and automatically unloading the determined one or more child applications with lower user access frequencies from the memory.

In another embodiment of the present invention, the frequency threshold and the memory threshold are user defined and can be updated dynamically, wherein updating of any of the frequency threshold and the memory threshold automatically triggers a memory optimization process.

The memory optimization process comprising the steps of determining whether memory occupied by the child applications and contents related to the child applications is higher or lower than the memory threshold, determining whether user access frequency of each of the child applications or its contents is lower or higher than the frequency threshold.

In another embodiment of the present invention, updating of the memory threshold automatically triggers a memory optimization process.

The memory optimization process comprising the steps of determining whether memory occupied by the child applications and contents related to the child applications is lower or higher than the memory threshold, downloading frequently accessed child applications or its contents into the memory if memory occupied is lower than the memory threshold, unloading less frequently accessed child applications or its contents from the memory if memory occupied is higher than the memory threshold.

In another embodiment of the present invention, the apparatus is one of a laptop, tablet, smart-phone, television, and desktop computer.

In another embodiment of the present invention, the parent application provides a platform for registering new child applications.

In another embodiment of the present invention, the parent application is required to be executed first for accessing the plurality of child applications.

In another embodiment of the present invention, the number of child applications residing in the database is determined by the memory threshold and frequency threshold.

In another embodiment of the present invention, the amount of child applications related content stored in the database is determined by the frequency threshold and the memory threshold.

These and other aspects, characteristics and advantages of the present disclosure will be better understood with reference to the following description, drawings and attached claims.

The drawings, which are integrated and form part of the present description, show some forms of embodiment of the present invention, and together with the description, are intended to describe the principles of the disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and still further features and advantages of the present invention will become apparent upon consideration of the following detailed description of embodiments thereof, especially when taken in conjunction with the accompanying drawings, and wherein:

- FIG. 1 illustrates an exemplary environment in which various embodiments of the present invention are implemented;

- FIG. 2 illustrates a block diagram of a communication apparatus, in accordance with an embodiment of the present invention; and

- FIG. 3 illustrates a flow diagram of a method of displaying a content requested by a user, in accordance with an embodiment of the present invention.

To facilitate comprehension, the same reference numbers have been used, where possible, to identify identical common elements in the drawings. It is understood that elements and characteristics of one embodiment can conveniently be incorporated into other embodiments without further clarifications.

DETAILED DESCRIPTION OF SOME EMBODIMENTS The description shall now refer in detail to the various forms of embodiment of the present invention, of which one or more examples are shown in the attached drawings.

Each example is supplied by way of illustration of the invention and shall not be understood as a limitation thereof. For example, the characteristics shown or described insomuch as they are part of one form of embodiment can be adopted on, or in association with, other forms of embodiment to produce another form of embodiment. It is understood that the present invention shall include all such modifications and variants.

FIG. 1 illustrates an exemplary environment 100 where various embodiments of the present invention are implemented. The environment 100 includes a data server 102 connected to a plurality of devices 104-a-n and 106-a-m via a network 108, wherein the numbers n and m are arbitrary numbers representing same or different number of devices.

Hereinafter, the devices 104-a-n may collectively be referred to as "user devices 104" and the vendor devices 106-a-m may collectively be referred to as "vendor devices 106".

Further, the user devices 104 may refer to electronic devices that may be utilized by individuals (consumers or customers) to access and communicate with the data server 102.

In an embodiment of the present invention, the user devices 104 are portable wireless communication devices such as but not restricted to cell phones, tablets, laptops, etc.

Further, the vendor devices 106 may refer to electronic devices that may be utilized by service providers or business owners to communicate with the data server 102. In an embodiment, the service providers or vendors may also be able to directly communicate with the user devices 104.

Examples of the user devices 104 and the vendor devices 106 may include, but are not restricted to, a desktop computer, a laptop, a mobile/cell phone, a smart phone, a personal digital assistant (PDA), a tablet computer, and the like.

Further, the network 108 may include, but is not restricted to, a communication network such as Internet, Intranet, PSTN, Local Area Network (LAN), Wide Area Network (WAN), Metropolitan Area Network (MAN), and so forth.

In an exemplary embodiment of the present invention, the user devices 104 are installed with a service application (not shown). In an embodiment of the present invention, the service application may be implemented as a software application (or combination of software and hardware).

Further, the service application installed in the user devices 104 is configured to connect the user devices 104 with multiple services offered by multiple service providers via the data server 102. The service application installed in the user devices 104 may also be configured to connect the user devices 104 with the vendor devices 106.

Similarly, in an exemplary embodiment of the present invention, the vendor devices 106 are also installed with the same service application (not shown) as installed in the user devices 104.

In an embodiment of the present invention, the service application installed in the vendor devices 106 may be different from the service application installed in the user devices 106.

The service application installed in the vendor devices 106 is configured to connect the vendor devices 106 with the data server 102 for hosting their services (via the data server 102) for the user devices 104.

In an embodiment of the present invention, the service application is based on a web and application infrastructure that use some external support SDK.

The service application use automation on both levels, i.e., automation on the application side that is written in Java (for Android) or Swift (for iOS) and on the web side the application is written in PHP with an interfacing on DBMS (e.g., Mysql). In an exemplary embodiment, the service application is to provide its user with a unique complete native application experience of many different businesses contents using a uniform and standard system.

For example, the service application consists in a single native platform, a digital environment for both Android and iOS to show business contents. All the contents of a business, combined together in the service application, serves as a child application of the service application (hereinafter, the service application may be referred as "parent application" of the child applications).

In an embodiment of the present disclosure, the service application allows a user to search and select within the same application platform via its various child applications for the businesses the user is interested in. The user may instantly use, navigate, and interact with the child applications of various businesses (hosted by the parent application) and their application contents with a complete native application experience without any need to install the child applications in the user devices 104.

The parent application in fact manages all the contents in such a seamless manner that the user gets an impression that all the content is stored locally in the user device 104. However, the parent application is configured to store only partial data related to child applications in local memory of the user devices 104 and the rest of the data is stored on the data server 102. In an embodiment, all the data related to a child application may be stored completely on the data server 102.

In an exemplary embodiment of the present invention, the parent application is configured to locally store only the data which has a history of being used frequently by the user.

The parent application is capable of completely storing a child application in local memory of the user device 104 and is also capable of partially storing data related to a child application in the local memory. The parent application intelligently determines which child application and what content of child applications is required to be locally stored in memory.

The parent application may use for intelligently determining the contents may comprise, but are not restricted to, last access date and time of content/application, number of accesses of the content/application, and amount of memory allocation. The amount of memory allocation may be dynamic based on available memory. The amount of memory may also be user defined.

In an embodiment of the present invention, the child applications or the contents of the child applications that are used less frequently or less number of times may be stored at the data server 102, without wasting internal memory of the user devices 104.

For example, if the user does not use a child application very often, the child application may still be available for instant use via the data server 102. All the contents of the child application may be made available on demand only, i.e., when the user accesses a child application or its content.

The parent application may further be configured for ensuring maximum memory usage for the contents of the most used child applications to maximize the memory optimization. In an embodiment, the parent application may locally store only absolute necessary data/contents of child applications for promoting fast access of the child applications from the data server 102. The parent application may also store data which is necessary for opening and instantly navigating the child application while further contents may be provided on demand only during the user interaction with the child application.

It will ensure that users will have on their user devices 104, the minimum required memory space for the parent application only, through which they may be able to use thousands of child applications with full native functionality without a need to install them and to wait for its contents to be loaded in the memory first.

Further, the parent application comprises a memory optimization algorithm that uses artificial intelligence to optimize memory usage. A user may have an option to select (via a volume-like tool) amount of memory he/she wants to allocate to the parent application in his/her user device 104.

The user may be able to change this setting anytime he/she wish to. Depending on how much memory the user has set, the parent application will use only that much memory and will automatically reallocate contents to the data server 102. The parent application is also configured to intelligently select which content to keep on the data server 102 and which content is to be stored locally at the user device 104.

The selection criteria comprises time-stamp (it memorizes date and time of the last access to specific contents), number of access (every access is counted to observe the interest level of the user), and number of contents downloaded (every time the user use a child application that is not used frequently and the contents are sent on demand).

In an embodiment of the present invention, to provide the user with a simpler use of the child applications, and to facilitate search for child application contents, the parent application is used for registering child applications only with a standard structure.

The standard structure facilitates navigation without limiting customization of content's structure. Thereby, the parent application analyses for every single child application, different parameters like access, date of last access, contents views etc. to learn and locally maintain its contents, which are used more frequently. This way, the parent application keeps learning and keeps optimizing memory of the user device 104.

The parent application can be downloaded from application stores such as, but not restricted to the, play store for Android and App store for iOS.

After installation of the parent application, the user or vendor has to register in order to be able to customize the parent application. The registration, however, is validated remotely and ends with the production of a unique token that identifies the user. Also, the user can skip the registration step and use the parent application with all basic features of the child applications.

Thereafter, the user can subscribe to as many child applications as he/she wishes for. The child applications will be download through the parent application only. The user can install the parent application and have access to a simple search engine therein. The user can then use name or tags to search for required child applications. The installation of the child applications will happen inside the parent application and initially involves downloading its content that is provided on demand to allow the user the instant use and navigation of it. However, the memory management module 203 of the parent application may further determine which content is to be downloaded and which content is to be streamed from the data server 102.

Further, in an exemplary embodiment of the present invention, the parent application provides a cross-application content functionality. The cross-application content functionality facilitates selection of different contents of the child applications from the data server 102 and to install them in the local memory of the user devices 104. The selected contents stored in local memory may therefore will be available to consult singularly in a rapid way, in a specific section of the parent application. For example, users will be able to select different contents of different child applications and keep them at dashboard of the parent application, which is a separate interface than interfaces of individual child applications.

In first and foremost embodiment of the present invention, the contents available at the dashboard of the parent applications may be stored locally in the memory of the parent application. In another embodiment, the contents available at the dashboard of the parent applications may be partially stored in the local memory of the parent application. In yet another and less preferred embodiment, the contents available at the dashboard of the parent applications may be directly streamed from the data server 102.

In further exemplary embodiment, the user may select a menu from a child application that is hosted (on data server 102) by a restaurant. The user may further select an offer he/she is interested in from a second child application that is hosted by a grocery shop. Both of the selected contents (i.e., the menu and the offer) may then be displayed singularly inside a specific section (such as a section of "Interests") of dashboard of the parent application.

In an embodiment of the present invention, the parent application provides a platform to various service providers (or business owners or vendors) comprising a simple dashboard system for managing their functionalities, contents, and other aspects of their businesses or services.

Advantageously, adaptability towards the platform provided by the parent application does not require any technical knowledge or specific skill set. A vendor is only required to configure web pages via a pre-built system (which is offered by the parent application and is hosted at the data server 102).

Thereby, it will be very easy for vendors to use the parent application platform for building, launching, and hosting their business applications in form of child applications (which is very similar to the generally used android and iOS applications, but is build on a different web platform with standard interfaces). The parent application platform provides all native functionalities, such as, but not restricted to a menu for contacts, main business information, and multiple sections or functions like multimedia contents photo, video, podcast, offers, coupons, flyers, catalogues, price lists, menus, messages, notifications, etc.

Further, the parent application platform provides the users an opportunity to use a platform that facilitates use of thousands of applications without even installing them in their devices. Furthermore, the parent application platform introduce a relevant economic factor to the vendors as producing android and iOS based applications had variable costs based on complexity of the application. However, the parent application platform provides an opportunities to the vendors where they do not require to build their applications from scratch. The vendors may use pre-build platforms, functions, templates, and services that are ready to use. Anyone with basic web page navigation skills is capable of creating his own applications using the parent application platform. Moreover, the parent application platform provides two useful service options to the vendors, i.e., e-commerce and augmented reality solution service.

The parent application platform provides such options during configuration of the child applications. For example, selection of augmented reality service while configuring child applications facilitates gaming and loyalty programs to be added instantly in addition to the actual business proposals of the vendors.

Further, the augmented reality solution service facilitates vendors to display (using augmented reality technology) a virtual object outside or inside his/her business building. The vendors can then connect a specific offer (hereinafter, may be referred to as "AR contest") with the displayed virtual object. As soon as a vendor creates the AR contest, the augmented reality solution service generates a unique code associated to it and notifies users (customers/subscribers/consumers) of the user devices 104 that an AR contest is running or has started.

The users of the user devices 104 may then use the parent application to access AR section of the related child application for participating in the AR contest. The augmented reality solution service of the parent application may use user device 104's camera to search the virtual object in proximity. If the user finds the virtual object through the camera of the user device 104, the user may push/tap/click on it to win the AR contest.

As there could be more than one person interacting and taping the virtual object, so the augmented reality solution service recognizes time-stamps of the taps to determine a generic user who first tapped on the object. The augmented reality solution service then downloads the code in the user device 104, which can be used later for redeeming prize of the AR contest.

Further, the augmented reality solution service stores the AR contest winning information and adds a point in account of the user. In an embodiment, the account's of the users and the vendors may be pre-registered and maintained at the data server 102. The points refers to the number of wins a user has scored. Once a user wins 10 (arbitrary number) AR contests, the augmented reality solution service may notify to the user that he/she has won a major prize. The major prize may be pre-decided by the vendor.

In an exemplary embodiment of the present invention, the child applications are organized in thematic areas of homogeneous contents, which can be expanded in future due to the flexibility offered by the platform. The areas however comprises, but are not restricted to, photo galleries (list of business pictures), videos (list of business videos), offers (list of temporary and/or permanent offers), brochures (list of documents), events (list of business activities), podcasts (list of audio files), E-commerce (complete online procedure of purchase of limited numbers of products), Augmented Reality (procedure for creating AR contests/games).

To register businesses, vendors may access a web page hosted by the data server 102 (can also be hosted by some other server), sign up and log-in with user name and password to access all the services offered by the platform.

To set up a child application, the vendor just needs to add his/her business information, select a thematic area, modify the thematic area as per requirements, and send a notification to all users registered with the platform for notifying them corresponding to this new business/ child application.

The thematic areas may be stored in form of JPG, PNG, PDFs, etc. The videos may be stored in various formats such as mp4, avi, etc. The podcast area may store audio files in many formats such as mp3 etc. The platform provides an interface where the vendors may simply use drag and drop functionalities to upload contents from their hard disks (or any memory).

The e-commerce area may link to online payment solutions such as PayPal™ etc. The platform is capable of managing all the data automatically at the data server 102. Any changes made in the child applications may be notified to the subscribers of the child applications. The e-commerce area allows the business to manage up to 10 (configurable) distinct products defined by, but not limited to, name, photo, description, price, and discount.

The augmented reality area allows the vendors to choose the type of virtual object that will appear inside or outside his/her business building. Every virtual object can be personalized with the following features such as, but not restricted to, aspect (image size), position (GPS latitude and longitude using a map), time and duration of the presence (when and how long will the object remain visible), price/offer associated, and Identification code.

In an exemplary embodiment of the present invention, the user device 104 comprises a computer system (not shown). The computer system comprises an execution environment for running a parent application that is stored locally on a memory of the computer system.

The parent application comprises an interface for enabling communication between a user and a plurality of child applications. The child applications are stored on a remote server, which can be accessed via Internet. The parent application further comprises a data access module for loading a requested child application in the local memory of the computer system on request of the user. The parent application further comprises a memory management module 203 for unloading previously stored unused child application data from the local memory to facilitate storage of the requested child application.

The parent application further comprises a performance optimization module 205 for determining and saving most frequently accessed child application content into local memory of the computer system to avoid frequent access of the child application content from the remote server.

Detailed description of the aforementioned embodiments is provided further in conjunction with the FIG. 2 and FIG. 3 of the present invention.

FIG. 2 illustrates a block diagram of an electronic device 200 (such as the user device 104 and the vendor device 106, as explained earlier in conjunction with FIG. 1 of the present invention), in accordance with an embodiment of the present invention.

As depicted from the figure, the electronic device 200 comprises a processor 202, a memory 204 for data storage, and a network interface module 206 for connecting the electronic device 200 with a network (such as the network 108 defined in conjunction with FIG. 1 of the present invention). The processor 202 may comprise one or more than one processors. The network interface module 206 may be a hardware, a software, or a combination thereof.

The memory 204 further comprises a parent application 201 installed by user of the electronic device 200. The parent application 201 comprises a database 208, a memory optimizing module 210, and an instruction set 212. The instruction set 212 stored in the memory 204 uses the processor 202 to perform actions, e.g., receiving, storing, processing, and transmitting data stored in the memory 204.

In an embodiment of the present invention, the memory 204 may either be a primary memory or a secondary memory. For example, but not restricted to, random access memory (RAM), cache memory, hard disk drive (HDD), solid state drive (SSD), compact disk (CD), portable memories, and like.

Additionally, the electronic device 200 may further include a Global Positioning System (GPS) chip (not shown) for determining precise geographical location. Also, the electronic device 200 may further include a camera and microphone (not shown) for recording at least one of image, video, and audio. In addition, the electronic device 200 may further include an optional Wi-Fi chip (not shown) for retrieving precise location of the user device.

It will be appreciated by a person skilled in the art that the aforementioned communication interfaces and location determining systems are useful in the present invention for enhancing the communication and geo-location services. However, in no manner, these systems and interfaces should be considered as necessary components of the present invention as the present invention is functional with and without these systems and components.

In an embodiment of the present invention, the a database 208 comprises a parent application, a plurality of child applications, and a plurality of contents corresponding to the plurality of child applications. Further, the memory optimizing module 210 comprises a frequency threshold value and a memory threshold value for optimizing memory 204 of the electronic device 200. In an embodiment, the memory optimizing module 210 may be a part of the database 208 or the memory 204 itself. However, the module is separately illustrated just to ease the explanation of the present invention.

In an exemplary embodiment of the present invention, the parent application encapsulates the plurality of child applications and serves as a platform for consumers and vendors to consume or host a service. The parent application may be downloadable from any state of the art application store. However, the child applications are built-into a web system which is integrated to the parent application.

The parent application facilitates consumers in accessing child applications hosted by multiple vendors. Each child application represents a service or a product offered by a vendor via a network. A consumer can subscribe or install any number of child applications in his/her device, via the platform provided by the parent application. The parent application then manages the memory of the user's device (electronic device 200) by determining the frequency threshold and memory threshold values stored in the memory 204. In an embodiment of the present invention, the frequency threshold and the memory threshold may be defined by a user. In another embodiment, the frequency threshold and the memory threshold may be dynamically adjusted by the parent application based on the capacity and space availability of the memory 204.

The parent application may also dynamically adjust both of the thresholds based on the connection speed between the electronic device 200 and a remote server (such as the data server 102, as described in conjunction with FIG. 1 of the present invention).

The parent application is configured to record time-stamp of last access to a specific content, number of times the content is accessed by the user, and number of time a content was requested by the user. If the parent application determines that the content is accessed X (arbitrary) number of times by the user, the frequency threshold set by the user is Y (arbitrary), and X>Y then the parent application automatically downloads the specific content from the data server 102 and stores in local memory 204. Other factors such as last access and number of downloads (repetitive downloads) may also be considered.

Further, if the user changes the frequency threshold, the parent application will first determine whether the threshold is increased or decreased. If the frequency threshold is decreased then the parent application may download more contents or child applications from the data server 102. If the threshold in increased then the parent application may re-analyze whether any of the content or child application stored in the memory is required to be deleted from the local memory or not.

Similarly, based on the memory threshold, the parent application calculates whether the memory occupied by the contents and the child applications is greater or lesser than the memory threshold. If the parent application determined that the memory threshold is greater than the memory occupied by the contents and the child applications then the parent application may download more contents or the child applications from the data server 102 based on the value of the frequency threshold.

Also, If the parent application determined that the memory threshold is lesser than the memory occupied by the contents and the child applications then the parent application may delete certain contents or the child applications from the local memory despite of the value of the frequency threshold. The parent application is capable of streaming data from the data server 102 directly without storing the data in local memory. The parent application may, however, temporarily store the steaming data for buffering purpose, if required.

In another exemplary embodiment of the present invention, disclosed is an apparatus that is connected with a network. The apparatus may be one of a laptop, tablet, smart- phone, television, and desktop computer. The apparatus comprises one or more processors, a network interface module for connecting the apparatus with the network, and a memory.

The memory comprises a parent application which further comprises a database, a memory optimizing module, and an instruction set. The database comprises a plurality of child applications, and a plurality of contents corresponding to the plurality of child applications. The memory optimizing module comprises a frequency threshold and a memory threshold limit for optimizing memory of the apparatus. The instruction set comprises instructions which when executed by the one or more processors causes the apparatus to receive a request from a user to search for a content related to a child application.

Further, it is determined whether the content is locally stored in the database or not. If the content is not locally stored in the memory then a request is sent to the remote server for providing the content. After receiving the content from the remote server, it is determined whether an access frequency of the received content is greater than the stored frequency threshold or not. If the access frequency is greater than the frequency threshold then the received content is saved in the database and then displayed to the user.

If the access frequency of the received content is lesser than the frequency threshold then the received content is directly displayed to the user from the remote server without saving the received content in the database. In an embodiment, only partial data related to the content is stored in the memory. In another embodiment, the received content is temporarily stored in the memory.

In another embodiment of the present invention, the parent application automatically determines a user access frequency for all the contents related to the plurality of child applications, automatically determines one or more contents related to the plurality of child applications whose user access frequency is greater than the frequency threshold stored in the memory, and automatically downloads and store the determined one or more contents from the remote server into the database.

In another embodiment of the present invention, the parent application automatically determines a user access frequency for each of the plurality of child applications residing on the remote server, automatically determines one or more child applications whose user access frequency is greater than the frequency threshold stored in the memory, and automatically downloads and stores the determined child applications from the remote server into the database.

In another embodiment of the present invention, the parent application automatically determines if memory occupied by the child applications and the content related to the child applications is lower than the memory threshold. If it is determined that the occupied memory is lower than the memory threshold then automatically determines a user access frequency for each of the plurality of child applications residing on the remote server. Thereafter, the parent application automatically determines one or more child applications whose user access frequency is greater than the frequency threshold stored in the memory, and then automatically downloads and stores the determined child applications from the remote server into the database.

In another embodiment of the present invention, the parent application automatically determines a user access frequency for each of the plurality of child applications residing on the remote server, automatically determines a user access frequency for each of the plurality of child applications residing in the database, automatically determines one or more child applications from remote server whose user access frequency is higher than any of the child applications residing in the database, automatically unloading the determined child applications from the database having lower user access frequency, automatically loading the determined child application from the remote server into the database having higher user access frequency, automatically determining one or more child applications whose user access frequency is greater than the frequency threshold stored in the memory, and automatically downloading and saving the determined child applications from the remote server into the database.

In another embodiment of the present invention, the parent application further comprises the steps of automatically determining whether memory occupied by the child applications is greater than the memory threshold, automatically determines a user access frequency for each of the child applications residing in the memory, automatically determines one or more child applications with lower user access frequencies in comparison with user access frequencies of other child applications residing in the memory, and automatically unloads the determined one or more child applications with lower user access frequencies from the memory.

In another embodiment of the present invention, the frequency threshold and the memory threshold are user defined and can be updated dynamically, wherein updating of any of the frequency threshold and the memory threshold automatically triggers a memory optimization process. The memory optimization process comprises the steps of determining whether memory occupied by the child applications and contents related to the child applications is higher or lower than the memory threshold, and determining whether user access frequency of each of the child applications or its contents is lower or higher than the frequency threshold.

In another embodiment of the present invention, updating of the memory threshold automatically triggers a memory optimization process. The memory optimization process comprising the steps of determining whether memory occupied by the child applications and contents related to the child applications is lower or higher than the memory threshold, downloading frequently accessed child applications or its contents into the memory if memory occupied is lower than the memory threshold, unloading less frequently accessed child applications or its contents from the memory if memory occupied is higher than the memory threshold.

Further, in an embodiment of the present invention, the parent application provides a platform for registering new child applications. The parent application is executed first for accessing the plurality of child applications and the number of child applications residing in the database is determined by the memory and frequency threshold. Also, the amount of child applications related content stored in the database is determined by the memory and frequency threshold. More details corresponding to the use of the parent application and the child application is described further in conjunction with FIG. 3 of the present invention.

FIG. 3 illustrates a flow diagram 300 of a method for accessing contents related to a child application hosted by a service provider, in accordance with an embodiment of the present invention. At step 302 of the flow diagram 300, a user of an electronic device accesses a parent application stored in the electronic device to optimize memory usage pattern of the parent application in the memory of the electronic device.

After accessing the parent application, the user accesses a memory optimization section of the parent application to set a frequency threshold. The frequency threshold is preferably a numeric value and the user can either input the value directly or can use a scroll bar or a volume like hardware button of the electronic device to increase or decrease the frequency threshold value as per his/her requirements.

The frequency threshold is used for comparing with access frequency of a content (or media/information), i.e., the number of times a content is accessed by the user in past. This information may be retrieved from log files or history files maintained in memory of the electronic device or can also be retrieved from a remote server where such data may be maintained automatically.

The parent application may be configured to perform certain actions based on the comparison of the access frequency and the frequency threshold selected by the user. More details corresponding to the actions performed by the electronic device is detailed further in conjunction with steps 304 to 316 of the flow diagram 300.

At step 304, the parent application receives a request from the user to search for a particular content. In an embodiment, the content may be related to a child application, wherein the child application represents a service offered by a service provider over Internet. Any content that is part of the service and can be accessed by the parent application qualifies as the particular content requested by the user. The content may be in form of text, graphics, audio, video, or a combination thereof.

Thereafter, at step 306, the parent application determines whether the requested content is available in local memory of the electronic device or not. If the parent application determines that the content is available in the local memory then the parent application directly displays, at step 308, the requested content to the user via a display medium of the electronic device. However, if the parent application determines that the requested content is not available in the local memory of the electronic device then the process flow moves to step 310.

At step 310, the parent application determines access frequency of the requested content based on various factors, such as, but not restricted to, last access time of the requested content, number of times the requested content was accessed by the user, and number of times the requested content was downloaded or saved by the user. Thereafter, the parent application compares the determined access frequency of the requested content with the user defined frequency threshold.

It will be appreciated by a person having ordinary skills in the art that the access frequency of the requested content might be pre-calculated and stored in the memory of the electronic device for saving repetitive time and processing power of the electronic device. Further, the frequency threshold may also be defined dynamically and automatically by the parent application itself, without any human intervention.

The factors the parent application may consider while modifying the frequency threshold may be, but are not restricted to, connection speed between the electronic device and remote server, memory availability in the electronic device, and/or predefined performance preferences selected by the user.

Further, it will be obvious to a person having ordinary skills in the art to understand that if access frequency of a requested content is higher than the user defined frequency threshold then it implies that the content has been accessed very frequently by the user and therefore there is a high probability that the user may again request for the same content in near future. Therefore, it will be an intelligent step to store that content in local memory for avoiding repetitive downloading or streaming of the content from the remote server, which might add lag in the process. Moreover, if the access frequency of the content is not higher then it implies that the user rarely access the content and therefore that content can be accessed remotely and should not be stored in local memory to prevent unwanted contents from occupying local memory of the electronic device.

At step 312, if the parent application determines that the determined access frequency of the requested content is greater than the frequency threshold selected by the user, then the parent application may request downloading of the content from a remote server at step 314.

The parent application may then store the downloaded content in local memory of the electronic device. The stored content now can be frequently accessed by the user from local memory to ensure seamless content delivery (step 308) to the user, every time the user requests for the same content.

However, if at step 312, the parent application determines that the determined access frequency of the requested content is not greater than the frequency threshold selected by the user, then the parent application may request streaming of the content from the remote server, at step 316. The streaming of the content from the remote server may comprise temporarily storing the content in local memory for displaying the content to the user. Also, the streaming of the content from the remote server may comprise downloading necessary data in local memory for facilitating buffering of the content for display.

Although the present invention has been described in terms of certain preferred embodiments, various features of separate embodiments can be combined to form additional embodiments not expressly described. Moreover, other embodiments apparent to those of ordinary skill in the art after reading this disclosure are also within the scope of this invention. Furthermore, not all of the features, aspects and advantages are necessarily required to practice the present invention. Thus, while the above detailed description has shown, described, and pointed out novel features of the invention as applied to various embodiments, it will be understood that various omissions, substitutions, and changes in the form and details of the apparatus or process illustrated may be made by those of ordinary skill in the technology without departing from the spirit of the invention. The inventions may be embodied in other specific forms not explicitly described herein. The embodiments described above are to be considered in all respects as illustrative only and not restrictive in any manner. Thus, scope of the invention is indicated by the following claims rather than by the foregoing description. The present invention is set forth and characterized in the independent claims, while the dependent claims describe other characteristics of the invention or variants to the main inventive idea.