METHOD AND SYSTEM OF APPLICATION DEVELOPMENT FOR MULTIPLE DEVICE CLIENT PLATFORMS
20170295217 · 2017-10-12
Inventors
Cpc classification
H04L67/02
ELECTRICITY
H04L67/10
ELECTRICITY
G06F16/958
PHYSICS
G06F16/972
PHYSICS
International classification
Abstract
A client server environment having a server with a Web service in communication with a local client application which is tightly integrated with its local operating environment residing on a platform remote from the server; the local client application tightly integrated by way of integrating data structures requested and received from the server; the integrating data structures defining the attributes and parameters needed by the local client application to define an interface between the local client application and the Web service. The integrating data structures enable tight/close integration between the hosted application and the devices and the operating system features of the platform upon which the local client application resides. Also disclosed is an abstracted environment which can run on any one of the supported platform's devices as a native application, all based on the passing of the same page commands and receipt of corresponding client data objects between the server and the client applications; the data objects being identical irrespective of the platform. In a preferred form, the device application interface for each local platform is tightly integrated with the client application whereby the abstracted environment appears to run as a native application on the platform.
Claims
1. In a client server environment having a server with a Web service in communication with a local client, a method of tightly integrating the local client to its local operating environment residing on a platform remote from the server; said method comprising the steps of a. installing the local client into the local operating environment; b. requesting and receiving integrating data structures from the server; and c. downloading the integrating data structures into the local operating environment whereby the integrating data structures define the attributes and parameters needed by the local client to define an interface between the local client and the Web service; wherein the integrating data structures themselves are communicated between the server and the local client utilising a device independent protocol where the device independent protocol comprises a command set which is the same irrespective of the local operating environment or the platform.
2. The method of claim 1 wherein the platform is a mobile digital device or local computer with at least some of the integrating data structures are included with the local client at the time of installation and enables the Web service to have programmable access to: a. at least some features of the local device including: (i) data input/output; (ii) data acquisition devices.
3. The method of claim 1 further including the step of installing the integrating data structures into the local operating environment, whereby the integrating data structures define the attributes and parameters needed by the local client to define an interface between the local client and the local operating environment, which a. permits the local client to access features of at least one local device as if it were a native application of the local operating environment residing on the platform; b. can include script libraries which provide a programmable interface between the local device features and the local client, and whereby the Web service has programmable access to the local device features and include a local command whose button events will call scripts to perform local processing of page data or the local devices that can be executed on all supported devices.
4. The method of claim 1 wherein the integrating data structures are implemented by the step of calling a method on the Web service and passing to it a pre-determined command object containing the command name and the parameters needed to execute the command and the Web service returns pre-determined integrating data structures relevant to the pre-determined command object, that defines: a. the page; b. the page groups (as a list of groups); c. the field object containing the parameters needed to define the field type, any validation rules needed for that field, and parameter settings needed to enable or access local devices on the local client; and d. commands that can be executed by the local client, so that, when clicked, the command button sends the relevant command object to the Web service.
5. The method of claim 4 wherein the Web service has full control of the page definitions and an unlimited number of different page definitions can be passed to the local client from the Web service; by using device independent data structures to send and receive data between the web service application and application client where the device independent data structures define the attributes and parameters needed to: a. define the user interface; b. access the local devices feature e.g. access to a camera connected to the platform; c. the commands sent from the application client to the web service application.
6. The method of claim 1 wherein the web service application contains a number of server objects, to process the requests from the application client and generate the device independent data structures: a. needed to define: (i) the application data to be displayed on the mobile device; (ii) any requests access to local computing features; b. in order to: (i) generate web service application pages using the device's native user interface; (ii) facilitate access to the local platform features and send command requests to the web service application.
7. The method of claim 1 wherein the device client contains a device data structure: a. to integrate the device client with local computing platform features, thereby enabling the web service application to either manually or under program control, to access the local computing platform features; b. support the clustering of common fields to provide user navigation between field groups when using platforms comprising computing devices with small form factors while supporting multiple field data types and data validation; c. can be extended to support the storage of application data and scripting, e.g. support JavaScript access to application functions, to: (i) facilitate integration with common or pre-loaded data; (ii) extend the application client's functionality that can be executed on client; (iii) to facilitate offline operation.
8. The method of claim 1 wherein the page commands contain sufficient information to send a command to the web service application, and to identify the application objects to be accessed, the action the web service application is to perform and the parameters needed to complete the action so: a. when a user of the web service application clicks a device client command on the user interface, the command request is sent to the web service application from the device client, to be processed by the web service application. b. on receipt of the command request from the device client, the web service processes the command and generates the appropriate device independent data structures, which are returned to the mobile device client.
9. The method of claim 1 including the step of replacing the local client with a test harness that can execute test scripts, thereby to automate application testing.
10. The method of claim 1 wherein the platforms on which device clients can run include Microsoft Windows, Mac OS X operating systems, or a Web interface to the hosted application.
11. A digital device containing a client server environment having a server with a Web service in communication with a local client which is tightly integrated with its local operating environment residing on a platform remote from the server; the local client tightly integrated by way of integrating data structures requested and received from the server; the integrating data structures defining the attributes and parameters needed by the local client to define an interface between the local client and the Web service.
12. The digital device of claim 11 wherein the integrating data structures themselves are communicated between the server and the local client utilising a device independent protocol and the device independent protocol comprises a command set which is the same irrespective of the local operating environment or the platform.
13. The digital device of claim 11 wherein the platform is a mobile digital device or local computer containing a local application containing: a. at least some of the integrating data structures are included with the local client at the time of installation; b. at least some of the integrating data structures enable the Web service to have programmable access to at least some features of the local device; c. features of the local device include input/output devices; d. features of the local device include data acquisition devices.
14. The digital device of claim 11 further including the installation of the integrating data structures into the local operating environment, whereby the integrating data structures: a. define the attributes and parameters needed by the local client to define an interface between the local client and the local operating environment; b. include elements of a local device application interface, which permits the local client to access features of at least one local device as though the local client were a native application of the local operating environment residing on the platform; c. can include script libraries which provide a programmable interface between the local device features and the local client, and whereby the Web service has programmable access to the local device features, e.g. JavaScript include: (i) a local command whose button events will call scripts to perform local processing of page data or the local devices; (ii) can be executed on all supported devices.
15. The digital device of claim 11 wherein the integrating data structures are implemented by: a. the step of calling a method on the Web service and passing to it a pre-determined command object containing the command name and the parameters needed to execute the command; b. the Web service returns pre-determined integrating data structures relevant to the pre-determined command object containing the pre-determined integrating data structures: (i) define the page; (ii) define the page groups (as a list of groups); (iii) define the field object containing the parameters needed to define the field type, any validation rules needed for that field, and parameter settings needed to enable or access local devices on the local client; and (iv) define commands that can be executed by the local client, so that, when clicked, the command button sends the relevant command object to the Web service. c. thereby providing the Web service with full control of the page definitions and enables the web service to define an unlimited number of different page definitions can be passed to the local client from the Web service.
16. The digital device of claim 11 further including the step of utilising device independent data structures to send and receive data between the Web service application and application client where the device independent data structures define: a. the attributes and parameters needed to define the user interface and access the local devices feature. b. the attributes and parameters of the commands sent from the application client to the web service application. c. access to device features such as a camera connected to the platform.
17. The digital device of claim 11 wherein the web service application contains a number of server objects, to process the requests from the application client and generate the device independent data structures needed to define the web service application data to be displayed on the mobile device and any requests access to local computing features where: a. the device client processes the device independent data structures, in order to generate web service application pages using the device's native user interface. b. the device client processes the device independent data structures, in order to facilitate access to the local platform features and send command requests to the web service application. c. the device client contains a device independent interface to integrate the device client with local computing platform features, thereby enabling the web service application either manually or under program control to access the local computing platform features.
18. The digital device of claim 11 wherein the device independent data structures: a. support the clustering of common fields to provide user navigation between field groups when using platforms comprising computing devices with small form factors while supporting multiple field data types and data validation; b. can be extended to support the storage of application data and scripting, e.g. JavaScript, thereby to facilitate integration with common or pre-loaded data and extend the application client's functionality: (i) to support offline operation. (ii) to enhance the application functionality that can be executed on the client.
19. The digital device of claim 11 wherein the page commands contain sufficient information to send a command to the web service application: a. and-to identify the application objects to be accessed, the action the web service application is to perform and the parameters needed to complete the action; b. so when a user of the web service application clicks a device client command on the user interface, the command request is sent to the web service application from the device client, to be processed by the web service application; c. on receipt of the command request from the device client, processes the command and generates the appropriate device independent data structures, which are returned to the mobile device client.
20. The digital device of claim 11 including the step of replacing the local client with a test harness that can execute test scripts, thereby to automate application testing.
21. The digital device of claim 11 wherein the platforms on which device clients can run include Microsoft Windows, Mac OS X operating systems, or a Web interface to the hosted application.
22. A server with a Web service; said server containing a device application interface containing a generalised data structure containing code adapted to interface multiple predetermined digital devices to an application executing on a selected one of said digital devices; said device application interface including multiple instances of code; each instance adapted to provide a tightly bound interface between said application and a said selected digital device on which a local client executes; the local client tightly integrated by way of integrating data structures requested and received from the server; the integrating data structures defining the attributes and parameters needed by the local client to define an interface between the local client and the Web service.
23. The server of claim 22 wherein said tightly bound interface is to an operating system of said selected digital device thereby to: a. provide direct access to all input-output functions of said selected digital device and provides a user environment which appears; b. be a native application to a user; c. at least one instance of an application service running on a server; said application service in remote communication with an application client running on a selected digital device.
Description
BRIEF DESCRIPTION OF DRAWINGS
[0136]
[0137]
[0138]
[0139]
[0140]
[0141]
[0142]
[0143]
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
[0144] A generic example embodiment has been included in this specification, as embodiments of this invention may be implemented across a wide variety of technology platforms and frameworks. The implementation for different specific platforms or frameworks may vary substantially while having the same core structure, functions and processes as outlined below.
[0145]
[0146] The first example computer 22 may be a smart phone such as an iPhone (Mobile Device). The next computer 27 may be an iPad (Mobile Device). And the third example platform 32 may be a laptop or desktop computer (Client Computer). Each of the computers 22, 27, 32, are running different operating systems 23, 30, 36. The computers 22, 27, 32 a native Application Client 24, 28, 33 application is installed on each platform.
[0147] On request each of the Application Client 24, 28, 33, download the same integrating data structures in the form of Device Application Data 25, 29, 34 from the Application Service 20. Once the Device Application Data 25, 29, 34 is downloaded and deserialised it can be executed resulting in a connection between the Device Application to the computer's operating system 23, 30, 36 and components 26, 31 and 37 such as the camera's audio functions or network capabilities.
[0148] The Device Application Data object 25, 29, 34, 60 and Page Command object integrates the hosted Application functions running on the Application Service 20 with mobile device 22, 27, 32, 40 via the Application client.
[0149] More specifically, with reference to
[0150]
[0151]
[0152] With reference to
[0153] Because of the close integration between the server and the clients (on the various platforms), the programmer can effectively control the entire client's behaviour/page. In effect, the exemplary arrangement of
[0154] In particular, the tight integration implemented between the device application interface for each local platform with the client application means that the abstracted environment 41 appears to run as a native application.
[0155] There is thus provided a powerful, flexible interface which permits the downloading and running of multiple applications across multiple supported platforms. Because of the identical command structures used across the platforms, the testing of new applications is rendered relatively straightforward, and does not inherently require testing on every supported platform.
[0156]
[0157] The Device Application Interface 42 connects the Device Application Data 44 with the computer's operating system 43 and local device components 48. The Device Application Interface 42 can operate as a protocol converter to provide a standardised application interface to allow the downloaded Device Application Data 44 to communicate with and control local device components 48 and also provides the access to the native operating system 43 features and access to the native user interface objects.
[0158] In this example the Device Application Data 44 is downloaded to all of the devices running the Application Client 41, 24, 28, 33 from the Application Service 20. Once the Device Application Data 44 has been downloaded, it is able to interact with the local computer 43 via the Device Application Interface 42 to provide a user environment that appears to be a native application to the user.
[0159] The Application Client 41 lets the Device Application Data 44, store local data 46 and shared data 47 downloaded from the Device Application Interface Application Server 20. This provides the Device Application Data 44 with the capability to operate while not connected to the Internet 21 and synchronise shared data with the Application Service 20 when Internet 21 connectivity is restored.
[0160] Once the Application Client 41 has been developed to run on each of the devices the publisher intends to use, additional features and functionality can be added to the downloadable Device Application Data 44 without having to update the Application Client 41. The Application Client 41 only needs to be updated to take advantage of new operating system features or devices as they are added.
[0161] In contrast,
[0162] In this example the html data objects 53 is downloaded to the local computer 50 from the Web Server 10. Once the html data objects have been downloaded, it is able to interact with web browser 51, to display the contents of the html objects using a html display layout.
[0163] Due to the sandbox isolation of the web browser 51, it is not possible for the HTML objects to directly access the local computer's operating system or devices. This limits the ability of the web application to access and control the local computer's operating system functions.
[0164] A number of software vendors provide web browser 51 add-ons, to extend the functionality of the browser, however add-ons potentially provide an opportunity for hackers to by-pass the web browser sandbox security and directly access the operating system and its local devices.
Example Embodiment
[0165] To implement the sample embodiment above it is necessary to implement an Application Service 10, 20, Application Client 24, 28, 33, 41 running on the targeted Mobile Device 22, 27, 32, 40 and the Device Application Data 25, 29, 34, 44 object that acts as the interface and object transporting data to and from Application Service.
[0166] This example embodiment excludes a number of platform framework dependent functions, such as: user authentication, session management, user role access, object caching and load management, to simplify the description of the functions and processes of the preferred embodiments. It is assumed that a commercial implementation of embodiments of the invention would include the relevant platform or framework functions to control user access and optimise server and web service performance.
[0167] The following outlines the structure methods of the Application Service, Application Client and Device Application Data object.
Device Application Data Structure
[0168]
[0169] (a) session parameters 61 contain the parameters needed for the Application Client to maintain its session with the Application Service. These parameters are returned to the Application Service when the Application Client sends a web service request;
[0170] (b) client page 62 object defines the page structure to be displayed on the Application Client 24, 28, 33, 41. Alternative embodiments could utilise lists of Client pages 62 objects that would allow the Application Client 24, 28, 33, 41, to display multiple different pages without having to interact with the Application Service 10, 20. A client Page 62 object would typically contain: [0171] (i) A Page Command 63 objects containing the commands that can be executed on the page; [0172] (ii) One or more Page Group 64, 67 objects containing one or more Page Command Objects 65, 68 and none or more Page Field objects 63, 69.
[0173] (c) Data Object 70, containing lists of Data Objects 71 that can be referenced by a Client Page 62.
[0174] (d) A Script Library 72 can be a library of scripts that can be executed on all supported devices. E.g. Libraries of Java Script Functions.
[0175] The Page Commands 63, contains Page Command objects. The Page Command object contains the parameters necessary to send command request from the Application Client 41 to the Application Service 10, 20. These could include:
[0176] (a) Type of command: local, server or a command to open an HTTP link.
[0177] (b) A command identifier
[0178] (c) The command name or title.
[0179] (d) The command parameters including references to identify the Hosted Application object to be called, object's method to be called, and a list of method parameters to be passed to the method.
[0180] The Page Group 64 and 67 contains a collection of Page Field objects 65, 68 objects and a collection, a collection of Page Command objects 66, 69.
[0181] The Page Field objects 65, 68 contain the necessary components to enable an Application Client 41, to display field data of various types. These components could include:
[0182] (a) a field identifier;
[0183] (b) field title;
[0184] (c) field value, e.g. text, numeric, data, byte;
[0185] (d) field data type; and/or
[0186] (e) field validation data.
[0187] The invention's architecture has been designed to provide the application designer with flexibility to customise Device Application Data 60, the associated Application Service 10, 20 and the Application Client 41 features to meet their specific application's requirements.
Application Service Operation
[0188] Application Service 20 provides:
[0189] (a) connects with the Application Client 24, 28, 33, 41;
[0190] (b) manages the Application Client's session with the Application Service, including the authentication with the application service;
[0191] (c) interfaces to the Hosted Application, using its Server Object, classes and methods.
[0192] When the Application Service 20 receives a login request, the user's credentials are passed to the authentication source or provider.
[0193] (a) If the credentials are authenticated, the Application Service: [0194] (i) creates a user session; [0195] (ii) accesses the Hosted Application do define the users access; [0196] (iii) returns the default page. Containing the user's Session Parameters.
[0197] (b) If the authentication fails the user is requested to re-enter their credentials.
[0198] Application Service 20 consists of a number of Server Objects that are used to interface the Application Service 20 with the Hosted Application. These classes provide a standardised set of functions or methods to generate and process the data that is passed between Application Service 20 and Application Client 24, 28, 33, 41, by calling the relevant Hosted Application classes and methods.
[0199] A Server Object contains the application code needed to execute the Hosted Application's classes and methods. The Server Object receives one or more Page Commands object as parameters and returns the Device Application Data defining the page to be displayed on the Application Client.
[0200] The called method, interfaces with the relevant Hosted Application classes and methods to execute the Page Command parameters. The results from the calls to the Hosted Application methods are processed to generate a Device Application Data object, which is returned to the web method calling the Server Object.
[0201] The Application Service receives the returned Device Application Data object and returns it to the Application Client.
Application Client Operation
[0202] The Application Client 24, 28, 33, 41, contains:
[0203] (a) The Web Client for the Application Service 10, 20;
[0204] (b) Displays the content contained within the Device Application Data object as native user interface object on the Client Computer or Mobile Device 22, 27, 32, 40.
[0205] (c) The Device Application Interface 42 to interface the client with the Client Computer 40 operating system 43 functions and local devices 48, e.g. Camera, GPS location, microphone, etc.
[0206] When the Application Client 41 is launched it checks to determine the state of the user session. If the user is currently not authentication, it displays a login dialog box requesting the user to enter their credentials.
[0207] The entered credentials are sent to the Application Service 10, 20, for authentication.
[0208] (a) If the user is authenticated a Device Application Data 60 object containing the default or opening page.
[0209] (b) If the authentication fails the Device Application Data 60, Session parameters 61 will indicate authentication failed and the user will be requested to re-enter their credentials.
[0210] The Application Client 41 is device orientation aware, application and will refresh user interface display, when the Client Computer 40 display orientation changes.
[0211] The number of groups displayed at any time will change depending upon the type of computing device the Application Client 41 is running on and the orientation of the Mobile Device 40 with the objective of displaying as much data as possible while not compromising the usability of the Served Application or is native display styles.
[0212] The Application Client 41 stores lists of data objects 71 in local memory to enable the client to access this information directly or via script libraries 72.
[0213] The Application Client 41 page generation process consists of opening the client page object 62 in the Device Application Data object 60:
[0214] (c) To display the page commands 63 across the top of the page.
[0215] (d) To iterate through the page groups 64, 67 to be displayed on the page and: [0216] (i) Generate the relevant fields controls to display the groups fields 65. [0217] (ii) Generate the relevant page command controls to display the group specific commands 66.
[0218] (e) Where possible the Application Client 41 will display multiple Page Group objects 64, 67 on the one page.
[0219] If a page field 65, 68 requests access to a local Client Computer's 40, operating system function 43 or local device 48, the field control will:
[0220] (a) Check if the Client Computer 40 supports the requested field type, the Application Client will initiate a connection to the operating system function 43 or device 48 using the Device Application Interface 42. [0221] (i) Displaying relevant buttons to access the local operating system function 43 or device 48. Clicking one of these buttons will execute the process needed to interact with the function or device; [0222] (ii) For Example: a field accessing a device camera will provide a button for taking a picture. Clicking that button will open a dialog box to display the current view in the camera's lenses, with a button to take the picture and display the capture picture on the Application Client's page.
[0223] (b) If the Client Computer 40 does not support a field type, then the field's current contents will be displayed to the user as a read only data object and all enabling buttons are hidden or disabled.
[0224] When the Application Client 41 client page 62, contains more page groups 64, 67 than can be displayed on the Client Computer 40, the Application Client 41, will display a group navigation list, to enable the user to navigate between the page groups 64 67.
[0225] If the user has edit access to the Hosted Application's data to a field, the field will be edit enabled. When the user updates the field's content, the new field value will be validated locally using the passed field validation rules and the value is saved locally.
[0226] When the user clicks a Page Command button the Application Client 41 will:
[0227] (c) Attach to the Application Service 10, 20 and pass the relevant Device Application Data 60 page command object to the Application Service;
[0228] (d) The Application Service 20 will respond with a Device Application Data object 60.
[0229] When the user clicks a page command to execute a save object method:
[0230] (e) all of the field data on the page will be appended to the Page Command object as a list of parameters;
[0231] (f) the Page Command object is passed to the Application Service;
[0232] (g) The Application Service then processes the Page Command to update the application data.
Client-Server Interaction
[0233]
[0234] (a) LF is a Client Computer's 40, operating system 43 or local device 48;
[0235] (b) AC is an Application Client 41;
[0236] (c) AS is an Application Service 10, 20;
[0237] (d) UAS is the user authentication service;
[0238] (e) SO is a Server Object interfacing with the Hosted Application.
[0239] When the Application Client 41 is launched, it sends an authentication request 80 to Application Service 20.
[0240] The Application Service 20 processes the request and passes the credentials 81 to the user authentication service (AS) for authentication.
[0241] (a) If the user authentication request is successful a notification 83 is sent to Application Service (AS) and a page generation request 84 is sent to Server Object (SO) to generate the default page.
[0242] (b) If the authentication request fails a request 82 to re-authenticate to the Application Client (AC).
[0243] The Server Object (SO) returns a Device Application Data object 60, to the Application Service (AS) and the Application Service (DAS) sends the Application Service (DAS) 86, to the Application Client (AC).
[0244] The user selects the application data to be retrieved the Application Client (AC) then sends the Page Command object 87, to the Application Service (AS). The Application Service (AS) processes the Page Command and then sends command 88 to the relevant Server Object (SO) to access the Hosted Application and generate the Device Application Data object 44, 60.
[0245] The Server Object (SO) returns a Device Application Data object 89, to the Application Service (AS) and the Application Service (AS) sends the Application Service (AS) 90, to the Application Client (AC).
[0246] The Device Application Data object 44, 60 is displayed on the Application Client 41. The user has data update role, allowing them to update data object values. One of the displayed fields is a camera field, displaying the current image retrieved from the Hosted Application.
[0247] The user takes a new picture, by:
[0248] (a) clicking the update image button, a message is send 91 to the Local Feature (LF) to open the camera dialog box via the Device Application Interface 42;
[0249] (b) The dialog box displays the image the camera is seeing;
[0250] (c) The user takes a picture;
[0251] (d) The picture image is passed back 92 to the Application Client 41 via the Device Application Interface 42.
[0252] To save the new image the user clicks the ‘Save’ button, the Application Client 41, appends the page field values (including the new image) into the Page Command object and passes 93 the Page Command object to Application Service (AS) method.
[0253] The Application Service (AS) processes the Page Command and passes 94 it to the relevant Server Object (SO) to be processed. The Server Object (SO) processes the Page Command then calls the relevant Hosted Application method to update the returned data.
[0254] The Served Object (SO) returns a confirmation 95 of that the data has been updated to the Application Service (AS). The Application Service (DAS) generates the relevant return Device Application Data page object and passes it back 96 to the Application Client (AC).
Application Service Operation .Net Embodiment
[0255] The following embodiment outlines an example of implementing the Application Service 10, 20, running in a .net environment, displaying a single page at a time. In this embodiment:
[0256] (a) the Hosted Application consists of one or more assembles containing the applications executable;
[0257] (b) the Hosted Application has access to storages services such as SQL server.
[0258] (c) Active directory Services (ADS) provides the user authentication source/service.
[0259] (d) The Application Service 10, 20 is provided by IIS (Internet Information Service) running Windows server.
[0260] (e) The Web Service is running on the IIS.
[0261] In this embodiment the Device Application Data object consists of a .Net class containing:
[0262] (a) An Identifier (Global Unique Identifier)
[0263] (b) Title
[0264] (c) List of Client Pages 62 containing where each client page class contains: [0265] (i) Identifier [0266] (ii) Title [0267] (iii) List of page commands classes 62 where each Page Command class contains: [0268] (1) Identifier [0269] (2) Title [0270] (3) Enumerated value of command types [0271] (4) Enumerated value of hosted application classes [0272] (5) Enumerated value of server object methods [0273] (6) List of parameters as a collection of key value pairs. [0274] (iv) List of page groups 64, 67 where each page group class contains: [0275] (7) Identifier [0276] (8) Title [0277] (v) List of page fields 65, 68 where each page field class contains: [0278] (1) Identifier [0279] (2) Title [0280] (3) Enumerated value of field data types. [0281] (4) Value [0282] (vi) List of Group Page Commands 66, 69 consists of a list of Page Command class objects.
[0283] Application Service 10, 20 provides:
[0284] (a) connect to the Application Client 24, 28, 33, 41;
[0285] (b) manages the Application Client's session with the Application Service, including the authentication with the application service;
[0286] (c) interfaces to the Hosted Application, using its Server Object, classes and methods.
[0287] When the Application Service 20 receives a login request, the user's credentials are passed to the Active Directory for authentication.
[0288] (a) If the credentials are authenticated, the Application Service: [0289] (i) creates a user an IIS user session; [0290] (ii) the user credentials are passed to the Hosted Application to define the users access to the Hosted Application's features and functions; and [0291] (iii) generates and returns the default page, containing the user's Session Parameters.
[0292] (b) If the authentication fails an authentication request is sent to the Application Client.
[0293] Application Service 10, 20 consists of a number of Server Objects that are used to interface the Application Service 20 with the Hosted Application. These classes provide a standardised set of functions or methods to generate and process the data that is passed between Application Service 20 and Application Client 24, 28, 33, 41, by calling the relevant Hosted Application classes and methods.
[0294] Each Application Service object has a GetPageObject method, which has Page Command class as is parameter and returns a Device Application Data class object.
[0295] A jason serialisation is used to pass data between the Application Server and the Application Client.
[0296] A Server Object class contains the application code needed to execute the Hosted Application's classes and methods. The Server Object receives one or more Page Commands object as parameters and returns the Device Application Data defining the page to be displayed on the Application Client.
[0297] Each Server Class contains four public method:
[0298] (a) getListObject method which has Page Command class as a parameter and returns a Device Application Data class object. [0299] (i) Using the Page Command's parameter list query the Hosted Application and retrieve a list of data objects; [0300] (ii) Iteration through the class objects to generate Device Application Object where the Page Commands, contain the parameters needed to retrieve one of the collection's objects; [0301] (iii) The Device Application Object the returned to the calling method.
[0302] (b) getObject method which has Page Command class as a parameter and returns a Device Application Data class object: [0303] (i) Using the Page Command's parameter list query the Hosted Application and retrieve the selected data object; [0304] (ii) Read the class object to generate Device Application Object where the field values of the data object to be displayed on the Application Client; [0305] (iii) The Device Application Object the returned to the calling method.
[0306] (c) createObject method which has Page Command class as a parameter and returns a Device Application Data class object: [0307] (i) Using the Page Command's parameter list query the Hosted Application to identify and inialise the appropriate Hosted Application object; [0308] (ii) Read the class object to generate Device Application Object where the field values of the new data object to be displayed on the Application Client; [0309] (iii) The Device Application Object the returned to the calling method.
[0310] (d) updateObject method which has Page Command class as a parameter and returns a Device Application Data class object to display the exit page after the update. This method: [0311] (i) extracts the field values from the Page Command's parameter list; [0312] (ii) updates the Hosted Application's class object and passes it to the update method; [0313] (iii) on successful completion of the update the method then generates the exit page and passes is back to the calling method.
[0314] The Application Service receives the returned Device Application Data object from the Server class object serialises it into a Jason serialisation and returns it to the Application Client.
Application Scenarios
[0315] The invention can be used for a variety of application scenarios including:
[0316] (a) Collection of text, image, video or barcode data;
[0317] (b) Recording sounds or a conversation then saving the content in the Application Service;
[0318] (c) Location of the user collecting the data;
[0319] (d) If an iPhone, initiating a phone call;
[0320] (e) Initiating an email from the user with prefilled email content;
[0321] (f) Reading a QR barcode and then processing it content prior to passing relevant data to the Application Service;
[0322] (g) Using Bluetooth connecting an external device to Application Service via the Application Client. E.g. Accessing a vending machine, or RFID reader.
Alternative Embodiment
[0323] The example embodiment discloses a native Application Client that is used for each application where the downloadable Device Application Data containing core executable code or instruction set, the data and the user interface, are all common across multiple platforms. Each downloadable Application Client also contains an Application Programming Interface customized for that platform and operating system to interface the Device Application Interface to the native environment for each platform.
[0324] An alternative embodiment could create an Application Client with a pre built and built in customized Device Application Interface that connects the cross platform core code to the devices operating system and components. For example, to process a photographic image to read a bar code.
[0325] Another alternative embodiment could use an existing generic application such as a web browser but to have it adapted to extend its capability to talk to the native environment with the additional functionality that is not commonly available in web browsers today. This would be the equivalent of duplicating the effect of the example embodiment of the invention.
[0326] The example embodiment uses an iPhone, iPad and a laptop as three examples of different platforms using the same multi-platform code bundle. An alternative embodiment could include the principles of the example embodiment.
INDUSTRIAL APPLICABILITY
[0327] Embodiments of the present invention can be applied in a client server environment on a multiplicity of computing platforms, including those based on Microsoft Windows systems and Mac OS systems.