Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHODS AND APPARATUS FOR BUILDING AND DEPLOYING MOBILE DEVICE APPLICATIONS
Document Type and Number:
WIPO Patent Application WO/2016/011084
Kind Code:
A1
Abstract:
Methods and systems for generating a mobile application for mobile devices are provided. A user interface is provided on a visual display having a mobile application template. Additionally, one or more mobile application components are displayed for integrating into the mobile application template shown on the visual display. Each of the one or more mobile application components are interoperable with at least one other mobile application component of the one or more mobile application components. Further, a set of one or more mobile application components are selected for integrating into the mobile application template shown on the visual display. The set of one or more mobile application components are combined and placed at selected locations within the mobile application template shown on the visual display. Additionally, the mobile application is generated from the combined set of one or more mobile application components.

Inventors:
MOLDT CLAUS (US)
LYNCH LIAM (US)
SAGRAY AARON (US)
JAROSZ JOEY (US)
NGUYEN BRYANT (US)
Application Number:
PCT/US2015/040454
Publication Date:
January 21, 2016
Filing Date:
July 14, 2015
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
MPATH INC (US)
International Classes:
G06F9/44
Foreign References:
US20130059613A12013-03-07
US20110113090A12011-05-12
US20140053126A12014-02-20
Attorney, Agent or Firm:
SMITH, Kristin et al. (650 Page Mill RoadPalo Alto, CA, US)
Download PDF:
Claims:
CLAIMS

WHAT IS CLAIMED IS:

1. A method for generating a mobile application for mobile devices, comprising:

providing a user interface on a visual display having a mobile application template; displaying one or more mobile application components for integrating into the mobile application template shown on the visual display, wherein each of the one or more mobile application components are associated with instructions having a particular functionality on the mobile devices, and wherein each of the one or more mobile application components are interoperable with at least one other mobile application component of the one or more mobile application components;

selecting a set of one or more mobile application components for integrating into the mobile application template shown on the visual display;

combining and placing the set of one or more mobile application components at selected locations within the mobile application template shown on the visual display; and generating the mobile application from the combined set of one or more mobile application components shown within the mobile application template shown on the visual display.

2. The method of claim 1 , wherein the set of one or more mobile application

components are selected by engaging each of the application components.

3. The method of claim 2, wherein the set of one or more mobile application

components are selected from an application component storage area.

4. The method of claim 3, wherein the placing the set of one or more mobile application components comprises dragging the set of one or more mobile application components from the application component storage area to the mobile application template.

5. The method of any of claims 1-4, wherein at least one of the set of one or more application components is from an external data source.

6. The method of any of claims 1-5, wherein the set of one or more application components contain two application components that are each from separate data sources.

7. The method of any of claims 1-6, wherein the combining and placing the set of one or more mobile application components comprises functionally linking the application component with an adjacent application component within the application template.

8. The method of any of claims 1-7, further comprising:

determining whether the selected mobile application component is integrable into the selected location within the mobile application template; and upon determining that the selected mobile application component is integrable into the selected location within the application template, automatically populating the selected location within the mobile application template with the selected mobile application component

9. A system for integrating elements from data sources into a mobile application template of a mobile application generating provider, the system comprising:

a) a storage area of the mobile application generating provider containing mobile application components, for each of a plurality of data sources, defining a plurality of visually perceptible elements that correspond to the plurality of data sources, wherein the plurality of visually perceptible elements include identifying aspects of the data source;

(i) wherein each of the data sources belong to one of a plurality of data source owners;

(ii) wherein each of the data sources displays at least one visually perceptible element that is associated with an identifying aspect of the data source; and

(iii) wherein the application generating provider is a third party to each of the data source owners; and

b) a computer server at the mobile application generating provider, which the computer server is coupled to the storage area and programmed to:

(i) receive from a user a signal indicating selection of a mobile application component associated with a data source for incorporation into an application;

(ii) identify at least one visually perceptible element corresponding to the data source of the selected mobile application component;

(iii) in response to the identification of the at least one visually perceptible element corresponding to the data source of the selected mobile application component, retrieve the at least one visually perceptible element corresponding to the selected data source; and

(iv) using the retrieved at least one visually perceptible element,

automatically populate the application template of the application generating provider with the at least one visually perceptible element.

10. The method of claim 9, wherein the selected mobile application component is from a social networking data source.

11. The method of claim 9 or 10, wherein the signal indicating the selection of the mobile application component is a click from a user engaging a drag-and-drop component.

12. A method for generating a mobile application at a mobile application generating provider, comprising:

providing a user interface on a visual display having a mobile application template; displaying one or more mobile application components for integrating into the mobile application template shown on the visual display, wherein each of the one or more mobile application components are interoperable with at least one other mobile application component of the one or more mobile application components, and wherein each of the one or more application components are owned by an entity that is a third party to the application generating provider;

selecting a set of one or more mobile application components for integrating into the mobile application template shown on the visual display;

retrieving at least one visually perceptible element associated with the selected data source, wherein the at least one visually perceptible element is stored in association with the data source; and

automatically populating the mobile application template with the at least one visually perceptible element.

13. The method of claim 12, further comprising:

populating the mobile application template with the selected mobile application component.

14. The method of claim 12 or 13, wherein the at least one visually perceptible element associated with the selected data source comprises an attribute of the data source.

Description:
METHODS AND APPARATUS FOR BUILDING AND DEPLOYING

MOBILE DEVICE APPLICATIONS

CROSS-REFERENCE

[0001] This application claims the benefit of U.S. Provisional Application No. 62/024,356, filed July 14, 2014, which is incorporated herein by reference.

BACKGROUND

[0002] The development of computer-based applications has become increasingly important as users increasingly interact with companies and with each other using electronic

communications. However, individuals with little or no significant programming skills have a difficult time creating mobile device applications.

SUMMARY OF INVENTION

[0003] The development of mobile applications may be used to help a user increase connectivity, interaction, and management of electronic communications. In examples, mobile applications may be used to integrate data from multiple data sources. In examples, a user may generate a mobile application to manage the user's electronic information and/or communications. Additionally, mobile applications that are generated by a user may be provided to other users. As such, the use of methods and systems as provided herein may benefit users to develop mobile applications.

[0004] In an aspect, a method for generating a mobile application for mobile devices is provided. The method comprises providing a user interface on a visual display having a mobile application template. The method also comprises displaying one or more mobile application components for integrating into the mobile application template shown on the visual display, wherein each of the one or more mobile application components are associated with instructions having a particular functionality on the mobile devices, and wherein each of the one or more mobile application components are interoperable with at least one other mobile application component of the one or more mobile application components. Additionally, the method comprises selecting a set of one or more mobile application components for integrating into the mobile application template shown on the visual display. Further, the method comprises combining and placing the set of one or more mobile application components at selected locations within the mobile application template shown on the visual display. The method also comprises generating the mobile application from the combined set of one or more mobile application components shown within the mobile application template shown on the visual display.

[0005] In another aspect, a system for integrating elements from data sources into a mobile application template of a mobile application generating provider is provided. The system includes a storage area of the mobile application generating provider containing mobile application components, for each of a plurality of data sources, defining a plurality of visually perceptible elements that correspond to the plurality of data sources, wherein the plurality of visually perceptible elements include identifying aspects of the data source. In particular, each of the data sources belong to one of a plurality of data source owners. Additionally, each of the data sources displays at least one visually perceptible element that is associated with an identifying aspect of the data source. Further, the application generating provider is a third party to each of the data source owners. The system also comprises a computer server at the mobile application generating provider, which the computer server is coupled to the storage area and programmed to (i) receive from a user a signal indicating selection of a mobile application component associated with a data source for incorporation into an application; (ii) identify at least one visually perceptible element corresponding to the data source of the selected mobile application component; (iii) in response to the identification of the at least one visually perceptible element corresponding to the data source of the selected mobile application component, retrieve the at least one visually perceptible element corresponding to the selected data source; and (iv) using the retrieved at least one visually perceptible element, automatically populate the application template of the application generating provider with the at least one visually perceptible element.

[0006] In an additional aspect, another method for generating a mobile application at a mobile application generating provider is provided. The method comprises providing a user interface on a visual display having a mobile application template. The method also comprises displaying one or more mobile application components for integrating into the mobile application template shown on the visual display, wherein each of the one or more mobile application components are interoperable with at least one other mobile application component of the one or more mobile application components, and wherein each of the one or more application components are owned by an entity that is a third party to the application generating provider. Additionally, the method comprises selecting a set of one or more mobile application components for integrating into the mobile application template shown on the visual display. Further, the method comprises retrieving at least one visually perceptible element associated with the selected data source, wherein the at least one visually perceptible element is stored in association with the data source. The method also comprises automatically populating the mobile application template with the at least one visually perceptible element.

INCORPORATION BY REFERENCE

[0007] All publications, patents, and patent applications mentioned in this specification are herein incorporated by reference to the same extent as if each individual publication, patent, or patent application was specifically and individually indicated to be incorporated by reference.

BRIEF DESCRIPTION OF THE DRAWINGS

[0008] The novel features of the invention are set forth with particularity in the appended claims. A better understanding of the features and advantages of the present invention will be obtained by reference to the following detailed description that sets forth illustrative embodiments, in which the principles of the invention are utilized, and the accompanying drawings of which:

[0009] FIG. 1 is a block diagram of the mobility platform, in accordance with embodiments of the invention.

[0010] FIG. 2 is a block diagram of the mobile device kernel, in accordance with

embodiments of the invention.

[0011] FIG. 3 is a block diagram of a pathlet, in accordance with embodiments of the invention.

[0012] FIG. 4 is a block diagram of the metadata service, in accordance with embodiments of the invention.

[0013] FIG. 5 is a block diagram of the mobile device proxy service, in accordance with embodiments of the invention.

[0014] FIG. 6 is a block diagram of the connector service, in accordance with embodiments of the invention.

[0015] FIG. 7 is a block diagram of the admin service, in accordance with embodiments of the invention.

[0016] FIG. 8 is a block diagram of the pathlet studio, in accordance with embodiments of the invention;

[0017] FIG. 9 provides a first user interface of an application generating provider, in accordance with embodiments of the invention; [0018] FIG. 10 provides a second user interface of an application generating provider, in accordance with embodiments of the invention;

[0019] FIG. 11 provides a third user interface of an application generating provider, in accordance with embodiments of the invention;

[0020] FIG. 12 provides a user interface of a application preview, in accordance with embodiments of the invention;

[0021] FIG. 13 provides a user interface of a publishing component, in accordance with embodiments of the invention; and

[0022] FIG. 14 schematically illustrates a computer system that is programmed or otherwise configured to implement methods and user interfaces of the present disclosure.

DETAILED DESCRIPTION

[0023] Methods and systems provided herein are directed towards generated mobile applications using an application template. In examples, applications are generated by integrating application components into an application template. The development of mobile applications may be used to help a user increase connectivity, interaction, and management of electronic communications. In examples, mobile applications may be used to integrate data from multiple data sources. In examples, a user may generate a mobile application to manage the user's electronic information and/or communications. Additionally, mobile applications that are generated by a user may be provided to other users. As such, the use of methods and systems as provided herein may benefit users to develop mobile applications.

[0024] As such, methods and systems discussed herein may provide examples of a platform for generating and running mobile applications in a way that is accessible to most users. Rather than being required to learn and utilize one or more coding languages, methods and systems provided herein may use an application generating template that may be used to incorporate application components into the application template.

[0025] Additionally, a mobile application that is generated may be previewed. In examples, an application may be previewed so as to demonstrate functionality of the application once it has been finalized. A user may interact with the preview of the mobile application before finalizing the mobile application. In other examples, a user may preview an application that another user is generating. Further, the user may receive notifications related to whether there is a mobile application (either generated from the user and/or generated by another user) that is available for the user to preview. Once the application has been completed, and possibly also previewed, the completed application may be sent to mobile devices based on the designation of the user that generated the application. For example, the finished application may be provided to contacts of a user. In some examples, a user may receive a notification that an application that is accessible to the user is new and/or has been modified.

[0026] Once the application is generated, the application may be distributed to one or more mobile devices. In examples, once the application is created, a user can provide detail on how the user wants to distribute the application. In some examples, an application that is generated using the platform may be provided to mobile devices. Additionally, the platform may be used to interact with the applications on the mobile devices. In examples, the platform may be used to interact with the mobile devices in real time.

[0027] An example of a platform for generating and running applications, such as mobile applications that are run on a mobile device, is provided in FIG. 1. In particular, FIG. 1 provides a block diagram of a mobility platform 100, in accordance with embodiments of the invention. In examples, a platform for generating and running applications as provided in FIG. 1 may include an application generating component. This is illustrated in FIG. 1 as a studio component, such as studio 105. A studio may be an interface that a user may use to create mobile applications. Throughout the disclosure, mobile applications may be referred to as "pathlets." When using an application generating studio, a user may be provided with a user interface that presents application components that may be integrated into an application template. The user may provide an input to select an application component to integrate into the template, such as by clicking on an application component. In some examples, the user may use a drag-and-drop interaction to select an application component; move the application component to the application template; and drop the application component into the application template. Additionally, a user may provide other ways of selecting application components for integration into an application template.

[0028] Once a mobile application has been generated, the mobile application may be provided to other users. In particular, the mobile application may be provided to mobile devices associated with users. Examples of mobile devices, such as mobile device 110, may include a smart phone or a personalized computing device, among other examples as discussed and further elaborated in FIG. 9. Additionally, an administrative component 115 may be used to determine where to send the mobile devices. In examples, an administrative component may be used to manage a list of users that may have access to a particular application. Additionally or alternatively, the administrative component may provide a set of conditions that users meet so as to have permission to access an application. The

administrative component may be used to provide an application to particular users. In examples, the administrative component may be used to provide an application to users that have permission to receive the application. The administrative component may also be used to remove an application from one or more users that may cease to have permission to access an application. In addition to determining which users may receive access to a mobile application, an administrative component may be used to determine how a particular user may view aspects of the application. In particular, the administrative component may be used to provide settings for a client-side view of an application. Alternatively, the administrative component may be used to determine how an administrator can view the application.

Accordingly, the administrative component may be used to manage applications as well as managing users of applications.

[0029] Methods and systems according to some embodiments of the invention can be for building and deploying mobile device applications. Additionally, the methods and systems of some embodiments can provide an enterprise administration staff the ability to construct its organization, users, teams, and application development processes into a framework to build mobile applications. Once the organization, users, teams, and processes are in place, some embodiments of the invention can allow for the configuration of data sources that the mobile applications may use. Data sources that may be used to provide content to a mobile application are illustrated in FIG. 1 as data sources 120. In examples, data sources may include external sources such as Twitter, Salesforce, or Facebook. While external sources may be from companies that are distinct from an application generating provider, e.g. having distinct ownership, the application generating provider may provide an embodiment where aspects of the external data sources may be included in the application that is generated. In additional examples, external data sources may be pluggable into the platform.

[0030] Using a mobility platform as described in FIG. 1, application designers and developers can use a studio to quickly build, test, and deploy mobile applications to the organization's workforce. The application description that is moved to the mobile device from the studio may be referred to as a "pathlet," as described above. A kernel of the mobile device may interpret the application description. Additionally, the kernel may provide access to data via tasks through a mobile proxy to a connector service. The one or more pathlets on a mobile device can be stored in a metadata service and can provide access to the kernel of the mobile device via the mobile proxy. Additionally, the kernel of the mobile device may provide a login component. In particular, using the login component of the kernel of the mobile device, users can log in to the platform through the mobile proxy to the admin service. [0031] FIG. 2 provides an embodiment of the kernel 200 of a mobile device 205. In particular, FIG. 2 is a block diagram of the mobile device kernel, in accordance with embodiments of the invention. The mobile kernel 200 can be a software package that is installed once on the mobile device. The embodiment of the mobile client in this invention can create mobile applications dynamically, and those applications are known as pathlets. The mobile device kernel can differ from normal mobile application development where the normal process is to write an application in compiled form. This can be a slow process and subject to reviews from application store managers such as iTunes®.

[0032] The mobile device kernel 200 can interpret an application construction from a pathlet and dynamically build the application interface. Any number of application types can be created with the mobile device kernel 200 doing the interpretation. In examples, used in conjunction with the connector component described below, the mobile device kernel 200 can access many different types of data stores, API's, web-based services, and a backend application support infrastructure.

[0033] The mobile device kernel 200 can be sent notification messages, as shown in FIG. 2. In examples, the mobile device kernel 200 can be sent notification messages from a platform, such as mobility platform 100 as illustrated in FIG. 1. The mobile device kernel 200 can also pull new information from the platform as well, as shown by the requests in FIG. 2.

Additionally, the mobile device client can dynamically restart an existing application. A new application may be provided to a mobile device through a push or pull mechanism.

Additionally or alternatively, the mobile device kernel 200 may render the new application instantaneously.

[0034] An example of a pathlet that may be generated using an application template is provided in FIG. 3. In particular, FIG. 3 provides a block diagram of a pathlet, in accordance with embodiments of the invention. Pathlet 300 may include an application description 305. Additionally, FIG. 3, pathlet 300 comprises a metadata 310 collection of information that may be used to tell the mobile device kernel 200 on the mobile device what to display to the user of the mobile device. In examples, pathlet 300 can comprise a metadata structure that is based JavaScript Object Notation (JSON). The metadata structure may provide a way to describe how a mobile device application looks, what actions the application can take, what data is involved, and/or which references other schemas in foreign data stores. Each pathlet 300 then can map to any foreign data schema can be accessed by an API invocation. The mobile device kernel 200, when it interprets the pathlet action to read data from a data store, may invoke a platform connector component. The connector component, described below, can access the foreign data store on behalf of the mobile device kernel 200 and can send the data back to the mobile device kernel 200. The data types, such as date objects, being returned to the mobile device client are known to the mobile device kernel 200 using the type information in the pathlet 300. If the pathlet 300 contains dates, for example, a mobile calendar or clock may appear instead of a textual representation of a date or time instance.

[0035] Any formatting or workflow actions that the mobile client manages can be described by the pathlet metadata instance. Actions can be central to how the mobile applications formed according to the method and system described herein operate. The studio, described in greater detail below, and the mobile device kernel 200 may be integrated by the pathlet metadata structure. The studio can create the pathlet application description and the mobile device kernel 200 can interpret the pathlet metadata to dynamically create a mobile device application.

[0036] FIG. 4 illustrates a metadata service, in accordance with embodiments of the invention. As seen in FIG. 4, a metadata service 400 can be a platform component that manages the manifest for each pathlet 300 in the system. The metadata service 400 may store information about the pathlet contents as well as which version of a pathlet 300 a mobile device can load. In this embodiment, the pathlet contents are stored in two locations.

Structural information, such as references to where the pathlet files are located and what version that pathlet instance is, can be located in a relational data store. The pathlet contents can be compressed and stored in a blob storage mechanism.

[0037] The metadata service 400 provides feedback to the platform for security reasons, as described in greater detail below. The mobile device kernel 200 accesses the metadata service 400 through the mobile device proxy, which is described in connection with FIG. 5.

[0038] In particular, FIG. 5 illustrates an embodiment of the mobile device proxy service 500, in accordance with embodiments of the invention. The mobile kernel 200 can access platform services through the mobile device proxy 500. The mobile device proxy 500 provides access to the connector service, the metadata service, and the administration service (to log in and get a token to make all other invocations). The mobile device proxy 500 may verify session information from the mobile device and enforces the mobile device to verify the human user in possession of the mobile device. The mobile device client provides the user with a login screen when a session has expired or when the mobile device client is first used. [0039] FIG. 6 illustrates an embodiment of the connector service, in accordance with embodiments of the invention. The mobile device kernel 200 can use the connector service 600 to read, write, update, and delete data from any type of data store. For example, FIG. 6 shows the connector service 600 accessing data in a structured data source 700 and in a raw data source 800. The connector service 600 has the configurations to be able to connect and perform operations on data anywhere. In one embodiment, for example, the data store could be a SalesForce® application and data store. In another embodiment, the connector service 600 can access files in Dropbox®. In another embodiment, the connector service 600 can access data in Amazon Web Services®.

[0040] The connection service 600 makes the actual connection to the data store and returns the data, messages, errors and exception back to the mobile device kernel 200. The data, mapped through the pathlet 300, renders the data appropriately on the mobile device based upon the design of the studio.

[0041] FIG. 7 provides an embodiment of an administrative (admin) service, in accordance with embodiments of the invention. The admin service 1000 can provide the platform and customer computer system administration staff with a way to control pathlet creation and use. In one embodiment, an admin user can create organizational structure in the admin user interface. An organization in one embodiment can be the operator of the platform described herein. In other embodiments, organizations may be customers of the platform operator.

[0042] In addition to creating and managing organizations, an admin user can add, update, and remove users. Users are those who can design and build pathlets 300 in the studio.

Other users may have mobile devices and those users may be managed by the admin service 1000 as well. In examples, users may belong to one or more organizations in a team structure. A team is a grouping of users with common purposes. In one embodiment, the team can be quality assurance (e.g., users who test pathlets 300). In another embodiment, a team can be the designers of pathlets 300. In yet another embodiment, a team can be the users of pathlets 300.

[0043] The admin service 1000 can manage the security and access control to each pathlet 300. Embodiments of access control may include providing restricted access to pathlets 300 that access restricted data stores; providing restricted access by Internet Protocol addresses; providing restricted access by time of day and day of week; providing restricted access by action (e.g., read, write, update, delete); and providing restricted access by the team of which the user is a member. [0044] The admin user may express security controls through the use of pathlets 300 that access data stores that require credentials to access the data stores. The connector service 600 may use the credentials to make connections to the data stores when the mobile device kernel 200 makes data access requests through the mobile device proxy service 500. These credentials can be encrypted and stored by the platform. The encryption/decryption keys can be managed outside of the platform.

[0045] FIG. 8 provides a block diagram of a pathlet studio, in accordance with embodiments of the invention. The pathlet studio 900 is the system component that creates pathlets 300. There may be several subcomponents to the pathlet studio 900. In examples, a pathlet studio 900 may include a schema manager 905, drag and drop component 910, attribute component 915, compound type component 920, and/or publish component 925.

Schema Manager

[0046] A schema manager 905 of the pathlet studio 900 may use the connector service 600 to read the schema of data stores. A schema within a data store may describe an object in a database. For example, when a data store comprises a social network such as Twitter, schemas may comprise followers, tweets, and/or users. Accordingly, a schema manager may provide an interface for objects of the data source, such as application components. An example of application components is provided in user interface 1100 in FIG. 9. In particular, FIG. 9 provides a first user interface of an application generating provider, in accordance with embodiments of the invention. User interface 1100 includes application components such as "Status," "Priority," "Subject," "Due Date Only," "Description," "Created Date," and "Last Modified Date." The user interface 1100 may be presented on a visual display.

[0047] The credentials to read the schema may have already been added into the admin service. The schema manager may then visualize the data store structure using the schema's description of the data types in the data store. As such, a designer that is building a mobile application may click on one or more application components that are presented on a user interface 1100. This is illustrated in FIG. 9 as application component "Created Date" has been engaged by a user, as illustrated in the dragging the application component towards an application template. In examples, the act of clicking may engage a drag and drop engine, such as a drag and drop engine used in a drag and drop component 910. Drag and Drop

[0048] The designer drag and drop component 910 of the pathlet studio 900 can move a data type onto a graphical pane. In examples, the graphical pane may resemble a mobile device. In examples, the drag and drop component 910 may be used to move application components from an application component store, such as a schema manager, to an application template, such as an application description. This is illustrated in FIGs. 9-11. In particular, FIGs. 9- 11 provide a first, second, and third user interface of an application generating provider, respectively, in accordance with embodiments of the invention. As seen in FIG. 9, and as discussed above, an application component is initially selected. Once an application component is selected, the application component may be moved to a location on an application template. This is illustrated at user interface 1200 of FIG. 10, where the application component "Created Date" is moved to a location within the application template. Further, the application component may be integrated into the application template. In examples, the application component may be integrated into the application template when it has been dropped into the application template, as seen at user interface 1300 of FIG. 11. In examples, prior to being integrated into the application template, a determination may be made as to whether the application component is able to be integrated at a particular location in the application template. In particular, particular application template may include rules that associate an order with a particular template. For example, an email application template may require that a "To:" application component be located above a "From" application component when the "To" and "From" application components are set within the application template.

[0049] In examples, a schema manager may provide for the dragging and dropping of elements within a social media context. In particular, a schema manager may provide application components that are associated with tweets when the social media data source that is presented is Twitter. In examples, an application designer may drag tweets from a presentation of application components associated with Twitter and may integrate those tweets in an application template.

[0050] Additionally, when building an application by dragging-and-dropping application components, a user may choose what information to expose or not expose. In additional examples, a user may adjust elements across a canvas. Further, as an application component is dropped onto the visual display of the application template, the application component may have its appearance modified so as to look like the application component that may end up on the consumer device. In example, a mobile application designer may use the drag and drop component to amend how the application component looks or behaves on the consumer device by altering the item's attributes.

Attributes

[0051] Individual items, such as application components, can have their attributes changed using an attribute component 915. Data sources may have attributes that include visually perceptible elements. The visually perceptible elements may include color schemes, fonts, or other aspects that may be used to visually identify the data source. Examples of attributes may include how data can be entered into the mobile application, how the data may be displayed, and/or other rules that can be changed within the attribute's functionality of the pathlet studio 900. Attributes may be adjusted at any level of generating a mobile application. For example, when an application template includes multiple application components, each application component may be associated with its own attributes.

Additionally, a designer that is generating a mobile application may choose to present selected information from an application component. For example, if a designer chooses to present an application component, such as a table, having three fields, the designer may choose to show two of the three fields in his application while choosing to not show the third field.

Compound Types

[0052] In examples, individual application components can be grouped to serve a purpose. The grouping of application components may be accomplished using a compound type component 920. In one embodiment, a compound type feature of the pathlet studio 900 may have the ability to enter a name, use a pick list, manage a photo, and manage a physical signature (e.g., another type of image) within the same application that is generated using an application template. In additional examples, a security of a transaction may be augmented by adding an application component associated with facial recognition along with an application component that is associated with an electro-physical signature, as discussed in co-filed patent application [International Patent Application No. PCT/US2015/040409, filed on July 14, 2015].

Publish

[0053] Once the generated application has been finalized, the publish component 925 of the pathlet studio 900 may move the structure of the new application from the graphical state to the metadata state. The metadata state may provide a versioning system for each pathlet 300 created in the studio. The publish action may moves the new pathlet 300 into a testing phase where the application may be previewed. During a preview, as provided at user interface 1400 in FIG. 12, a user may interact with an application that has been generated. In particular, FIG. 12 provides a user interface of a application preview, in accordance with embodiments of the invention. Alternatively, the publish action may move the new pathlet 300 directly into the use phase where the pathlet 300 may be pushed to all mobile devices that have access to that new pathlet 300. Access to the pathlet 300 can be restricted to users through the admin service 1000.

[0054] The publish phase can also be sent directly to consumer devices. In one embodiment, a team of quality assurance users can get all new versions of a pathlet 300 where a team of users may only automatically obtain a pathlet version that has been approved by the team of quality assurance users. An example of a publishing interface is seen at user interface 1500 of FIG. 13. In particular, FIG. 13 provides a user interface of a publishing component, in accordance with embodiments of the invention.

[0055] The methods and systems described herein can be used for building and deploying a mobile application. The pathlet studio 900 can, in one embodiment, can provide a mechanism for mobile applications to be developed. The pathlet studio 900 may also provide administrative users a way to build organization to user relationships, define access to data stores, and provide security to pathlets 300. The pathlet studio 900 may use the admin service 1000 to provide the security to pathlets 300. The pathlet studio 900 may use the connector service 600 to access data definitions in structured data sources 700 and raw data sources 800.

[0056] In one embodiment, the pathlet studio 900 may have one output, which is a pathlet 300. The pathlet 300 may be managed by the metadata service 400, where pathlets 300 may be stored. One attribute of the metadata service 400 may be feedback. In the pathlet construction case, the metadata service 400 may send a push notification to clients that are configured to use the pathlet 300 that has been created. Alternatively, the mobile client (such as mobile device kernel 200) can be configured to check for new pathlets 300 for the mobile device. The mobile client can maintain a phone number that is stored in the admin service 1000. The connection to the pathlets 300 that a particular mobile client can use is made in the pathlet studio 900 using the security manager though the admin service.

[0057] The mobile device kernel 200 can get all the latest pathlets 300 for the mobile device to check for updated pathlets, new pathlets, and deleted pathlets. The mobile device kernel 200 calls the metadata service 400 through the mobile device proxy service 500 for this information.

[0058] When the mobile device kernel 200 enables a pathlet 300 and a user on the mobile device interacts with the pathlet 300, the mobile client logs into the mobility platform 100 through the mobile device proxy service 500. The admin service 1000 is invoked by the mobile device proxy service 500 to process the login from the mobile device kernel 200. The result of the login is a token that is an expiration time. The mobile device kernel 200 uses the token on every request while the pathlet 300 is running

[0059] Each pathlet 300 has tasks that can be performed. Each task makes a request to the connector service 600 by sending the request through the mobile device proxy service 500. Tasks that read data in a structured data source 700 send requests through the mobile device proxy service 500, which sends the request to the connector service 600 to access the structured data source 700. If the task performs an action against a raw data source 800, the mobile device kernel 200 sends the request to the mobile device proxy service 500, which then forwards the request to the connector service 600, which then accesses the raw data source 800.

[0060] If a pathlet 300 task reads data from a data source, the connector may return data that the tasks can read. Additionally, if a pathlet 300 task writes data into a data source, the connector service 600 may return the success or failure back though the mobile device proxy service 500 to the mobile device kernel 200. If the pathlet 300 task updates or deletes data in the data source, the status from the data source may be returned.

Computer systems

[0061] The present disclosure provides computer control systems that are programmed to implement methods of the disclosure. FIG. 14 shows a computer system 1601 that is programmed or otherwise configured to authentication systems and methods of the present disclosure. The computer system 1601 includes a central processing unit (CPU, also

"processor" and "computer processor" herein) 1605, which can be a single core or multi core processor, or a plurality of processors for parallel processing. The computer system 1601 also includes memory or memory location 1610 (e.g., random-access memory, read-only memory, flash memory), electronic storage unit 1615 (e.g., hard disk), communication interface 1620 (e.g., network adapter) for communicating with one or more other systems, and peripheral devices 1625, such as cache, other memory, data storage and/or electronic display adapters. The memory 1610, storage unit 1615, interface 1620 and peripheral devices 1625 are in communication with the CPU 1605 through a communication bus (solid lines), such as a motherboard. The storage unit 1615 can be a data storage unit (or data repository) for storing data. The computer system 1601 can be operatively coupled to a computer network ("network") 1630 with the aid of the communication interface 1620. The network 1630 can be the Internet, an internet and/or extranet, or an intranet and/or extranet that is in communication with the Internet. The network 1630 in some cases is a telecommunication and/or data network. The network 1630 can include one or more computer servers, which can enable distributed computing, such as cloud computing. The network 1630, in some cases with the aid of the computer system 1601, can implement a peer-to-peer network, which may enable devices coupled to the computer system 1601 to behave as a client or a server.

[0062] The CPU 1605 can execute a sequence of machine-readable instructions, which can be embodied in a program or software. The instructions may be stored in a memory location, such as the memory 1610. Examples of operations performed by the CPU 1605 can include fetch, decode, execute, and writeback.

[0063] The CPU 1605 can be part of a circuit, such as an integrated circuit. One or more other components of the system 1601 can be included in the circuit. In some cases, the circuit is an application specific integrated circuit (ASIC).

[0064] The storage unit 1615 can store files, such as drivers, libraries, and saved programs. The storage unit 1615 can store user data, e.g., user preferences and user programs. The computer system 1601 in some cases can include one or more additional data storage units that are external to the computer system 1601, such as located on a remote server that is in communication with the computer system 1601 through an intranet or the Internet.

[0065] The computer system 1601 can communicate with one or more remote computer systems through the network 1630. For instance, the computer system 1601 can

communicate with a remote computer system of a user (e.g., student, school, or company). Examples of remote computer systems include personal computers (e.g., portable PC), slate or tablet PC's (e.g., Apple® iPad, Samsung® Galaxy Tab), telephones, Smart phones (e.g., Apple® iPhone, Android-enabled device, Blackberry®), or personal digital assistants. The user can access the computer system 1601 via the network 1630.

[0066] Methods as described herein can be implemented by way of machine (e.g., computer processor) executable code stored on an electronic storage location of the computer system 1601, such as, for example, on the memory 1610 or electronic storage unit 1615. The machine executable or machine readable code can be provided in the form of software. During use, the code can be executed by the processor 1605. In some cases, the code can be retrieved from the storage unit 1615 and stored on the memory 1610 for ready access by the processor 1605. In some situations, the electronic storage unit 1615 can be precluded, and machine-executable instructions are stored on memory 1610.

[0067] The code can be pre-compiled and configured for use with a machine having a processer adapted to execute the code, or can be compiled during runtime. The code can be supplied in a programming language that can be selected to enable the code to execute in a pre-compiled or as-compiled fashion.

[0068] Aspects of the systems and methods provided herein, such as the computer system 1601, can be embodied in programming. Various aspects of the technology may be thought of as "products" or "articles of manufacture" typically in the form of machine (or processor) executable code and/or associated data that is carried on or embodied in a type of machine readable medium. Machine-executable code can be stored on an electronic storage unit, such memory (e.g., read-only memory, random-access memory, flash memory) or a hard disk. "Storage" type media can include any or all of the tangible memory of the computers, processors or the like, or associated modules thereof, such as various semiconductor memories, tape drives, disk drives and the like, which may provide non-transitory storage at any time for the software programming. All or portions of the software may at times be communicated through the Internet or various other telecommunication networks. Such communications, for example, may enable loading of the software from one computer or processor into another, for example, from a management server or host computer into the computer platform of an application server. Thus, another type of media that may bear the software elements includes optical, electrical and electromagnetic waves, such as used across physical interfaces between local devices, through wired and optical landline networks and over various air-links. The physical elements that carry such waves, such as wired or wireless links, optical links or the like, also may be considered as media bearing the software. As used herein, unless restricted to non-transitory, tangible "storage" media, terms such as computer or machine "readable medium" refer to any medium that participates in providing instructions to a processor for execution.

[0069] Hence, a machine readable medium, such as computer-executable code, may take many forms, including but not limited to, a tangible storage medium, a carrier wave medium or physical transmission medium. Non-volatile storage media include, for example, optical or magnetic disks, such as any of the storage devices in any computer(s) or the like, such as may be used to implement the databases, etc. shown in the drawings. Volatile storage media include dynamic memory, such as main memory of such a computer platform. Tangible transmission media include coaxial cables; copper wire and fiber optics, including the wires that comprise a bus within a computer system. Carrier- wave transmission media may take the form of electric or electromagnetic signals, or acoustic or light waves such as those generated during radio frequency (RF) and infrared (IR) data communications. Common forms of computer-readable media therefore include for example: a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD or DVD- ROM, any other optical medium, punch cards paper tape, any other physical storage medium with patterns of holes, a RAM, a ROM, a PROM and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave transporting data or instructions, cables or links transporting such a carrier wave, or any other medium from which a computer may read programming code and/or data. Many of these forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to a processor for execution.

[0070] The computer system 1601 can include or be in communication with an electronic display 1635. The electronic display 1635 can be part of the computer system 1601, or coupled to the computer system 1601 directly or through the network 1630. The electronic display can include a user interface (UI) for providing various features and functionalities described herein. Examples of UFs include, without limitation, a graphical user interface (GUI) and web-based user interface.

[0071] Methods and systems of the present disclosure can be implemented by way of one or more algorithms. An algorithm can be implemented by way of software upon execution by one or more computer processors.

[0072] While preferred embodiments of the present invention have been shown and described herein, it will be obvious to those skilled in the art that such embodiments are provided by way of example only. Numerous variations, changes, and substitutions will now occur to those skilled in the art without departing from the invention. It should be understood that various alternatives to the embodiments of the invention described herein may be employed in practicing the invention. It is intended that the following claims define the scope of the invention and that methods and structures within the scope of these claims and their equivalents be covered thereby.