The present disclosure is directed at methods, systems, and techniques for processing of user data in network environments.
In the evolving financial landscape of today, everyone knows that financial literacy is important. The real challenge is that financial literacy can be considered boring, irrelevant, non-relatable, and not actionable to people in their day to day lives. That being said, other problems with financial content being served on the internet can be misinformation, impersonalized, and distributed. Similar any content on the internet, you are unsure if you can trust it or not, one blog could say one thing and another blog can say that it's utter nonsense.
Further, there is a need for institutions to have improved contact with their customers, especially in the area of wealth transfer, especially for relatives and other family members of an institution's customer. In particular, financial institutions need to be on good relationship terms with both benefactors and beneficiaries when in circumstances of wealth transfer events.
An object of the present invention is to provide a system and/or method of applying user data to obviate or mitigate at least one of the above-presented disadvantages of the state of the art.
According to a first aspect, there is provided a method on applying user data for providing services to a user from a platform of services, the method comprising the steps of: obtaining stored user profile data pertaining to the user of a network system of an institution; comparing the user profile data to a plurality of different potential life stages in order to determine a selected life stage; identifying one or more services from the platform of services based on the selected life stage; identifying the one or more services to the user via a user interface of a user device; receiving a request from the user through the user device for access to the one or more services; and updating contents of the stored user profile to include additional profile content related to activity of the user with the one or more services.
A further aspect provided is a computer system for manipulating and maintaining a user profile including applying user data for providing services to a user from a platform of services, the system comprising: a set of stored instructions for execution by one or more computer processors for: obtaining stored user profile data pertaining to the user of a network system of an institution; comparing the user profile data to a plurality of different potential life stages in order to determine a selected life stage; identifying one or more services from the platform of services based on the selected life stage; identifying the one or more services to the user via a user interface of a user device; receiving a request from the user through the user device for access to the one or more services; and updating contents of the stored user profile to include additional profile content related to activity of the user with the one or more services.
A further aspect provided is a computer readable medium having a set of stored instructions for execution by one or more computer processors for manipulating and maintaining a user profile including applying user data for providing services to a user from a platform of services, the set of stored instructions including: obtaining stored user profile data pertaining to the user of a network system of an institution; comparing the user profile data to a plurality of different potential life stages in order to determine a selected life stage; identifying one or more services from the platform of services based on the selected life stage; identifying the one or more services to the user via a user interface of a user device; receiving a request from the user through the user device for access to the one or more services; and updating contents of the stored user profile to include additional profile content related to activity of the user with the one or more services.
This summary does not necessarily describe the entire scope of all aspects. Other aspects, features and advantages will be apparent to those of ordinary skill in the art upon review of the following description of specific embodiments.
In the accompanying drawings, which illustrate one or more example embodiments:
In at least some embodiments herein, methods, systems, and techniques for manipulating and updating a user profile 101, including accessing and using application interactions 101a (also referred to as user application history 101a).
Referring now to
an example embodiment of a system 99 for manipulating and maintaining the user profile 101. More particularly, the computer network 100 comprises a wide area network 102 such as the Internet to which various user devices 104 (for example a mobile device), an ATM 110, and data center 106 are communicatively coupled. The data center 106 comprises a number of servers 108 networked together to collectively perform various computing functions. For example, in the context of a financial institution such as a bank (one example of an institution), the data center 106 may host online banking services that facilitates users to log in to those servers 108 using user accounts that give them access to various computer-implemented banking services, such as online fund transfers. For example, in the context of a financial institution such as a bank, the data center 106 can host an online service application 91 that facilitates users to log in to those servers 108 using user accounts, for example, that give the user access to various computer-implemented user profile functionality, such maintaining of user profiles 101 and user application interactions 101a, as well as access to served content 103 (e.g. supplied by a service platform 90 for services 90a,b,c,d). For example, the user service platform 90 can be accessed via the network 102 using a client—server model, e.g. the service application 91 executed on the user device 104 (or otherwise hosted on the system 99) that communicates with the service platform 90 hosted on one or more of the servers 108.
Furthermore, individuals may appear in person at the ATM 110 to withdraw money from bank accounts controlled by the data center 106, as well as perform other financial services (e.g. credit card transactions) which are recorded and stored as transactional data 101b in the user profile 101. The data center 106 can generate the user profile 101 based on a number of criteria, and can manipulate the user profile 101 in order to provide access to one or more services 90a,b,c,d to the user for presentation on a user interface 212 (see
It is also recognised that in operation of the system, recommendations of services 90a,b,c,d to the user (e.g. benefactor type) can be based on data contents of the user profile 101 associated with two or more user types (e.g. benefactor and beneficiary). In this manner, the recommended services 90a,b,c,d by the system 99 operation can be of benefit to both the first user type and the second user type. One example of recommended service 90a,b,c,d could be a first mortgage service recommended to the benefactor user when the system determines that the associated (with the benefactor) beneficiary user is of an appropriate age (based on demographic data) and stage (based on financial data) for buying their first home. It is also recognised that a user can be determined by the system to be of multiple different user types (e.g. both a benefactor and a beneficiary) in the case of multigenerational family relationships known to the system 99.
As further discussed below, the user, once reviewing the supplied services 90a,b,c,d, can then implement actions 103a based on the served content 103 of the services 90a,b,c,d. It is recognised that the actions 103a can be stored as the application interactions 101a in order to amend their user profile 101, as well as used by the system 99 to select from the plurality of services 90a,b,c,d of the service platform 90 to be supplied (e.g. offered to the user via the user device 104) in order for the user to access the respective content 103 of the selected service 90a,b,c,d).
The users of the application 91 can be categorized into the plurality of user types (e.g. three according to the freemium model design). Alternative embodiments of the user types can also include existing institution clients, the non-institution clients (new users who have registered) and free users (visitors). For example, a user could be determined as both a visitor type and a beneficiary type.
For example, as there is no data available on the visitors, also referred to as a “cold-start problem”, there can be less personalization in operation of the system 99. Visitors can browse the application 91 to take advantage of the some of the application 91 partnered free best-in-class curated services 90a,b,c,d. As the boon, the institution can have an exhaustive in-house and third-party partner, hence a visitor can filter these services 90a,b,c,d and land up with their desired services effectively. Application 91 users can also see the ratings of each service 90a,b,c,d on the respective card by other users, as desired.
Further, visitors and non-institution clients, can get started by creating an account with the application 91 using their demographic data 101c along with a gamified non-invasive questionnaire (results 303—see
In view of the above, for semi-cold start problem, the user behavior and usage data 101a within the application 91 is stored to provide better personalization when they return. In addition, the content-to-content filtering algorithm 57a is used to recommend 302 the list of similar services 90a,b,c,d to the one that was chosen previously by the user for better user experience and show the variety of similar available services. For premium existing institution clients (an embodiment of user type), transactions data 101b can be leveraged by the system 99 to build an immersive user experience recommendation by combining with the state-of-the-art machine learning algorithms of the recommendation engine 54b and the life event predictor 54a. Further, based on the extensive user research, it is understood that there is a vacuum when it comes to financial jargons and the need for financial education. Hence, the smart guide 54e is used by the user for providing financial education and recommending the relevant services 90a,b,c,d by the recommendation engine 54b based on the searches performed by the user when using the smart guide 54e.
In view of the above, there can be multiple categories/types of users and recommendations, such as but not limited to: 1) Cold Start—Visitors which involves no to little personalization but can browse and search through the home page to find the most relevant services; 2) Semi Cold Start—Visitors which involves those who have signed up and can leverage questionnaire data 303 to understand the life event 300 and provide matching services by the recommendation engine 54b along with content-to-content 57a similarity (and/or collaborative 57b similarity) based on user behavior 101a and preferences 101a collected within the application 91 based on user interaction with the consent 103 served on the user interface 212 by the microservices 54 in conjunction with the services 90a,b,c,d selected (by the user and/or by the system 99) during operation of the application 91; 3) Warm Start—institution clients which involves personalized service recommendation 302 based on the life event 300 derived from exclusive institutional data 101b, 101c. Like semi-cold start, the application 91 can recommend content-to-content 57a similarity (and/or collaborative 57b similarity) for the prediction 302, based on user behavior 101a for enhanced user experience. It is recognised that the prediction 302 based on real-time user activity 101a can be performed subsequent to the initial prediction 302 provided in response to use of data 101 other than the data 101a.
Further, each of the user types can also be identified/determined by the system 99 (based on the collected user profile data 101 and/or user interaction data 101a) to have other associated user types (e.g. benefactor, beneficiary, etc.). For example, a user identified by the system to be of a specified age and stage (reflected in transactional data 101b and demographic data 101c) can be labelled by the system 99 as a benefactor, a beneficiary, etc. In this regard, the system 99 can advantageously seek to link users of different types with one another, as reflected by content of the user profile data 101 of each respective user, e.g. benefactors linked with one or more beneficiaries, a beneficiary linked with one or more benefactors, a beneficiary linked with one or more beneficiaries, etc.).
Referring now to
One embodiment of the application 91 is configured as a networked application 91 that can assist Baby Boomers and Millennials (e.g. users of the user devices 104) manage life needs from changes in circumstances as they experience different life events in their life journey. The application 91 can be a client-facing mobile friendly application (e.g. as provided by a front end 50—see
As further described below, the application 91 can be provided by the system 99 as a user centric tool made for institution and non-institution clients to assist users in managing their needs 301 as they navigate through life's events 300 by offering the right services 90a,b,c,d at the right time. With the overwhelming number of services flooding the internet, the application 91 advantageously connects users with the right services 90a,b,c,d at the exact moments they need it. Leveraging a Life Stage model 55, the application 91 uses any or all of the transaction data 101b and demographic data 101c (from institution clients), and/or questionnaire data 101d (e.g. from non-institution clients) to understand which life event and life journey phase 300 the user is currently in or will be in the near future. Further, the application 91 toolbox can contain trusted in-house and third-party services 90a,b,c,d that users can utilize with confidence, as provided by the recommendation engine 54b. These services 90a,b,c,d can extend from “traditional” banking and offer a variety of useful applications for financial services, expense management, health and wellness, care giving, travel, and retail shopping, as examples only. A personalized dashboard of services 90a,b,c,d can be curated for each user (as displayed by the application 91 on the user interface 212—see
The system 99 can utilize a variety of technological services, features and applications in order to analyze the user profile 101 and application interactions 101a, as well as to offer services 91 from the service platform 90, as provided by example above. For example, referring to
For example, the user authentication 54d microservices can handle application 91 account creation, login and json web token authentication. This service 54d can provide secure account management and authentication methods via Apigee, for example, facilitating users to register new accounts and maintain their data over multiple sessions, while providing authentication and encryption of user information 101, 101a stored in MongoDB.
The service recommendation engine 54b can provide recommended services 302 based on stored user information 101, 101a through its connection with the data science models 59 that are hosted with flask and S3, for example. Through the use of this model 59, the frontend 50 can continue to provide data (e.g. user interactions 101a) to the models 59 in order to make the recommendations 302 more accurate, and request new recommendations 302 both for individual users, and for a content-based matching algorithm 57a and/or a collaborative-based matching algorithm 57b and used to display similar services 90a,b,c,d when in the service details page of the application 91 on the user interface 202, as further described below.
The service information 54c microservice is used to retrieve specific details about the services 90a,b,c,d available with application 91, as predicted/recommended 302 by the recommendation engine 5b. This microservice 54c can be decoupled from the service recommendation 54b microservice in order to facilitate scalability and provide for the case where service information can be obtained without having to involve the data models 59 or any sort of recommendations 302. This microservice 54c can be heavily integrated with the stored service information of the services 90a,b,c,d in MongoDB (e.g. implementing the service platform 90), and can act as a bridge to serve specific tailored information from the database based on frontend 50 requests via the gateway 54.
The get smart guide 54e can also be integrated with the data models 59 and can act to provide users with the results from any questions (e.g. search queries) they have asked through the Get Smart Guide 54e, and the services 90a,b,c,d relevant to their search.
Referring to
Referring again to
Further considerations for generation of the event stage prediction 300 can include: 1) a cold start case for the recommendation system 54b where there is limited to no information (e.g. data 101) about the user. This cold start case is solved by using life events defined through a gamified questionnaire (e.g. set of queries 303 posed to the user on the user interface 212 via the predictor 54a) to understand the client's current life stage; 2) Clustering of the institution's partnered and third party services 90a,b,c,d using K-Means Clustering with ELBOW and silhouette analysis to identify the right K; a combination of life event predictor model 54a along with the content-to-content similarity and service matching model 57a based on life event labels that can return contents 103 from various sectors based on user preferences (e.g. leveraging application interactions 101a); 3) combining user preferences 101a with user behavior 101a within the application 91 (e.g. services 90a,b,c,d chosen) for manipulation by the content-to-content filtering algorithm 57b; 4) combining the architecture of mixed hybrid recommendation system 500 (see
Referring to
For example, retirement stage 300 can be an initial revelation, understanding retirement possibilities, adjusting lifestyle, less financial flexibility, enjoying retirement but missing work life, slowing of pace. For example, having a baby stage 300 can involve considering the possibility, preparing for parenthood, expecting a child, stress as a new parent, bliss of a new child, enjoying life with new extended family. Based on the specific life phase of the client's life stage 300 and historical client preferences 101a, an intuitive way of service matching is performed by the recommendation engine 54b to offer the clients with best-in-class services at the right time.
For example, the application 91 can use the novel mixed hybrid recommendation system 500 where the life stage recommendation 300 is performed in parallel for a first user and an associated second user (of the user profile 101) using multiple models 55, 57 (e.g. a pair of models, however recognizing that more than two models can be used at any one time in generating the combined prediction 300a), such as both retirement 55 and having a baby model 57, and the individual model results 300 and combined model results 300a (e.g. user is determined to be relevant to both retirement and having a baby) are cascaded as input the service matching 54b, which acts as the input for content-to-content filtering 57a (and/or contrastive filtering 57b), see
In the service matching algorithm 54b, a set of services 90a,b,c,d are recommended to the user, which can be based on the historical user preferences 101a as well. In a long time period, based on the user's feedback through ratings, user behavior of viewing, choosing the services, change of user's life stage the type of services offered can be altered in order to recommend services by sampling from various identified life stages 300. For example, a person whose currently in having a baby life stage 300 could potentially also move to a caregiver stage 300 or job loss life stage 300.
Referring to
In view of the above, during operation of the application 91, once the institutional user signs in, an API call is made from the backend microservice 54 to the data science microservice 54 with the appropriate API endpoint through APIGEE with the institutional user ID. The user's data 101 is fetched with the ID and data transformation is performed. Then, the life event prediction model 55, 57 is triggered with this transformed data. The predicted value 300 can be used to match and fetch services 90a,b,c,d as per history of user preferences and services used by similar users (e.g. using content and/or collaborative filtering 57a, 57b).
For example, in reference to
The ML pipeline can be used to build a content-based filtering algorithm 57a containing a number (e.g. 5) components is as follows: 1) Data 101,101a retrieval involving the institutions in-house and third party partnered services data along with its industry and sub-industry; 2) Data Wrangling involving data preprocessing which can include combining of the industry and sub-industry of services into single feature, stop word and punctuation removal using NLTK libraries and performed WordNet Lemmatization; 3) Data Engineering involving the numerical column which contains additional information as converted using ColumnTransformer, such that the selected features can be combined and converted into vectors using Gensim and Google News Negative pretrained word2vec pretrained model which contains 300-dimensional vectors for 3 million words and phrases, which is currently the largest corpus; 4) Model Training involving the word2vec converted features can be clustered using K-Means clustering algorithm to combine similar services together, for example in order to find the right ‘K’, one can perform ELBOW and Silhouette analysis, with the identified ‘K’, the services can be clustered using K-Means algorithm; and 5) Ordering involving the clusters can be assigned back to the services.
In view of the above, during operation of the application 91, when a user interacts with any of the displayed services 90a,b,c,d and selects them, an API call is triggered from the backend microservice 54 to the data science microservice 54 with the appropriate API endpoint through APIGEE with the chosen service name. The service name is matched with the partners data and data cleaning and transformation is performed. Later, the feature is converted into vectors using gensim word2vec model. The engineering feature is as model input to predict the cluster which the service belongs to. Once the cluster is identified, in order to provide more accurate and relevant services, we have performed cosine similarity cost function. At this point, the recommendation 302 is provided for use in selection from the services platform 90 for the service(s) 90a,b,c,d best matching the recommendation 302. It is also recognised that in view of available users and user interactions data, the recommendation engine 54b can offer collaborative filtering 57b and recommend users with services 90a,b,c,d which are used by users with similar interests to the user employing the application 91.
Referring to
In view of the above, the models 55, 57, 57a,b, 59 used by the system 99 (e.g. which can be referred to as a personalization engine) can be employed by the application 91 to offer the best-in-class personalized recommendations 302 of the services 90a,b,c,d based on the profile data 101 known about the users and user behavior/preferences data 101a marked by viewed, searched and selected content 103 within the system 99. This can be provided by machine learning (ML) algorithms like XGBoost, Natural Language Processing (NLP) algorithms like Gensim coupled with cosine similarity cost function. Accordingly, the application 91 can recommend 302 a variety of services 90a,b,c,d based on the previous clients' preferences 101a within the application 91. In terms of diversity, it is facilitated that a range of services 90a,b,c,d can be recommended without tampering the content similarity, as discussed by example above.
Based on various life events 300 identified by the life event predictor 54a, the personalization of the user can be crafted in such a way that it meets the needs of user's specific life stage(s) 300 as identified. In the case of visitors, they can browse through the application 91 and get to know the diversity of services 90a,b,c,d available. It is noted that the application 91 may not store any information, nor have any prior data 101, 101a on the visitors. Hence, there may be no personalization performed for such users. For non-institutional users who decide to sign up with application 91 with their demographic details 101c, the application 91 can provide with a gamified non-invasive questionnaire to collect queried results 303 in order to improve user experience and understand the life stage 300 of the user. Based on the life stage identified 300, to make the personalization extremely granular, the application 91 can list several life phases specific to each life stage 300 which was identified as part of user interviews with people across age, advisors and brokers. Service recommendations 302 can be provided to new application 91 users based on the life phase 300 from questionnaire results 303. In addition, these new users can be provided with similar services 90a,b,c,d to the one they choose based on content-to-content filtering 57a as discussed above. For premium institutional clients, the application 91 has access to their transactions data 101b as part of their profile data 101, which can be used by the application 91 to identify the precise current life stage(s) 300 of the user, coupled with optional gamified life phase identification, to help provide accurate personalized service recommendations 302. Institutional clients can also be provided with similar content 103 based on their previous selections 101a through content-based filtering algorithm 57a implementation as provided by example above.
In terms of the availability of various types of data for the various models 55, 57, 57a,b, 59, the application 91 can be configured as follows. For life event prediction models 55,57, the application 91 can use client's demographics 101c, transactions 101b, investments, mortgage, line of credit, retirement goals, and/or time to achieve retirement goals data, which can preserve the actual relationship and distribution of real institutional user data, for use in the life event prediction 300. In the case of content-based filtering 57a, the application 91 can use institutional in-house and third party partnered services dataset 101 and use the Glossary of financial jargons data set for smart guide 54e. Using these data sources, the application 91 can be implemented to recommend highly personalized content 103 leveraging ML and NLP algorithms of the associated models 55, 57, 57a,b, 59.
In having access and manipulation of the data 101, 101a, the recommendation engine evaluation 54b can be performed in a variety of ways, as desired by the configuration of the system 99, in particular in view of the classification(s) (e.g. life event 300) of the user. In this regard, it is recognised that model evaluation can be an integral part of the model development process. The evaluation criteria can be focused on the content relevance and variety during content based filtering, on-point definition and displaying relevant services for smart guide search and predicting the right life event of the clients. In the case of life event prediction, which is a classification problem, predicting the retirement and having a baby life stage event of clients who are actually falling in the respective category is relevant. Hence, false negatives are crucial. A great approach to assess this scenario is through considering the recall value of the confusion matrix. The life event predictor model 54a employed by the application 91 has a recall value of 94% for the data set 101, 101a used. The application 91 employs the K-Means clustering model combined with the cosine similarity cost function for the accurate and better prediction top N recommended services 90a,b,c,d that is similar to the one the user has already chosen (e.g. as represented by the user data 101a identified by the system 99 during use of the application 91 by the user). For evaluating K-Means clustering, the application is configured by performing: calculation of spatial distance between centroids; and Lowes distance ratio.
Further, based on Elbow and silhouette analysis performed on institutional partnered services 90a,b,c,d, the application 91 can have (e.g. 4) clusters and have a spatial distance between centroids of 0.88 and 92% confidence score as per lowe's distance ratio. For evaluating the recommendation 302 of similar content with diversity, the 1-cosine similarity can be performed, among the various user's list of recommended services but belonging to the same life event 300 such that the possibility of ending up with same list of services is high. We considered a top set (e.g. 5) recommendations for dissimilarity measure between (e.g. 5) similar users and resulted with an average of 25% similarity. On the other hand, for users' personalization experience, recommending unique services that best fits the user's life stage with diversity is measured with a high score of ranked intra-document dissimilarity. According to a number of user interviews and research, we understood that the pain points and needs for each life stage is different. For the same set of users, we measured an average intra-document dissimilarity of 80% which shows that even in the list of recommendations, there contains diversity to reduce the factor of repetition and keep the user engaged with better user experience and retention. However, one of the most popular and an effective way to assess the performance of personalized recommender system is to carry out an A/B testing by target users of the system. We do have a rating feature on our roadmap for users, where they can rate the services recommended along with their experience with smart guide for its financial definitions. Thereby we collect the feedback, analyze the user behaviour within the application and re-iterate the system if need be.
As described, the profile data 101 can include age, profession, geographical location, institution products selected by the user, etc. For example, the profile data 101 can contain all financial data concerning bank accounts, credit card transactions, and investment data of an institution. One embodiment of the service 99 and application 91 operation is as a financial accounts explorer/facilitator/advisor for the user, based on the user profile data 101 and the application activity data 101a. For example, the application 91 can be an institution (e.g. RBC) Launch app. For example, the data 101 can include an aggregation of proprietary RBC data representing different RBC products (e.g. bank accounts information, reward points information, investment information, credit card information, etc.). In view of the above, it is recognized that communication between the user (via the device 104) and the system 99 can be synchronous or asynchronous communications 50, as initiated by the user and/or the system 99.
Referring to
For example, applying the user profile data pertaining to a user of a network system 99 of the institution for providing services 90a,b,c,d to a user from a platform of services 90. For example: obtaining 702 user profile data101 pertaining to the user of a network system 99 of an institution; comparing 704 the user profile data 101 to a plurality of different potential life stages 300 in order to determine a selected life stage 300, 300a; identifying 706 one or more services 90a,b,c,d from the platform of services 90 based on the selected life stage 300, 300a; identifying 708 the one or more services 90a,b,c,d to the user via a user interface 212 of a user device 104; receiving 710 a request 103a from the user through the user device 104 for access to the one or more services 90a,b,c,d; and updating 712 contents of the user profile 101 to include or otherwise be associated with additional profile content 101a related to activity 103a of the user with the one or more services 90a,b,c,d.
Tech Stack
Referring to
The example tech stack shown in
As discussed above, the backend 52 utilizes microservices 54 architecture, that split it up into independently deployable microservice modules 54a,b,c,d,e which communicate with each other through APIs. Each microservice 54 covers its own scope and can be updated, deployed, and scaled independently. Implementing microservice-based architecture can add ease to the process of identifying and resolving the root of performance issues that means our applications 91 can remain unaffected by a single failure. Application 91 security architecture can be built to address different vulnerabilities and to meet industry standards in order to protect institutional client's data and maintain their privacy status. For example, JSON Web Token (JWT) mechanism can be used verify and authenticate application 91 users and store encrypted user information in Mongo DB. Further, the application 91 can use vault as the underlying architecture to store the critical access tokens which can be used to communicate with the S3 bucket for storing the data model 59 and providing real-time personalization. All Data-in-transit can be encrypted for http requests as well. The frontend 50 can be configured as built of React functional components with the help of the Redux toolkit which can provide the ability of the system 99 to manage the state and to pass many props through multiple hierarchies of the components. This can result in an easy to read, to test and to debug application 91 because of plain JavaScript functions without state or lifecycle-hooks. Also, the frontend 50 can use Redux Thunk for communicating asynchronously with an external API to retrieve or save data. Redux Thunk can make it easy to dispatch actions that follow the lifecycle of a request to an external API. The backend 52 can be split into the variety of microservices 54 in order to provide a more organized and decoupled platform 99. The backend microservices 54 can include the life event predictor 54a, service recommendation system 54b, service detail provider 54c, user authentication 54d, and the get smart guide 54e.
Further, the application 91 supports PWA that can operate both as a web page and mobile app on any device 104. The most significant benefits PWA offers can be its speed, the ability to work off-line, and accessibility directly from the browser. The institution clients can add the application 91 to the Home Screen of their mobile device 104 like a typical native app, skipping app stores and saving valuable storage, especially in the situation with poor connection or an expensive data plans. Furthermore, the application 91 provided by the system 99 can be encapsulated into Docker containers, which facilitates the application 91 to be hosted on any Cloud Service Provider.
Referring to
The processor used in the foregoing embodiments may comprise, for example, a processing unit (such as a processor, microprocessor, or programmable logic controller) or a microcontroller (which comprises both a processing unit and a non-transitory computer readable medium). Examples of computer readable media that are non-transitory include disc-based media such as CD-ROMs and DVDs, magnetic media such as hard drives and other forms of magnetic disk storage, semiconductor based media such as flash media, random access memory (including DRAM and SRAM), and read only memory. As an alternative to an implementation that relies on processor-executed computer program code, a hardware-based implementation may be used. For example, an application-specific integrated circuit (ASIC), field programmable gate array (FPGA), system-on-a-chip (SoC), or other suitable type of hardware implementation may be used as an alternative to or to supplement an implementation that relies primarily on a processor executing computer program code stored on a computer medium.
The embodiments have been described above with reference to flow, sequence, and block diagrams of methods, apparatuses, systems, and computer program products. In this regard, the depicted flow, sequence, and block diagrams illustrate the architecture, functionality, and operation of implementations of various embodiments. For instance, each block of the flow and block diagrams and operation in the sequence diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified action(s). In some alternative embodiments, the action(s) noted in that block or operation may occur out of the order noted in those figures. For example, two blocks or operations shown in succession may, in some embodiments, be executed substantially concurrently, or the blocks or operations may sometimes be executed in the reverse order, depending upon the functionality involved. Some specific examples of the foregoing have been noted above but those noted examples are not necessarily the only examples. Each block of the flow and block diagrams and operation of the sequence diagrams, and combinations of those blocks and operations, may be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting. Accordingly, as used herein, the singular forms “a”, “an”, and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise (e.g., a reference in the claims to “a challenge” or “the challenge” does not exclude embodiments in which multiple challenges are used). It will be further understood that the terms “comprises” and “comprising”, when used in this specification, specify the presence of one or more stated features, integers, steps, operations, elements, and components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and groups. Additionally, the term “connect” and variants of it such as “connected”, “connects”, and “connecting” as used in this description are intended to include indirect and direct connections unless otherwise indicated. For example, if a first device is connected to a second device, that coupling may be through a direct connection or through an indirect connection via other devices and connections. Similarly, if the first device is communicatively connected to the second device, communication may be through a direct connection or through an indirect connection via other devices and connections. The term “and/or” as used herein in conjunction with a list means any one or more items from that list. For example, “A, B, and/or C” means “any one or more of A, B, and C”.
It is contemplated that any part of any aspect or embodiment discussed in this specification can be implemented or combined with any part of any other aspect or embodiment discussed in this specification. The scope of the claims should not be limited by the embodiments set forth in the above examples, but should be given the broadest interpretation consistent with the description as a whole. It should be recognized that features and aspects of the various examples provided above can be combined into further examples that also fall within the scope of the present disclosure. In addition, the figures are not to scale and may have size and shape exaggerated for illustrative purposes.
Number | Date | Country | |
---|---|---|---|
63400528 | Aug 2022 | US |