The present invention relates to supplying applications to mobile devices.
Over recent years, mobile devices such as mobile telephones and wireless connected personal digital systems, etc. have become widely used, with increasing processing capabilities and larger amounts of data storage. It has therefore become possible for applications to be executed on these devices, either in the form of passive web pages or in the form of more active applications having dynamic content and receiving input from users.
The wireless application protocol (WAP) allows content originally generated for Internet browsers to be transmitted and displayed at wireless devices. Although the capabilities of wireless devices have increased, desktop browsers will continue to provide higher levels of functionality and display substantially more data than it is possible to display on a mobile device. Thus, it is appreciated that most applications served using the WAP approach appear less than ideal when viewed on the mobile device.
As an alternative approach, it is possible to develop bespoke applications for distribution and use on mobile devices. While this provides an attractive option for high-end applications that generate substantial revenues, for many other applications the cost of generating bespoke code cannot be justified within the commercial environment. Consequently, a problem exists in terms of providing high quality mobile applications at a relatively modest cost.
According to an aspect of the present invention, there is provided a method of supplying applications to mobile devices, comprising the steps of developing an application template as a hierarchy of nested elements and layout data for a plurality of types of element, generating an application by applying content data to one or more of the elements to form objects, supplying the objects to a requesting mobile device, wherein each object contains data, an identification of its position within the hierarchy and an identification of its element type, and supplying layout data to the mobile device for element types corresponding to supplied objects. In a preferred embodiment, the mobile devices are mobile telephones.
An environment for the supplying of applications to mobile devices is illustrated in
A workstation at offline system 101 is illustrated in
The programmed environment of the present preferred embodiment provides for the development of an application template 301 defined as a hierarchy of nested elements. At its highest level, there is provided a page container 302. Further elements may be nested within the page container and the nested container may itself contain further nested containers. This nesting process may continue until a final level of nesting is reached and a particular type of element is selected, referred to herein as an block, notifying the process to the effect that no further degrees of nesting are to occur. The final level of nesting would then contain slots (although slots may exist in other containers) in to which specific items of data, text and graphics, etc. are then subsequently inserted.
Thus, for example, page container 302 contains containers 303 and 304 and block 305. Block contains slots 306 and 307. Container 303 contains four blocks 308, 309, 310 and 311, each of which contains two slots, such as slots 312 and 313 contained in atomic block 308. Container 304 contains blocks 314 and 315 and slots 316 and 317, and block 314 contains slots 318 and 319.
Each element has a layout associated with it. Thus, for example, page container 302 has a vertical flow layout, meaning that atomic block 305, container 303 and container 304 are vertically adjacent to each other. The sizes of the block and containers are specified, either in absolute values or relative values. Container 305 has a horizontal flow layout, meaning that the slots 306 and 307 are horizontally adjacent. Each of the atomic blocks 308 to 311 has the same vertical flow layout. Layouts can also be specified as tables, such as container 304, and in other ways. Each element also has a style associated with it. Thus, although atomic blocks 308 to 311 appear to have the same layout, they may use different colors, fonts and so on. The combination of layout and style is called the element type.
The operative may produce many pages within the application, each having nested elements as shown in
This application template is shown in
Similarly, there is a content integration schema 403 generated for each of the pages in the application. Each of the containers and slots within the application are named to allow the easy development of the application. Each of schemas 403 is an XML content schema to which any XML document for use within the application must conform. For each container and slot, it identifies the element type as a page container, a nested container, a block or a slot and also sets constraints on it, for example the number of times it may occur. It also specifies elements that may be contained within it, although these do not have to occur in a conforming XML document. The schema for a page may include different information depending on whether the display is portrait or landscape or constrained in some other way.
Translation hints 404 provide a bridge between the application definition 402 and the content integration schemas 403. For example, application definition 402 may indicate that block 305 contains slot0 and slot1 in a horizontal flow. However, XML document and content integration schema 403 for that page will refer to these slots by name, for example as “bannername” and “bannerimage” respectively. Translation hints 404 will indicate that when “bannername” occurs in this block in this page it is in fact slot0, and so on. Although the entire application could be compiled as container0, container1, block0, slot9 and so on, thus removing the need for translation hints 404, this would make it very user-unfriendly and it would be difficult to produce conforming XML documents.
The online system 102 is further detailed in
Application server 503 provides requesting devices with applications, which are supplied in the form of objects 504 and layouts 505. Each object corresponds to an element within a page, and each layout corresponds to the layout of that element type as contained in application definition 402. The layout for each type is sent only once and a mobile device 105 will cache these for reuse.
Content data 506 is provided to application server 503 by, in this example, a web server 507.
Any server capable of providing the required data can be used. Data 506 is provided in the form of an XML document that conforms to the content integration schemas 403 for that application. These documents can be produced in an automated way from raw data by an XML generator. Naming the elements of the application makes it much easier for a programmer to develop this converter when given the content integration schemas 403.
Upon receipt of a request 104 from a mobile device 105, the application server retrieves the relevant profiles 502 and application template 401 from application repository 501. On a page-by-page basis, it retrieves data 506 from web server 507. It combines the data with the application template, modified by the profiles, to produce the application 106 that is sent to device 105 in the form of objects 504 and layouts 505.
Given the limited maneuvering capability of navigation buttons 603, the nesting of the elements of an application provides a much easier way to move about, so that the user does not have to go through every element on the page to reach the desired one, but can move through the higher-level containers first before drilling down to the required element in order to perform an action.
Memory 702 also contains application data 804 used by application 803, such as undisplayed content data or media data and cached layout data, and other data 805 is used by operating system 801 and application browser 802.
At step 906 the application is received and displayed on a page-by-page basis. Thus the device is first delivered the home page of the application and any further pages are delivered as the user browses to them. Alternatively, pages that the user may be expected to require can be delivered and cached. At step 907 all programs are exited before the device is switched off at step 908.
If the question asked at step 1005 is answered in the negative, a further question is asked at step 1006 as to whether the user has selected some other kind of action block. If this question is answered in the affirmative then the action is performed at step 1007 before control is returned to step 1005 to await a further selection by the use. If it is answered in the negative then the user has requested to exit the application and this occurs at step 1008. The user may at any time switch between applications running on application browser 802 without exiting them, subject to memory restrictions on the device.
If the question is answered in the negative then the object is a container or block, and its layout type is identified at step 1107. The layout data will be stored in memory since it will either have been sent with this object or sent with a previous object that has the same layout and style. Thus at step 1108 the received object is formatted according to the correct layout data and placed in the page. A question is then asked at step 1109 as to whether more data has been received and if this question is answered in the affirmative control is returned to step 1101 and it is processed. Alternatively, the page is complete and step 1003 terminates.
The contents of main memory 1203 are illustrated in
At step 1406 a question is asked as to whether the user has requested another page and if this question is answered in the affirmative control is returned to step 1403 and the relevant page document is retrieved from web server 407, if it has not been already, since some anticipation of the client's requests may be carried out. If the question is answered in the negative then at step 1407 a further question is asked as to whether the user has requested some other action and if this question is answered in the affirmative the action is performed at step 1408, before the process returns to step 1406 to wait for another request. Alternatively, the client exits the application at step 1409.
Alternatively, the question is answered in the negative and the translated document is processed together with the content integration schema to produce a document object model. Finally, at step 1506, the relevant application definition for the page is identified in order to supply layout and style information to the client.
At step 1605 a question is asked as to whether the element has another child and if this question is answered in the affirmative control is returned to step 1601. Alternatively, it is answered in the negative and step 1503 is concluded.
The resulting document template has been combined with data from web server 507, including the day's main news story, and delivered to the device.
Number | Date | Country | Kind |
---|---|---|---|
0711186.7 | Jun 2007 | GB | national |
This application is a continuation of, and claims a benefit of priority under 35 U.S.C. 120 of the filing date of U.S. patent application Ser. No. 14/017,110, filed Sep. 3, 2013, issued as U.S. Pat. No. 10,250,432 entitled “SUPPLYING APPLICATIONS TO MOBILE DEVICES,” which is a continuation of, and claims a benefit of priority under 35 U.S.C. 120 of the filing date of U.S. patent application Ser. No. 12/135,432, filed Jun. 9, 2008, entitled “SUPPLYING APPLICATIONS TO MOBILE DEVICES,” which claims priority from British Patent Application No. GB0711186.7, filed Jun. 9, 2007, now British Patent No. GB2449944, issued Jul. 12, 2012. The entire contents of applications listed in this paragraph are hereby expressly incorporated by reference for all purposes.
Number | Name | Date | Kind |
---|---|---|---|
6023714 | Hill et al. | Feb 2000 | A |
7013329 | Paul | Mar 2006 | B1 |
7051080 | Paul | May 2006 | B1 |
8671147 | Jowett et al. | Mar 2014 | B2 |
9195523 | Mukundan | Nov 2015 | B2 |
20010032269 | Wilson | Oct 2001 | A1 |
20020049702 | Aizikowitz | Apr 2002 | A1 |
20030014442 | Shiigi | Jan 2003 | A1 |
20030121004 | Christensen et al. | Jun 2003 | A1 |
20030184585 | Lin et al. | Oct 2003 | A1 |
20040024899 | Sturrock et al. | Feb 2004 | A1 |
20040117749 | Lalonde | Jun 2004 | A1 |
20040123238 | Hefetz | Jun 2004 | A1 |
20040267813 | Rivers-moore et al. | Dec 2004 | A1 |
20060242563 | Liu et al. | Oct 2006 | A1 |
20070106935 | Su et al. | May 2007 | A1 |
20070174424 | Chen | Jul 2007 | A1 |
20070220419 | Stibel et al. | Sep 2007 | A1 |
20080098291 | Bradley et al. | Apr 2008 | A1 |
20080120538 | Kurz et al. | May 2008 | A1 |
20080244422 | Hilgers et al. | Oct 2008 | A1 |
20080288515 | Kim et al. | Nov 2008 | A1 |
20080307047 | Jowett | Dec 2008 | A1 |
20080320396 | Mizrachi et al. | Dec 2008 | A1 |
20090044103 | Chalecki et al. | Feb 2009 | A1 |
20090157657 | Kim et al. | Jun 2009 | A1 |
20090235187 | Kim | Sep 2009 | A1 |
20100138809 | Shenfield et al. | Jun 2010 | A1 |
20100174974 | Brisebois et al. | Jul 2010 | A1 |
20140032653 | Jowett et al. | Jan 2014 | A1 |
Number | Date | Country |
---|---|---|
0415843 | Mar 1991 | EP |
0454364 | Oct 1991 | EP |
1235392 | Aug 2002 | EP |
1363427 | Nov 2003 | EP |
1453338 | Sep 2004 | EP |
1569095 | Aug 2005 | EP |
2000907 | Dec 2008 | EP |
2420887 | Jun 2006 | GB |
2449944 | Dec 2008 | GB |
2449944 | Aug 2012 | GB |
03-131143 | Jun 1991 | JP |
WO0122645 | Mar 2001 | WO |
WO03019838 | Mar 2003 | WO |
WO03041345 | May 2003 | WO |
WO03067427 | Aug 2003 | WO |
WO04015955 | Feb 2004 | WO |
Entry |
---|
Office Action issued for U.S. Appl. No. 12/135,432, dated Dec. 23, 2009, 10 pages. |
Office Action issued for U.S. Appl. No. 12/135,432, dated Jun. 25, 2010, 13 pages. |
Final Office Action issued for U.S. Appl. No. 12/135,432, dated May 31, 2012, 12 pages. |
Examination Report issued for British Patent Application No. GB0711186.7, dated Jul. 18, 2011, 4 pages. |
Examination Report issued for British Patent Application No. GB0711186.7, dated Jan. 13, 2012, 5 pages. |
Examination Report issued for British Patent Application No. GB0711186.7, dated May 28, 2012, 2 pages. |
Extended European Search Report issued for European Patent Application No. 08 251 927.3, dated Jul. 7, 2009, 7 pages. |
Examination Report issued for European Patent Application No. 08 251 927.3, dated Feb. 24, 2010, 1 page. |
Examination Report issued for European Patent Application No. 08 251 927.3, dated Feb. 9, 2012, 4 pages. |
Notification of Grant issued for British Patent Application No. GB0711186.7, dated Jul. 10, 2012, 2 pages. |
Office Action issued for U.S. Appl. No. 12/135,432, filed Jan. 14, 2013, 10 pages. |
Notice of Allowance issued for U.S. Appl. No. 12/135,432, dated May 22, 2013, 13 pages. |
Examination Report issued for European Patent Application No. 08 251 927.3, dated Oct. 14, 2013, 7 pages. |
Examination Report issued for European Patent Application No. 08251927.3, dated Apr. 1, 2015, 8 pages. |
Summons to Attend Oral Proceedings Pursuant to Rule 115(1) EPC issued for European Patent Application No. 08251927.3, dated Nov. 17, 2016, 8 pages. |
Office Action for U.S. Appl. No. 14/017,110, dated May 31, 2017, 10 pages. |
Office Action for U.S. Appl. No. 14/017,110, dated Dec. 14, 2017, 13 pages. |
Office Action for U.S. Appl. No. 14/017,110, dated Jun. 5, 2018, 7 pages. |
Notice of Allowance for U.S. Appl. No. 14/017,110, dated Nov. 7, 2018, 6 pages. |
Number | Date | Country | |
---|---|---|---|
20190173732 A1 | Jun 2019 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 14017110 | Sep 2013 | US |
Child | 16268361 | US | |
Parent | 12135432 | Jun 2008 | US |
Child | 14017110 | US |