Abstract:
A mobile internet page computer system for generating mobile internet pages for viewing by mobile communication devices preferably configured for each device, the system comprising a memory, a processor, an input for receiving a request for one or more mobile internet pages from mobile telephones, a plurality of data chunks stored in the memory each data chunk corresponding to a specific purpose/function, page generation means for compiling a mobile internet page from data chunks stored in the memory, chunk selection means for selecting chunks in the memory that correspond to a page request, for enabling the page generation means to compile a page corresponding to the request, chunk adaptation means to adapt data chunks, a database stored in the memory comprising data relating to a plurality of mobile communication devices of different configurations and information on adaptations to be made to data chunks corresponding to the different configurations, wherein the computer system is configured so that on receipt of a page request from an identified type of mobile communication device at the input, the chunk selection means determines which data chunks should be used to compile a page to be viewed by the requester, specific information is retrieved from the database corresponding to the identified model, and preferably the determined chunks, the chunk adaptation means uses the specific information to adapt each of the determined chunks in accordance with the specific information, and the page generation means compiles a page from the adapted data chunks for sending to the identified mobile telephone, and preferably transmits the page so that it is operably accessed by the mobile device that sent the page request.

Description:
REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims priority from European Patent Application Serial No. 07001002.0, filed 18 Jan. 2007, which is incorporated by reference herein in its entirety. 
       BACKGROUND 
       [0002]    This invention relates to a mobile web page computer systems for generating mobile internet pages for viewing by mobile telephones. In particular, but not exclusively, the invention relates to a central management of a mobile internet site that dynamically adapts pages to suit the strengths, weaknesses and capabilities of different mobile devices that browse it. 
         [0003]    Presently most modern mobile telephones and devices (including pocket PCs with mobile connections) are equipped with some form of mobile internet browser. Some of these browsers are capable of viewing sites designed for viewing by personal PCs via the conventional internet whilst others are designed for only viewing pages purpose build for viewing by mobile telephone such as by WAP or I-mode. However, even with devices that can browse conventional sites it is common to construct specific mobile internet pages that are more specifically designed for easy navigation using a mobile telephone. In particular they may be designed to attempt to fit most of the page within the relatively small screen provided by most mobile telephones and better suited to navigation constraints. 
         [0004]    Mobile devices with mobile internet browsers have significant variations in screen size, capabilities and limitations. Accordingly one specifically created mobile internet page may be viewable by one particular mobile device but on another device may not view at all or may be of unsuitable proportions such that it is difficult to navigate effectively. For example if the website is designed for a mobile phone with a large screen, a device with a smaller screen will not be able to fit all the mobile web-page on its screen. More significantly still a webpage could be designed with items such as graphical links which less advanced mobile devices may not be able to process, resulting in failure of the page. 
         [0005]    Accordingly in order to allow multiple mobile devices to use the web-site effectively, multiple versions of the entire internet site are frequently created to cover all normal mobile devices on which users may be browsing them. 
         [0006]    Different mobile devices require pages to be sent to them using different mark up languages and different devices deviate from set standards in some form or other. Some handsets are even found to contain bugs in their browsers that mean that what works correctly in mark up fails upon delivery to the device. Additionally the file formats of different handsets can download vary from model to model. This affects images, videos, audio files and capabilities, style of page with colours and font. 
         [0007]    In order to cater for these differences mobile internet the developers commonly categorize mobile telephone models into groups and builds a web site for each group. This has the disadvantage that the user must build and maintain multiple versions of the same site. In order to limit the number of builds the devices are normally grouped together in broad groups which mean less than perfect delivery to some devices which are not perfectly defined by the group definition. The narrower the group the better the delivery but the more extra sites that must be designed. When a new device emerges this must be either assigned to a new group or another version of the site must be created. Additionally some devices may be developed with new capabilities and these will be overlooked or underused. 
       SUMMARY 
       [0008]    It is an object of the current invention to mitigate and/or overcome the problems discussed above. In particular the technical problems of having to compile, store and operate a separate site for separate phones and of websites being unsuitable for the phones browsing them are solved by storing and installing functionality and features of pages as data chunks and compiling the pages of a site from data chunks in the manner defined in the claims. 
         [0009]    In accordance with a first aspect of the invention there is provided a web page computer system for generating web pages for viewing by communication devices preferably configured for each device, the system comprising a memory, a processor, an input for receiving a request for one or more web pages from communication devices, a plurality of data chunks stored in the memory, each data chunk corresponding to a specific purpose/function, page generation means for compiling a web page from data chunks stored in the memory, chunk selection means for selecting chunks in the memory that correspond to a page request for enabling the page generation means to compile a page corresponding to the request, chunk adaptation means to adapt data chunks, a database stored in the memory comprising data relating to a plurality of communication devices of different configurations and information on adaptations to be made to data chunks corresponding to the different configurations, wherein the server is configured so that on receipt of a page request from an identified model of communication device at the input, the chunk selection means determines which data chunks should be used to compile a page to be viewed by the requester, specific information is retrieved from the database corresponding to the identified model, (and preferably the determined chunks) the chunk adaptation means uses the specific information to adapt each of the determined chunks in accordance with the specific information, and the page generation means compiles a page from the adapted data chunks for sending to the identified mobile telephone, and preferably transmits the page so that it is operably accessed by the communication device that sent the page request. 
         [0010]    Further aspects and features of the invention are set out in the claims. Embodiments of the invention will now be described, by way of example only. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0011]    Features of the present invention can be more clearly understood from the following detailed description considered in conjunction with the following drawings, in which the same reference numerals denote the same elements throughout, and in which: 
           [0012]      FIG. 1  is a schematic representation of a computer system in communication with mobile devices in accordance with the invention; 
           [0013]      FIG. 2  is a schematic representation of a page structure created by the system of figure one with accompanying relevant components of the system of  FIG. 1 ; 
           [0014]      FIG. 3  is a schematic representation of components of the system of  FIG. 1  registering and responding to page request; 
           [0015]      FIG. 4  is a flow chart of the process of registering and responding to a page request in accordance with the invention; 
           [0016]      FIG. 5  is a schematic representation of page structure during adaptation with relevant components with the system of  FIG. 1 ; 
           [0017]      FIG. 6  is a flow chart of the process of adapting the page structure in accordance with the invention; 
           [0018]      FIG. 7  is a schematic representation of a data chunk stored in the memory of the system of  FIG. 1  together with further components of the system of  FIG. 1 . 
           [0019]      FIG. 8  is a flow chart of the processing of a data chunk of  FIG. 7 ; and 
           [0020]      FIG. 9  is an overview UML diagram of key code components. 
       
    
    
     DETAILED DESCRIPTION 
       [0021]    Referring to  FIG. 1  there is shown a mobile internet page computing system  10 , cellular telephones  12  and  14  and mobile internet infrastructure  16 . 
         [0022]    The cellular telephones  12  and  14  and mobile internet infrastructure  16  are conventional, the system  10  therefore can be used with already existing infrastructure which is used for transmitting mobile internet to cellular telephones via micro transmitters, etc. Instead of cellular telephones using GSM or CDMA or other microwave based technology, devices can be any other wireless communication device which has an internet browser preferably a mobile internet browser. Advantages of the invention are greatest when used with devices such as those of  12  and  14  with different configurations and in particular where the screen size is small and of different sizes for connecting devices  12  and  14 . Accordingly this could include PDAs with WiFi connections. Presently the system is particularly well suited for use with cellular telephones of a GSM or CDMA type using a WAP browser over GPRS, or running a mobile browser on a so called smart phone or pocket PC platform such as Windows mobile or Symbian. 
         [0023]    Each of the mobile telephones  12  and  14  have two way communication paths,  18  and  20  with the mobile internet infrastructure  16  which, in the example of cellular telephones would be by way of microwave. 
         [0024]    The computer system  10  in this example comprises a single server with a processor and memory such as a hard drive. Alternatively the system could be implemented on different computers with multiple processors and memory storage devices so long as the corresponding components are in suitable communication with each other. 
         [0025]    As well as a processor and memory (not shown) the system  10  comprises an input  30  output  32 , a main technology engine  42  and repositories forming part of the memory, chunk repository  44 , page repository  46  and device profiler  48 . 
         [0026]    The input  30  is in communication with the main technology engine  42  and has the means for receiving data sent from the mobile internet infrastructure  16 . The input signals are identifiably distinct, such as requests  34  and requests  36 , which whilst they come via the infrastructure  16  are still individually identifiable as coming from a particular telephones  12  and  14  respectively. Input  30  can be implemented using a number of conventional technologies including wireless receivers etc. Output  32  may comprise a wireless transmitter and sends signals  38 ,  40  in such a way as to be sent to a specific mobile device  12  and  14 . For example, by sending it with a specific telephone number in the same manner as a conventional mobile telephone call. 
         [0027]    Chunk repository  44  is a database containing specific data chunks which will be described in more detail below. 
         [0028]    Page repository  46  is a database containing page structures each of which comprise a list of references to data chunks contained in chunk repository  44 . 
         [0029]    The device compiler  48  is in communication with the main technology engine  42  and contains information relating to different types of known mobile telephone device and information on how chunks should be adapted to meet the requirements of those different telephone devices. 
         [0030]    The main technology engine  42  may comprise a combination of software and hardware such as the processor and programming which performs the major functions of the invention and in particular the ability to compile mobile internet pages. The engine  42  is in communication with all of the other components,  30 ,  32 ,  44 ,  46  and  48 . The engine  42  itself further includes an identifier  49  in communication with input  30  which can identify the mobile telephone  12  or  14  from which the signal  34  is transmitted and an adaptor  53  for adapting chunks from the chunk repository  44 . The identifier  49  is directly in communication with the device profiler  48 . In alternative embodiments the identifier does not form part of the system of the invention, with the identification being done externally. 
         [0031]    Referring to  FIG. 2  there is shown a single page structure  50 , as stored in the page structure repository  46 . 
         [0032]    The page structure comprises a list of chunks of a particular type in a particular order. The order in the structure  50  corresponds to vertically stacked order in which the page components, constructed from the chunks, will be present in the completed page sent from output  32 . In  FIG. 2 , this order is depicted by showing the different chunks in a vertical hierarchy. 
         [0033]    In this example page structure  50  comprises four chunks, chunk type A,  60 , chunk type B,  62 , chunk type C,  64  and chunk type D,  66  and each chunk comprises a number of settings  68 . Settings  68  may be values, text labels, on/off options or conditional rules. Each of the chunks  60  to  66  fulfils a specific purpose on the completed page and maybe individual configured and styled. The individual configuration styled is determined by the settings  68 . Changing these settings will alter the purpose and style of the chunk. 
         [0034]    The chunk itself may be considered an abstract description of the desired result. The generated markup of the completed page sent from output  32  is a result of decisions made by the engine  42  based on the requirements of the chunk, the settings configured by the site builder and the capabilities of the device  12 . 
         [0035]    Individual chunks may be positioned with a page structure in any position, with the order stored as part of the page structure  50 . 
         [0036]    The system  10  can alter any of the stored page structures in repository  46 . This can be done, for example, by adding another chunk from chunk repository  44  via path  61 . Additionally any of the current chunks  60 ,  62 ,  64  and  66  can be deleted at any time via path  70  to a deletion repository  52 . 
         [0037]    Each chunk itself can also be modified. This can be done through the easy manipulation of one or more of the settings  68 . 
         [0038]    To edit the page structure  50 , it is first loaded from the page structure repository  46  via path  65 . If the changes are applied and saved the page structure  50  sent back in modified form to the repository  46  via path  67 . 
         [0039]    Referring to  FIG. 3  there is shown page structure  50  in connection with main technology engine  42 , device profiler  48 , and page structure repository  46 . 
         [0040]    Referring to  FIG. 4  there is shown a flowchart of the process of delivering a page to a mobile telephone  12  in response to a page request via signal  34  to the input  30 . 
         [0041]    At step S 100  a page request signal  34  is received by input receiver  30  and sent on to the main engine  42 . At step S 102  the identifier  49  identifies the model of mobile telephone  12  from which the signal  34  was sent. Identifier  49  uses handset recognition code. 
         [0042]    At step S 104  the handset identification data is sent to the device profiler  48 . Next at step S 106 , the main technology engine  42  uses parts of the page request signal  34  to identify the page desired by the user of the telephone  12 . This is done conventionally, in the same manner that a mobile internet server generally identifies which mobile internet page is to be displayed. At step S 108 , this information regarding the desired page is sent to the page structure repository  46 . System  10  locates the page structure  50  stored within the page structure repository  46  that corresponds to the page requested. This page structure  50  is then taken from the page structure repository to be processed by the main technology in  42 . 
         [0043]    The page structure  50  in the example in  FIG. 3  is illustrated as comprising four chunks,  60 ,  62 ,  64  and  66  in a set order. These chunks  60 ,  62 ,  64  and  66  themselves may be stored in the page structure repository as part of the page structure  50 . Alternatively the page structures in repository  46  may store simply an identifier corresponding to a particular chunk and during step S 112  the chunks corresponding to those identifiers are found in the chunk repository  44  and put together to form a preliminary page. 
         [0044]    At step S 14 , which could run in parallel or before steps  106  to  112  as well as after, device profiler  48  looks up the stored information, in the form of a device profile concerning the adapting of chunks which corresponds to the particular model identified. 
         [0045]    Device profiler  48  comprises a database of settings and a logic layer. The device identification is used to count relevant entries in the database of settings. There are many revisions of individual mobile handsets, with revision often having inconsistencies so that different adaptations may be needed for different devices of the same model and these are catered for by device profiler  48 . 
         [0046]    The logic layer translates this information about the handset into usable data that relates to the abilities of that device to handle mobile internet pages and content download. Profiler  48  preferably combines the data within the logic layer in order to make decisions that the best possible results are determined by that device. 
         [0047]    For example, some handsets report that they support XHTML BASIC as their preferred markup language. However, if such a device does not support CSS for styling the page, it is considered more reliable to use WML as the markup language for this device. This ensures that all components are indeed visible on the page (a site builder may have chosen white text on a black background for their XHTML pages. However, without CSS support the background colour would not be honoured and the text would be invisible on the default white background). 
         [0048]    At step S 116  the information found by the device profile is then stored in a specific location in the memory for access by the main technology engine  42 . 
         [0049]    At step S 118  the technology engine  42  takes the information from device profile  48  that has been stored in the memory and uses it with the adaptor  53  to make any changes to each of the chunks  60 - 66 . Each of the chunks  60 ,  62 ,  64  and  66  are adapted by the adaptor  53  to best suit the device  12 . The chunk&#39;s requirements to display elements are compared against the capabilities of the visiting device. This includes file format compatibility, layout restrictions, code markup and browser quirks. 
         [0050]    All of the information sent to the handset may be stored in the memory at step S 112  and then supplied by the adaptor to each chunk in turn with which ever parts are appropriate. Alternatively chunks  60  to  66  which have been recalled could also be sent to the device profiler  48  so that information relevant to those chunks is returned. 
         [0051]    At step S 120  the main technology  42  compiles a mobile internet-page consisting of the adapted chunks put together in the same order as the non adapted chunks  60 ,  66  in page structure  50 . This compiled page is then sent to output  32  where it is transmitted as page delivery signal  38  to the specific mobile telephone  12 . 
         [0052]    A second embodiment is shown in  FIG. 5  and described in the flow process of  FIG. 6 . Components features and processors which are substantially similar or identical to those in embodiment  10  are given the same reference number but incremented by 200. 
         [0053]    The main difference between system  10  and system  210  is that the stored chunks do not contain the final mark up language which will perform the resulting page  170  representations of this are held in an element repository  268 . Element repository  268  forms part of the server  110  (not shown). In the process starting from step S 200  the steps of providing the page structure as chunks, provides chunks which contain settings and relevant information to instruct the main technology engine  242  as to which elements are required and only after the adaptation steps S 212  and S 214  and further steps S 215  and S 217 . The main technology engine  242  takes the adapted page structure  50  and locates the relevant elements from repository  268  before compiling the optimised page  270  comprising a list of features with elements  272 ,  274 ,  276  and  278  corresponding to the chunks  260 ,  262 ,  264  and  266  though there may be more than one feature per chunk. 
         [0054]    As each chunk&#39;s requirements are processed so a completed piece of markup is created. This markup is composited into the whole page for final delivery to the device. Because each chunk has been individually processed, no individual chunk suffers from any degradation applied to a chunk in order to achieve display on a limited device. 
         [0055]    When each chunk is processed according to the device profile information the settings and template are compared to and adjusted by the capabilities of the browsing device. 
         [0056]    For example, some devices automatically place line breaks after images. In such a case, linebreaks that appear directly after an image are automatically removed (because to leave them in place would result in extra spacing on the page). 
         [0057]    For example, different devices require different markup to form input elements. In such a case the template describes that an input box is required and the device profiling information instructs that element on how to display itself. 
         [0058]    Referring to  FIG. 7  there is shown a sample of a template which dictates the look of a page component produced from a chunk  60 . The template  80  comprises four elements,  82 ,  84 ,  86  and  88  which in system  10  are stored merely as identifiers and later located from the element repository  268  when required. The adaptor  53  may work on each of these individual elements,  82 ,  84 ,  86  and  88  separately or may work on the template as a whole  80  as well as adjusting to each of the individual settings. 
         [0059]    There are different types of chunk available for various features and functions such as Chunks  60  to  66 . A chunk is a unit of functionality that serves a purpose as a component when constructing a mobile internet page. Examples of chunks include: content galleries, user polls, chat, graphics, text, menus, language selection and user account management. 
         [0060]    In most cases the site builder used system  10  or  210  simply places the chunk into a page structure and configures it to produce the result they want. Then the main engine  42  ensures that this configuration is adhered to on any device that visits it when processing data chunks. 
         [0061]    For example, a user may place a graphic chunk onto a page and set its width to be 75% and alignment to be right. Regardless of the device type that views the page, the graphic will be at 75% of the screen width (mobile device screens vary in screen dimensions) and the graphic will always be delivered to the handset in a suitable file format (e.g., some older phones do not support jpg images and will only display GIF format images). 
         [0062]    A user may place a video gallery chunk onto their page. They configure it to display four video previews per page and include purchase links. The system  10  considers the capabilities of the identified handset. If it does not support video downloads, or if the required format of video is not available on the site the chunk will either be omitted, or at the site builder&#39;s preference, a message informing the user that their device is incompatible will be displayed. In either case, the chunk has been configured for the device, ensuring that unsuitable content is not available and that the page is not cluttered with unnecessary content that would increase page download time. 
         [0063]    Assuming that the device does support videos and the correct format is available on the site, the chunk will format the video thumbnail images according to the capabilities of the handset, the sizes configured by the site builder and the preference for layout determined by the site builder&#39;s chosen template. The template is also adjusted according to the capabilities of the device. For example, if the device is incapable of grid layout, the items of content will instead be delivered as a list 
         [0064]    A typical homepage may be constructed from a graphic chunk that displays the site logo, a text chunk that describes the site, a menu chunk through which other pages are accessed and a user account chunk where returning visitors can log in and access their previous purchases. 
         [0065]    To the end user using their mobile device, chunks are invisible. They simply see a complete page. 
         [0066]    In  FIG. 8  is shown the flowchart of the process of a chunk. 
         [0067]    At step S 410  site builder places a new chunk in a new chunk in the chunk repository and places this chunk or identifies this chunk into one or more page structures  50 . At step S 402  the site builder configures the settings  68  of the chunk. These settings are stored in the page structure  50  and the chunk  60  to  66 . 
         [0068]    At step S 404  a page is requested by device  12  and at step S 406  the chunks function and settings  68  are compared against capabilities of this device by device profiler  48 . At step S 408  the engine  42  generates final markup from a chunk bearing in mind the comparisons of the device profiler and at step S 410  this final markup generated from the chunk is added to the completed page for delivery to the telephone  12 . 
         [0069]    An example of a page request being processed can be given with the reference to a user. A site builder constructs a home page, the first page that users will see when they visit his site. 
         [0070]    Using system  10  or  110 , the site builder places a ‘site-graphic’ chunk at the top of his homepage. He instructs this chunk to display a company logo at 75% of the screen width. Beneath this chunk, the site builder adds a menu chunk that will link through to other pages. The site builder configures this chunk to display graphical links rather than just plain text and decides that these graphical links are to be shown at 50% of the screen width. 
         [0071]    User  1  and user  2  attempt to look at his homepage on their own mobile phones. 
         [0072]    User  1  is browsing the site on a relatively old phone. This phone is capable of displaying only WML (wireless markup language) pages and has a relatively small screen, only 128 pixels across. It also has a few quirks that mean it cannot display graphics as links and must display each link on a separate line within a page. 
         [0073]    When the page loads, User  1  sees the company logo at 96 pixels width by its relative height. The graphic is displayed on the page in GIF (Graphical Interchange Format) as this is the preferred colour graphic format for this phone. 
         [0074]    The menu beneath it comprises of only text links that take him to other pages. 
         [0075]    Meanwhile, User  2  on a newer more advanced device. This more modern device views pages of XHTML Mobile Platform (a code language that represents the second generation of the mobile internet standards). It is perfectly capable of displaying graphical links and has a screen width of 240 pixels. 
         [0076]    User  2  sees the company logo 180 pixels width by its relative height. Although it is larger, it loads faster than on User  1 &#39;s phone as the modern device is capable of receiving JPEG (Joint Photographic Experts Group) format which are more highly compressed for transmission. 
         [0077]    Beneath the logo, User  2  can see the menu, complete with graphical links that can be selected and “clicked on.” Each graphic is shown at 90 pixels width. 
         [0078]    In  FIG. 9  is shown an overview UML diagram of key code components. 
         [0079]    In alternative embodiments the invention may be used to generate and send web pages to a variety of devices rather than mobile internet pages top mobile devices. 
         [0080]    The foregoing merely illustrates the principles of this invention, and various modifications can be made by persons of ordinary skill in the art without departing from the scope and spirit of this invention.