Abstract:
An information integration method for integrating the information content of a plurality of information servers, the method comprising:  
     generating a user interface for accessing the information at the plurality of information servers and for receiving requests for information;  
     retrieving information from a plurality of information servers in response to a received request;  
     determining segments of information required in the information retrieved from each information server in response to the received request; and  
     combining a plurality of determined information segments from a plurality of information servers in response to a received request to generate a combined information output.

Description:
FIELD OF THE INVENTION  
         [0001]    The present invention generally relates to an information integration system for integrating information available from a plurality of information servers.  
         BACKGROUND OF THE INVENTION  
         [0002]    Many companies have some legacy systems which are used by various people for specific purposes. Typically these are dedicated systems including such things as enterprise resources planning (ERP) for a line of business (LOB) systems. Large corporations tend to have a large number of legacy systems some of which can be web enabled and some not.  
           [0003]    Prior art methods for integration of such systems require interfacing to be implemented at code level to gain access to the core functionality of the legacy systems. These systems which have been web enabled are likely to have been web enabled using different techniques. Thus the company cannot obtain integrated access to the core functionality of the legacy systems and a single view or portal cannot be provided.  
         SUMMARY OF THE INVENTION  
         [0004]    It is an object of the present invention to provide an improved information integration system to integrate information available from a plurality of applications or information servers.  
           [0005]    In accordance with one aspect the present invention provides an information integration system for integrating the information content of at least one information server in which a user interface is provided for accessing the information at the or each information server. The user interface provides a single view into the information servers to allow information to be retrieved and requests to be input. Thus the user interface acts as a single portal into the system and it can thus be managed to provide a consistent view of the information. Means is provided for retrieving information from the or each information servers in response to a received requests. In accordance with this aspect of the present invention, the information required in response to the request can be obtained from the information servers. The segments of information return from each of the information servers is then identified and combined to form the response to the request. In this way information can be composited, consolidated, or aggregated from a number of different sources or information can be repositioned, repurposed or rebranded for display. In this way the disparate nature of the information or application servers is not visible to a user: a single view of all of the information at the servers is provided to the user.  
           [0006]    In one embodiment of the present invention, information templates are stored and selectively used for the combination of the information segments in order to generate the response to a request from the user. In this way the layout and format of the information returned to the user can be predefined in accordance with the stored information templates.  
           [0007]    In an embodiment of the present invention, the information to be retrieved is formatted in accordance with a mark up language such as hypertext mark up language (HTML) or extensible mark up language (XML). Thus in this embodiment the segments of information can be determined by identifying tags in the mark up language. In one embodiment these tags can be added to the dynamically generated mark up language output available from an application server before being received by the information integration system. Thus in this embodiment the web application implemented at the application server performs a tag processing operation to analyse the dynamically generated mark up language and to add segment tags for use by the information integration system. In an alternative embodiment, the information integration system can identify the normal tags used in the mark up language. This is particularly the case when XML is used.  
           [0008]    The present invention also encompasses any means of determining the segments such as the use of markers within the information, or the parsing of the information in accordance with rules or an algorithm in order to determine the segments. The present invention is however particularly suited to mark up languages where tags are already available and can be specifically assigned for segment identification.  
           [0009]    The present invention is applicable to any type of information in an electronic form such as text (including text formatted in accordance with a mark up language such as HTML, XML, VRML, WML, Voice XML, SMIL etc and code such as Java.), video, images, data, or computer programs. This aspect of the present invention enables the aggregation of segments of information into an output to be presented to the user without the user being aware of the disparate nature of the information sources behind the information integration system.  
           [0010]    The present invention is particularly suited to information sources which comprise application servers for dynamically generating the information. Since the information is generated dynamically, it cannot be archived at the information integration system and must be retrieved from the application server when a request is made to it. In this way the information integration system is able to utilise the core functionality of the legacy systems in an integrated information providing system and preserve business logic.  
           [0011]    In a preferred embodiment, the integration is an integration of web enabled legacy systems where each information source is web enabled to generate web page outputs in response to requests. The information integration system is networked to the information servers to communicate using the hypertext transfer protocol (HTTP). The information integration system acts as a web client to the information servers and as a web server to the users. It thus performs a web proxy operation in order to integrate the information available at the legacy information servers. It does this by using simple web technology which requires no understanding of the code implemented at the information servers.  
           [0012]    In one embodiment of the present invention, events performed when requests are received from the user are stored. Events caused as a result of requests received from a user are recorded in order to provide state information for a user. The provision of state information enabling path analysis, time stamp recordal and stateful logging of user context information when events are recorded and identified is significantly different to conventional web servers since the web protocol (HTTP) is essentially a stateless protocol, The use of stored events called as a result of a request by a user enables state information to be used and recorded in the system. The recordal of state information enables the recordal of events for use in management functions. This provides a reporting function within the system.  
           [0013]    In one embodiment of the present invention, user information is stored such as personal information e.g. name, age salary etc. The user information can include information server logon information as well system logon information. When a user logs on to the system, the system can use the stored user information to enable it to log on to the information servers when this is necessary in order to retrieve information from the information servers in order to respond to the request from the user. Thus this facility provides the user with a single logon and avoids the user having to log on to the multiple legacy information servers independently. The log on information for the information servers will be used as necessary and when necessary to respond to the user&#39;s request.  
           [0014]    Another aspect of the present invention provides an information interface in which a user interface is provided to receive requests from the user and output information, Information is presented to the user from a plurality of information locations. The information locations can comprise separate information servers or separate information files in different logical locations. The logical locations can be the same physical location or different physical locations e.g on machines networked over a local area network, wide area network, or the internet. Where a request is received from the user, information from the information locations is retrieved and predetermined mark up tags are identified to identify items included in the output to the user.  
           [0015]    This aspect of the present invention provides the means by which information can be aggregated from a number of information sources without requiring any input or knowledge from the user.  
           [0016]    A further aspect of the present invention provides an information integration system for integrating applications at a plurality of application servers. A IP interface is used to enable IP to be used as the communication protocol between the information integration system and the application servers. Each application server has an IP application for receiving IP requests from the integration system and for outputting IP content. Received IP content from the application servers is processed and formatted according to a predefined format for output by a IP server as a web interface to users. This aspect of the present invention enables the control of the format to provide a single format type of user interface to a user for information retrieved from all of the application servers. Thus in this way the system acts as a single portal to the application servers.  
           [0017]    This aspect of the present invention is applicable to any IP protocol such as the HTTP protocol, the SMTP protocol and the FTP protocol all of which are carried by the IP protocol.  
           [0018]    The present invention can be implemented in dedicated hardware, in a combination of dedicated hardware and programmable hardware, or in programmable hardware alone. The present invention thus encompasses computer programs for controlling programmable hardware. The present invention-encompasses any carrier medium carrying the computer program such as a storage medium (e.g. a floppy disk, hard disk, CD rom, programmable logic device, or tape device) or a transient medium (e.g. a microwave, optical, electrical, or radio frequency signal) carrying the computer code. For example the carrying medium can comprise a signal (a TCP/IP signal) carrying computer code over an internet protocol network such as the internet or a local area network. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0019]    Embodiments of the present invention will now be described with reference to the accompanying drawings in which:  
         [0020]    [0020]FIG. 1 is a schematic diagram of an information integration system in accordance with an embodiment of the present invention,  
         [0021]    [0021]FIG. 2 is a more detailed schematic diagram of the information integration system in accordance with an embodiment of the present invention,  
         [0022]    [0022]FIG. 3 is a more detailed different schematic diagram of the information integration system in accordance with an embodiment of the present invention,  
         [0023]    [0023]FIG. 4 is a flow diagram illustrating the operation of the system in accordance with an embodiment of the present invention,  
         [0024]    [0024]FIG. 5 is a schematic diagram of the operation of the user identification module in the information integration system of an embodiment of the present invention,  
         [0025]    [0025]FIG. 6 is a diagram illustrating the various methods of forming web pages in the information integration system in accordance with an embodiment of the present invention, and  
         [0026]    [0026]FIG. 7 is a diagram illustrating the input of form data and submission of the form data to the application server to generate a result as a web page in accordance with an embodiment of the present invention. 
     
    
     DETAILED DESCRIPTION  
       [0027]    [0027]FIG. 1 schematically illustrates the principles of the present invention. Three legacy systems  1 ,  2  and  3  implement applications and contain data which is to be accessed by users. Each system  1 ,  2  and  3  is web enabled and is provided with a web application  1   a ,  2   a  and  3   a . Thus each system is capable of receiving HTTP requests and generating web pages in response. Each system is termed in this embodiment a netFriend. The system of this embodiment of the present invention provides integration of the information at each system  1 ,  2  and  3  to provide a single view portal system  4  to provide a single view as an internet (web) view to a plurality of possible devices such as a digital TV  5 , a web browser  6 , or a wireless device  7  such as a wireless application protocol (WAP) device.  
         [0028]    This embodiment of the present invention thus integrates the web capabilities of the systems  1 ,  2  and  3  to provide a single view to users of the system without the users being involved in the process. The single view portal system  4  also enables reports on the actions of users to be obtained for management purposes.  
         [0029]    Each legacy system  1 ,  2  and  3  with its web application  1   a ,  2   a  and  3   a  can each have a number of static content pages and a number of transactional or dynamic pages. Each page has a specific universal resource locator (URL) and its output from the web application  1   a ,  2   a  or  3   a  in response to an HTTP request to the URL.  
         [0030]    The purpose of this embodiment of the present invention is to provide a single view into the web pages which is managed and controlled.  
         [0031]    [0031]FIG. 2 illustrates the information integration system in more detail.  
         [0032]    The information integration system operates to provide a presentation management layer which includes the ability to identify users and interact with a user data base  10 . An event management layer is also provided to operate in accordance with an event model. Adaptors are provided for interaction with external devices. A web adaptor  11  is provided to provide a web interface to the application servers  1 ,  2  and  3  an Enterprise Java Bean (EJB) adaptor  12  is provided for connection to EJB server  13  acting as an application server for the performance of calculations. Results can thus be returned and used in a generation of an output to users. Content Management System (CMS) adaptor  14  is provided for connection to a content management system  15  to provide content management within the information integration system.  
         [0033]    The information integration system is also provided with configuration tools  16  to enable the system to be configured. Reporting tools  17  are also provided to provide management reports on events within the information integration system. A dash board user interface  18  is provided as an interface to the management information available from the information integration system.  
         [0034]    [0034]FIG. 3 is a schematic diagram illustrating the structure of the information integration system in more detail.  
         [0035]    A web server  20  is provided to provide the user interface to the system. The web server will receive HTTP requests and will respond with HTML output from the core code  21 . The core code  21  comprises 6 modules:  
         [0036]    1. A web page code generator performs the function of generating HTML using HTML templates  28  in the database  25  and using content  27  stored in the database  25 . The content can comprise static HTML provided from the application servers  1 ,  2  and  3  and items comprising segments of HTML. code extracted from web pages returned from the application servers  1 ,  2  and  3 .  
         [0037]    2. A user identification module  34  is provided to implement a logon sequence for the user and uses the user data  26  in the database  25 .  
         [0038]    3. An event engine  36  is provided for implementing events read from the configuration data  30  in database  25 .  
         [0039]    4. A reporting module  35  is provided to monitor events and generate reporting information  31  stored in the database  25 .  
         [0040]    5. Configuration tools  37  are provided for the generation and modification of configuration data  30 . The configuration data will be described in more detail hereinafter.  
         [0041]    6. An audit tracking module  38  is provided to provide an audit trail or audit tracking information  32  in the database  25  to monitor management functions such as the reconfiguration of the system.  
         [0042]    A web proxy  22  is provided which acts as a web client to the application servers  1 ,  2  and  3  and a web server to the core code  21 . The web proxy generates HTML requests to retrieve information from the application servers  1 ,  2  and  3  and receives HTML which is served to the core code  21 .  
         [0043]    A content management adaptor  23  is provided to allow a content management system  15  to be interfaced to the system. The content management system conveniently comprises a content management programme for the management of the content within the system.  
         [0044]    The EJB adaptor  24  is provided to interface to a EJB server  13  for the performance of calculations. Results can be returned and used within the core code  21  in the generation of the output web page served by the web server  20 .  
         [0045]    It must be seen from FIG. 3 that the database  25  holds a large amount of data. The user data  26  contains information on the user such as login information and personal information. Login information includes not just login information to access the system but also login information to gain access to each of the application servers  1 ,  2  and  3 . The login information for the system and for the application servers  1 ,  2  and  3  is related such that when a user is logged in to the system, the login information for the application servers can be used to log in to the application servers when necessary. Thus when a customer logs in to the system, it would seem to them that they are automatically logged in to all of the application servers  1 ,  2  and  3 . The log in to the system and the log in to the application servers can be implemented using any conventional technique. The system can be implemented using:  
         [0046]    1. persistent cookies in which a single cookie stored on the user&#39;s machine can identify them automatically,  
         [0047]    2. HTTP authentication in which the standard login mechanism built into the user&#39;s internet browser is used to enable a user to login by entering the user name and password into a browser supplied pop-up window, and  
         [0048]    3. forms based login using a form generated for the input of information by the user.  
         [0049]    The content  27  held within the database  25 , in this embodiment comprises HTML and other web page content. The HTML can be in the form of static web pages which may or may not be modified in accordance with a template stored in the HTML template  28 . The HTML stored in the content  27  is not modified in accordance with an HTML template  28 , it can be so modified by the web page code generator  33  before output of the web page by the web server in response to an HTTP request. The content  27  can also include items in the form of segments of HTML. The segments of HTML (Items) in this embodiment are identified using tagging.  
         [0050]    When the system is being configured, application servers are identified and are entered into the database as netFriends in the configuration data  304  Transactional or dynamic and static web pages are identified that are provided by the netFriend. Static web pages are copied into the content  27  in the database  25 . They can be modified by the web page code generator  33  using HTML template  28  to be ready for output directly to the web server  20 . Alternatively, they can be stored in “raw” form to which an appropriate HTML template can be applied from the HTML templates  28 .  
         [0051]    For transactional pages, metadata is created within the configuration data  30  to identify the netFriend, the URL and events associated with each transactional page.  
         [0052]    In this embodiment of the present invention, the content on the transactional pages are described using a simple mark up language. FIG. 6 schematically illustrates the different methods used by the system to generate web pages using the output of the existing web applications. A managed page can be generated simply by manually copying the HTML to a template during the implementation phase. Thus in this method a complete copy of the HTML is used and subjected to a template operation. In a simple tagging method two tags are used to encapsulate the segment of HTML for automatic substitution into a template. Granular tagging can be used for the extraction of a number of small segments on the same web page. It is also possible to use multiple tagging wherein segments are tagged in more than one web page and are combined into one web page for output from the information integration system.  
         [0053]    The tagging system of this embodiment of the present invention only requires the output of the legacy system i.e. the application servers to be modified. This provides for simple modification without requiring complexity.  
         [0054]    The tagging language syntax will now be described in more detail.  
         [0055]    The tagging system has been developed for implementation in the assignees earlier system call BladeRunner. The tags have been labelled netFriends tags.  
         [0056]    There are two tags that relate to the mark-up of pages on a legacy web server: the system tag and the item tag. The system tag must appear in the page header. The item tag can appear in the body text or the header area. The following table shows each tag&#39;s attributes and provides a brief description:  
                                       Tag   Attribute   Purpose                   &lt;netfriend:system /&gt;   name   the name of the legacy web system           page   the name of the legacy web page           version   the version number of the legacy               web page       &lt;netfriend:item&gt;   name   the name of an area of text or data                  
 
         [0057]    Tag Syntax  
         [0058]    The system tag is present on a page and for the system to recognise it and it has three attributes: name, page and version. The syntax is:  
                                   &lt;netfriend:system name=“LEGACY_NAME” page=“PAGE_NAME”       version=“X,X” /&gt;                  
 
         [0059]    The system tag poses a problem for systems that deliver web pages dynamically (for example, through a CGI program, web servelet or HTTP server thread). Depending on the program, a page is either a template (for example, ASP) or generated by a program (for example, CGI). If the page is a template, the system tag must be inserted at the top of the template. If the page is a program, the program must be altered to output the system tag at the beginning.  
         [0060]    The name attribute must match the name defined in the database. The page will not be recognised as part of the legacy web system otherwise.  
         [0061]    The page attribute is a local name for the page being delivered. The name should be short yet descriptive.  
         [0062]    The version attribute defines the version of the legacy web page. Currently, this attribute may contain anything and it is not currently implemented.  
         [0063]    The item tag surrounds the HTML that contains data items. Its syntax is:  
                                                                       &lt;netfriend:item name=“ITEM_NAME”&gt;                . . . text/markup . . .                &lt;/netfriend:item&gt;                      
 
         [0064]    The item tag identifies and labels an area of text or data that may be incorporated into a page or referenced in an event. It can be used as many times as there are data items. It has one attribute—name—which should correspond to the name of a data item that will be used by the system as a container attribute.  
         [0065]    An item tag can also accommodate links (either hyperlinks or form submits). The tag must be placed around the entire &lt;A HREF&gt; hyperlink clause in order for the browser to read the page&#39;s mark up.  
         [0066]    Tag Examples  
         [0067]    The following page code shows the tags required in a legacy web page. To assist in identification, the tags appear in bold and this example will appear throughout this document.  
                                                                                                                                                   &lt;HTML&gt;       &lt;HEAD&gt;       &lt;netfriend:system name=“KNOWLGE_BNK” page=“HLP_INTRO”       version=“1.0” /&gt;       &lt;TITLE&gt;Knowledge Bank Help Page&lt;/TITLE&gt;       &lt;/HEAD&gt;       &lt;BODY&gt;       &lt;netfriend:item name=“WHOLE_TABLE”&gt;                &lt;TABLE border=“1” width=“400”&gt;                &lt;TBODY&gt;                &lt;TR&gt;                &lt;TD&gt;Subject Index&lt;/TD&gt;           &lt;TD&gt;You can view this help system via an           index&lt;/TD&gt;                &lt;/TR&gt;           &lt;TR&gt;                &lt;TD&gt;Search Feature&lt;/TD&gt;           &lt;TD&gt;Or you can search for keywords&lt;/TD&gt;                &lt;/TR&gt;                &lt;/TBODY&gt;                &lt;/TABLE&gt;            &lt;/netfriend:item&gt;       &lt;netfriend:item name=“ENTER_HELP”                &lt;A HREF=“http://131.121.1.5/english_help.html”&gt;           &lt;IMG SRC=“graphics/gotohelp.gif”&gt;&lt;/A&gt;            &lt;/netfriend:item&gt;       &lt;/BODY&gt;       &lt;/HTML&gt;                  
 
         [0068]    Tags for Page Mark-Up  
         [0069]    The Information Integration System pages need to extract data that has been tagged in the legacy web pages. A variety of tags exist to enable his process.  
         [0070]    All tags must be nested within the &lt;blade:netfriend&gt; opening and closing tags. Three of the nested tags are mandatory: &lt;blade:system&gt;; &lt;blade:page&gt;; and &lt;blade:item&gt;. The remaining four are optional.  
                                   Tag   Purpose                   &lt;blade:netfriend&gt;   announces that this is a netFriends-specific mark-up. It           encloses all other netFriends tags in the set       &lt;blade:system&gt;   must match the content of a &lt;netfriend:system name&gt;           legacy page tag       &lt;blade:page&gt;   must match the content of a &lt;netfriend:system page&gt;           legacy page tag       &lt;blade:item&gt;   must match the content of a &lt;netfriend:item name&gt;           legacy page tag       &lt;blade:links&gt;   required to identify links from legacy pages. Defaults           to NO if not specified       &lt;blade:version&gt;   the version number of a legacy web page (should           match the &lt;netfriend:system version&gt; legacy page tag           when implemented)       &lt;blade:format&gt;   the name of an optional format handler that can be           used       &lt;blade:index&gt;   for selecting one or more lines by index. Line 0 would           be the first line in a set, line 1 the second, and so on                  
 
         [0071]    Tag Syntax  
         [0072]    The syntax of the &lt;blade:netfriend&gt; tag is:  
                                                   &lt;blade:netfriend&gt;                &lt;blade:system&gt;SYSTEM_NAME&lt;/blade:system&gt;           &lt;blade:page&gt;PAGE_NAME&lt;/blade:page&gt;           &lt;blade:item&gt;ITEM_NAME&lt;/blade:item&gt;           &lt;blade:links&gt;YES/NO&lt;/blade:links&gt;           &lt;blade:version&gt;X.X&lt;/blade:version&gt;           &lt;blade:format&gt;FORMAT_HANDLER&lt;/blade:format&gt;           &lt;blade:index&gt;INDEX_IN_TO_ITEM_SET&lt;/blade:index&gt;            &lt;/blade:netfriend&gt;                  
 
         [0073]    The &lt;blade:version&gt;, &lt;blade:format&gt; and &lt;blade:index&gt; tags are optional.  
         [0074]    BladeRunner netFriends matches the contents of the three mandatory tags to the contents of the legacy tags as shown here: 
         
 
         [0075]    The &lt;blade:version&gt; tag is currently not used. Upon implementation, however, it will parallel the &lt;netfriend:system version&gt; tag of legacy web pages.  
         [0076]    Tag Examples  
                                                                       &lt;HTML&gt;       &lt;HEAD&gt;       &lt;TITLE&gt;BladeRunner netFriends Knowledge Bank Help Page&lt;/TITLE&gt;       &lt;/HEAD&gt;       &lt;BODY&gt;                &lt;blade:netfriend&gt;                blade:system&gt;KNOWLGE_BNK&lt;/blade:system&gt;           &lt;blade:page&gt;HLP_INTRO&lt;/blade:page&gt;           &lt;blade:version&gt;1.0&lt;/blade:version&gt;           &lt;blade:item&gt;WHOLE_TABLE&lt;/blade:item&gt;           &lt;blade:item&gt;ENTER_HELP&lt;/blade:item&gt;           &lt;blade:links&gt;YES&lt;/blade:links&gt;                &lt;/blade:friend&gt;            &lt;/BODY&gt;       &lt;/HTML&gt;                  
 
         [0077]    Ensuring Tags Are Inert  
         [0078]    If inserted correctly, tags in legacy web pages will remain inert, leaving the original HTML unaffected. This means that if a page is browsed directly (and not through the system), the tags will not influence or affect the original functioning of the legacy system. If a table needs to be included in a tag the syntax should be as follows:  
                                                                       &lt;netfriend:item name=“table”&gt;           &lt;table&gt;                . . . text/markup . . .                &lt;/table&gt;           &lt;/netfriend:item&gt;                      
 
         [0079]    The following table mark-up is an example of bad syntax:  
                                                                       &lt;netfriend:item name=“table open”&gt;           &lt;table&gt;           &lt;/netfriend:item&gt;                . . . text/markup . . .                &lt;netfriend:item name=“table close”&gt;           &lt;/table&gt;           &lt;/netfriend:item&gt;                      
 
         [0080]    Although in the present embodiment described hereinabove HTML is used, the present invention also encompasses the use of file formats in which tags are not added For example XML can be used which inherently includes tags which can be identified within the system.  
         [0081]    The benefit of the insertion of tags in the web pages of the output of the application servers is that they indicate which system the page is from, and they can identify individual transaction elements on a given page.  
         [0082]    In the database  25  configuration data  30  is stored as relational data. The data identifies the legacy systems as netFriends. Each netFriends has net actions (events) associated with it. A net action identifies a net object i.e. the source of information to be retrieved, and the information is identified by a URL. Items available at the URL are also contained in the configuration data and identify transactional items to be retrieved. Configuration data  30  in the database  25  can be configured by administrators using the configuration tools  37 . This enables administrators to add legacy systems and to define content pages and items. The relationships between the systems and the actions and items can be automatically generated. Configuration data thus identifies and enables the netFriends to be managed and identifies the corresponding URLs of unique pages within each system. The configuration data also identifies the page templates unto which content and/or data from the legacy system will need to be inserted. Events associated with individual pages and/or content items is also defined.  
         [0083]    [0083]FIG. 4 is a flow diagram illustrating the operation of the system. Initially the user will perform a login ( 40 ) to the system. The login can be via a persistent cookie on the user&#39;s machine, via a standard HTML login, or using a form accessed by the user. As a result of the input of the login information from the user, either automatically from the cookie or manually, users data  26  is accessed in order to retrieve state information ( 41 ) to identify the current state. The state information will include a session ID to identify the current session The user will then be presented ( 42 ) with a home page which is generated using the HTML templates  28 . The generation of the home page requires state information as well as the HTML templates since the home page will be generated to provide links to events. When a user selects ( 43 ) an internet web page, the web server  20  receives an HTTP request which includes an identification of an event. The home page is thus generated to use event information based on state information which includes the user&#39;s activity (past and present). Thus when a user selection is made ( 33 ) an event  44  is called using information in the configuration data  30 . The event can cause a chain of events to occur. In this example the first event ( 45 ) is to log in to netFriend 1 the second event ( 46 ) is to retrieve content from netFriend 1, the third event ( 47 ) is to log into netFriend 2, and the fourth event ( 48 ) is to retrieve content from netFriend 2. These actions are predefined in the configuration data and can be set up by the administrator using the configuration tools  37 . The results of the actions is retrieval of each HTML content from the application servers  1 ,  2  and  3 . Although in this embodiment it is illustrated that it is necessary to log in to the application servers  1  and  2  ( 45  and  47 ), it is also possible for the logins to the application servers to have been performed initially as soon as the user logs in.  
         [0084]    The resultant HTML content retrieved from the application servers is processed by parsing to identify the tags and thus identify and extract items ( 49 ). The items are added to the content  27  in the database  25 . The output web page can then be generated ( 50 ) using the items from the content  27  and using the HTML templates  28 . Thus in this way the segments of HTML can be extracted from one or more sources and combined in a generated web page output to a user. Web pages generated in accordance with the template to provide a uniform output appearance.  
         [0085]    [0085]FIG. 5 is a schematic diagram illustrating a process implemented by the user identification module  34 . A single set of identification data i.e. logon data is entered by the customer and this is entered into or matched to the information in the user data  10 . This user registration table maps to the netFriends in the database. The login information stored in the user database  10  can then be used to login the user to the appropriate netFriends. This can either be done initially, or when necessary, i.e. when information is required from the netFriend.  
         [0086]    The information integration system stored in the database user information which can be used not just to provide state information, but also to reduce the input required for it the user. FIG. 7 schematically illustrates the input of transaction information to the system web application. Where a user entry is required on a transactional page, the items extracted from the assisting web application web pages can identify the need for user input and a form can be generated by the information integration system. When a user enters data into the system form, the form data is sent directly to the existing web application as an input. An output web page will then be generated which will be tagged in order to generate the results page at the information integration system. Thus in this embodiment the form generated by the existing web application is not to be used and the user need only be familiar with a single style of form generated by the information integration system.  
         [0087]    The user&#39;s data can be used to prepopulate form fields to reduce the user input. For example, where a number of existing web applications require the same information, this can be stored in the user&#39;s database to prepopulate the forms to avoid having to keep re-entering information.  
         [0088]    The user&#39;s data  26  can be also be used to personalise the web pages generated by the web page code generator  33 . For example, a user can select to receive web pages in a particular language. This can be stored in the user&#39;s data and this parameter can be used to select the template i.e. the language of the template to be used for the generation of the web page. In this embodiment of the present invention, the user input triggers events in accordance with data stored in the configuration data  30 . Thus, it is possible for the reporting module  35  to monitor the events and store reporting information  31 . The events that are recorded can identify the user, and the path taken by the user i.e. chain of events. Thus in this way, state information is recorded in the reporting information  31 . This provides a rich source of information for administrators and the information is far greater than that provided by conventional web servers which can only provide information which is essentially stateless. The reporting information  31  can be accessed by the administrator using a web interface provided by the web server  20 . The reporting module  35  cooperates with the web server  20  to provide the reporting interface for the administrator.  
         [0089]    The audit tracking module  28  is provided to monitor management events such as the user of the configuration tools  37 . This can provide a fill audit trail for management functions.  
         [0090]    Although the present invention has been provided hereinabove with respect to specific embodiments, it will be apparent to a skilled person in the art that modifications lie within the spirit and scope of the present invention.  
         [0091]    For example, although the present invention has been described hereinabove with reference to the use of the tagging of information from information servers, the present invention is applicable to any means by which segments of information can be identified. This can include the use of tags, pointers, flags, or any other identifiers. It can also be carried out simply by parsing or analysing the information to identify particular segments.