CROSS-REFERENCE TO RELATED APPLICATIONS
This is a continuation-in-part of and claims the priority benefit under 35 U.S.C. 120 of U.S. Pat. No. 7,933,956 entitled A System and Method to Create a Collaborative Web-based Multimedia Layered Platform, filed Jan. 24, 2007; U.S. patent application Ser. No. 12/319,807 entitled System and Method to Create a Collaborative Web-based Multimedia Contextual Dialogue filed on Jan. 13, 2009; U.S. patent application Ser. No. 12/378,805 filed Feb. 20, 2009 entitled System and Method to Create a Collaborative Web-based Multimedia Contextual Document, now abandoned; and additionally claims the benefit under 35 U.S.C. 119 (e) of U.S. Provisional Application No. 60/761,529, entitled A System and Method to Create a Collaborative Web-Based Multimedia Layered Platform, filed on Jan. 24, 2006, each of the entire disclosures of which are hereby incorporated by reference herein.
FIELD OF THE INVENTION
This invention generally relates to the field of asynchronous and synchronous web document production methods and systems.
BACKGROUND OF THE INVENTION
In the last few years, there has been an explosion in new forms of web based communication within a shared space. The synchronous form is most commonly practiced as Online Chat. With synchronous communication, like Online Chat for example, text is exchanged in real-time between participants. Although images can be provided to a limited extent, links to images or other multimedia is more commonly used. Another common form of synchronous communication is with web conferencing services. These services provide a discrete state synchronicity such that only one image can be shared at one time. Typically, once the session has ended, the images shared are lost. Many of the current online collaboration systems are beginning to record the sessions. However, these recording are only recoding a series of images for play back.
The most common asynchronous forms of collaboration are Forums, blogs and WIKIs. In the asynchronous case, visitors can upload text or images so that all subsequent visitors can browse and see the text or images. Blogs and forums have an advantage over Chat in that conversations can be linked into ‘threads’. This allows the user to follow a set of contributions in a linear and/or nested fashion. Lacking is the real-time aspect as well as the ability to layer media. Currently even if you can upload an image or multimedia clip into a chat room or blog, it is not known for visitors to alter, manipulate or annotate over the original posting. What is common to these forms of shared communication is that they are linear. All information whether text or image, is accessed in order. A comment in a blog about an image does not appear on top of the image, but instead next to it as with ‘threads’. The same holds true for a chat box. Users must cut and paste to refer to a past event.
Lacking is a system that will allow both synchronous and asynchronous communication using discrete media layers such that information can be organized by time and space which in turn can allow for a variety of organizational metaphors.
It will be desirable that multiple users are able to interact with one another and perform a plurality of multimedia tasks in a virtual and synchronized shared environment; or to be able to access and review the performed tasks from local or remote sources at will in any order. It will also be desirable to allow users to set control or restrict the viewing of media layers in the same shared environment through different filtering algorithms. It is also desirable that an original image can seem to be altered or manipulated by overlaying various media-layers together.
The following terminologies used in the application are selectively defined by online dictionaries such as Wikipedia to help understanding:
Account Owner (creator)—The person who owns, creates or maintains or provided stewardship over a particular session and all options, rights relevant to that session.
Annotation—Extra information associated with a particular point in a document or other piece of information.
API—An application programming interface (API) is the interface that a computer system or application provides in order to allow requests for service to be made of it by other computer programs, and/or to allow data to be exchanged between them
Blog—A blog is a website in which journal entries are posted on a regular basis and displayed in reverse chronological order. The term blog is a shortened form for web log. Authoring a blog, maintaining a blog or adding an article to an existing blog is called “blogging”. Individual articles on a blog are called “blog posts,” “posts” or “entries”. A person who posts these entries is called a “blogger”. A blog comprises hypertext, images, and links (to other WebPages and to video, audio and other files). Blogs use a conversational documentation style. Often blogs focus on a particular “area of interest”, such as Washington, D.C.'s political goings-on. Some blogs discuss personal experiences.
Collection—One or more media-layers that have an organizational structure. Typically this is stored as an XML file.
Converter—Programs for converting audio files, video, animations or applets of varying degrees of interactivity and function, presentations, documents, spreadsheets among other files in the original data format to another format that allows information to be accessible through a browser using a media application.
Common Web Browser—A web browser is a software application, technically a type of HTTP client, that enables a user to display and interact with HTML documents hosted by web servers or held in a file system. Popular browsers available for personal computers include Microsoft Internet Explorer®, Mozilla Firefox®, Opera®, Netscape®, Apple Safari® and Konqueror®A browser is the most commonly used kind of user agent. The largest networked collection of linked documents is known as the World Wide Web. It is assumed that all common web browser will have Macromedia Flash®installed or will support the installation and proper execution of Flash®applications.
Dynamic button—A clickable link that can jump the user to a different page in the same book, a different book, generate a new email in the users local email application, or send the user to a web page in a new browser window.
Event—A set of codes that describe the modification of a media-layer.
Images—defined as photographs, drawings (vector and raster), diagrams, etc.
Media-layer (media layer) (layer)—A media-layer is defined as a container that supports the display and modification of media and plug-ins. Media-layers have meta information, or attributes, such as; author, time/date created, its parent media-container, a list of children media-containers, position within 3D space, stacking order relative to the parent media-layer, size, reference to media or a plug-in that is assigned to the media-layer, etc
Media (multi)—Multimedia is the use of several different media to convey information (text, audio, graphics, animation, video, and interactivity).
Medium—defined as the singular of multimedia. For example, text, a media, is a singular example of multimedia.
Network—A computer network is two or more computers connected together using a telecommunication system for the purpose of communicating and sharing resources. Examples include but are not limited to a WAN or LAN connection or an internet, intranet or extranet connection.
Online Chat—Online chat can refer to any kind of communication over the internet, but is primarily meant to refer to direct 1 on 1 chat or chat rooms, using tools such as instant messenger applications-computer programs, Internet Relay Chat, talkers and possibly MUDs, MUCKs, MUSHes and MOOes.
Plug-in—A plug-in is a computer program that can, or must, interact with another program to provide a certain, usually very specific, function. Typical examples are plug-in to display specific graphic formats (e.g., SVG if the browser doesn't support this format natively), to play multimedia files, to encrypt/decrypt email (e.g., PGP), or to filter images in graphic programs. The main program (a web browser or an email client, for example) provides a way for plug-in to register themselves with the program, and a protocol by which data is exchanged with plug-in. Plug-ins are slightly different from extensions, which modify or add to existing functionality. The main difference is that plug-in generally run within a sandbox, rely on the main program's user interface, and have a well-defined boundary to their possible set of actions.
Room—A Room is a common reference to a ‘shared space’. A room contains default tools, rules and permissions that are set and controlled by the room administrator.
Space—A shared virtual reference point where as multiple users can interact in real-time upon shared objects.
Space Creator—The User creates an account to which a ‘space’ is allocated where other individuals also using a browser can engage in the synchronized or unsynchronized viewing and annotating of images.
Stage—A reference coordinate system that informs where media should be displayed. The most typical stage is a two dimensional Cartesian coordinate system where 0,0 is position in the upper right of the display area.
Session State—The state of all objects, GUI tools and controls, and media-layers, at any given time.
Sidebar panel—a window within a browser such as Windows® desktop (Windows is a registered trademark of Microsoft Corporation). Sidebars often perform various tasks, such as displaying the time and date and showing the CPU usage.
Threads—Threads in a forum are either flat (posts are listed in chronological order) or threaded (each post is made in reply to a parent post). Sometimes, community members have a choice on how to display threads.
Tools—GUI applications that affect the state of other tools and media-layers.
Tool: scene manager—specific GUI applications that affect the overall display of the stage.
Web based shared space—This describes a single point of reference for multiple users to access and add and modify information from a web browser for viewing by others via that same point of reference.
WIKI—A website that allows the visitors themselves to easily add, remove, and otherwise edit and change available content, and typically without the need for registration.
Whiteboard—a drawing utility, commonly supplied as part of a collaboration framework to allow distributed users to share a common drawing space.
SUMMARY OF THE INVENTION
The present invention relates to the field of collaborative computing, and more particularly to a method for creating a collaborative book in a shared network space comprising the steps of: accessing one or more user computers in a shared space in the network, wherein the shared space is created by interaction of executable codes in a host and a user application and the shared space is described by a session attribute list; loading a media application with a plurality of tools into one or more user computers; using a stage manager tool from the media application to stage and correlate a plurality of media-layers according to spatial, temporal and relational coordinate data in the user application, wherein the media-layers data are described by at least one file descriptor inputting multi type content including one or more of text documents, graphic images, video images, audio or data files into the shared space; and providing templates to create pages with specific layouts, providing plug-ins for each type content; and displaying the content by computers in the shared space in one of a synchronous or asynchronous mode; and searching additional resource information, providing converters for displaying the book including: permitting collaboration among users and providing automatic page updating using searched resource information; and tracing associated user and searched resource information changes to the book.
A computer system for creating a collaborative book in a shared network space comprising: a means for accessing one or more user computers in a shared space in the network, wherein the shared space is created by interaction of executable codes in a host and a user application and the shared space is described by a session attribute list; an executable media application code with a plurality of tools into one or more user computers; a means for inputting multi type content including one or more of text documents, graphic images, video images or data files into the shared space; a stage manager tool from the media application to stage and correlate a plurality of media-layers according to spatial, temporal and relational coordinate data in the user application, wherein the media-layers data are described by a file descriptor inputting multi type content including one or more of text documents, graphic images, video images or data files into the shared space; and a display for displaying the content by computers in the shared space in one of a synchronous or asynchronous mode; executable code for providing (a) templates to create pages with specific layouts, (b) plug-ins for each type content for searching additional resource information, (c) converters for displaying the book including: including a means for permitting collaboration among users and providing automatically created page updates using searched resource information; and tracing associated user and searched resource information changes made to the book.
The invention also relates to a method wherein the media application is a Flash application, Java application or browser based scripts.
The invention also relates to a method of a user moving pages in the book between one or more books in a library and to/from a website on the World Wide Web.
The invention also relates to a method of using a template to permit content creators to decide where to place the content within a book; using the template to dynamically swap in and out pages within the book as dictated by the use to which the books are put; and using the template to permit the use of one or more of dynamic buttons and plug-in features such that users of the book may access books that reside within a library of books.
The invention further relates to methods for publishing the book, storing the book in a library for publication, embedding the master book into in any web property, embedding into the master book an autonomous software agent to trigger one of the creation, duplication and/or publication of copies of the book and filtering to moderate and filter input, viewing permission, copying and publication.
BRIEF DESCRIPTION OF THE DRAWINGS
Understanding of the present invention will be facilitated by consideration of the following detailed description of the preferred embodiments of the present invention taken in conjunction with the accompanying drawings, in which like numerals refer to like parts, and wherein:
FIG. 1A depicts the embodiments of a system to create a session in shared spaces for the collaborative web-based media-layered platform in a network environment in accordance with an embodiment of the invention;
FIG. 1B illustrates the system initiation to create a session of collaboration in media-layers in accordance with an embodiment of the invention;
FIG. 1C1 is an embodiment of a system illustrating the process of establishing and operating a session within a user application such as a web browser using various tools in an application in accordance with an embodiment of the invention;
FIG. 1C2 illustrates another embodiment of various components of a Flash application tools interacting with the user's media-layers during a session in accordance with an embodiment of the invention;
FIG. 1D is a screen shot illustrating the construct of a page as a collection of media-layers in a Book metaphor in accordance with an embodiment of the invention;
FIG. 1E illustrates an example of a media-layer as a container for an application or plug-in to create media object elements within the media-layer in accordance with an embodiment of the invention;
FIGS. 1F and 1F1 illustrate the construct and functionality of a Book metaphor and a page using media-layers and metaphor specific tools in accordance with an embodiment of the invention;
FIG. 1G illustrates an example of staging and synchronizing media-layers using a Flash application tool for the construct of a page as a collection of media-layers in accordance with an embodiment of the invention;
FIG. 2A illustrates an example of collaborative actions in a web conferencing environment in accordance with an embodiment of the invention;
FIG. 2B illustrates an example of synchronizing an annotation of a drawing in a shared space through various input devices in accordance with an embodiment of the invention;
FIG. 3A to 3E depicts various functions and features of the invention in creating a collaborative multimedia platform in accordance with an embodiment of the invention;
FIG. 4 is a flow chart depicting a method to collaborate a web browser based media-layered session in a network environment in accordance with an embodiment of the invention;
FIG. 5a depicts a diagram illustrating the states of various functions of the invention for creating a collaborative multimedia platform in accordance with an embodiment of the invention;
FIG. 5b depicts a diagram illustrating the states of various functions of the invention for creating a collaborative multimedia platform in accordance with an embodiment of the invention;
FIG. 6 depicts a flow chart for performing various functions of the invention in creating a collaborative multimedia platform in accordance with an embodiment of the invention;
FIG. 7a depicts a browser with various functions and features for creating a collaborative multimedia platform in accordance with an embodiment of the invention;
FIG. 7b depicts a browser with various functions and features for creating a collaborative multimedia platform in accordance with an embodiment of the invention;
FIG. 7c depicts a browser with various functions and features for creating a collaborative multimedia platform in accordance with an embodiment of the invention;
FIG. 8 is a system to collaborate using a web browser based media-layered session in a network environment in accordance with an embodiment of the invention;
FIG. 9 depicts a flow chart of a method for creating a collaborative multimedia platform in accordance with an embodiment of the invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
The following description includes the best mode of carrying out the invention. The detailed description is made for the purpose of illustrating the general principles of the invention and should not be taken in a limiting sense. The scope of the invention is determined by reference to the claims. Each part is assigned, even if structurally identical to another part, a unique reference number wherever that part is shown in the drawing figures.
The present invention, relates to the field of collaborative computing, and more particularly, to a system and method for providing a browser-based program to create, and configure a shared space whereby multiple users can access this shared space to perform tasks and interact such as input, modify text and delete images, drawings and other multimedia via media-layers in a real-time synchronous manner. A shared space is defined as a virtual reference point whereas multiple users can interact in real-time upon shared objects. It is a conceptual construct created by processing executable computer codes from a plurality of programs or plug-ins typically using Flash Virtual Machine (VM) or Java VM. A session is defined as the state of all objects, GUI tools and controls, and media-layers, at any given time within the shared space. Each media-layer can serve as a container for shapes and objects as well as other programs such as a text editor, thumbnail viewer, MP3 player, games, etc. The invention also allows which media-layer(s) to display via organization metaphors and filtering criteria. The invention also allows for offline or unsynchronized interaction with objects of a session. Offline events are recorded for later integration with the session.
FIG. 1A of the present invention relates to a distributed web based conferencing system, apparatus and method, which includes at least one central processing computer or computer network server. FIG. 1A depicts the basic foundation of the invention of system 100A to create a session 140 in shared spaces 140a to 140c for multiple users to collaborate on a web-based platform with created media-layers 141a to 141c within a network 112 environment. The system 100A is derived from four main components. Client or user computer(s) 130 to 134, host server 170, database 104 storage device, file storage 108 which is accessible through a web server 106. Each component may be on the same computer or separate computers. It is not necessary that each computer is of the same OS, nor CPU, type. Servers 150, 160 include at least one controller (not shown) or central processing unit (CPU or processor), at least one communication port or hub, at least one random access memory (RAM), at least one read-only memory (ROM) and one or more databases such as database 104 or data storage devices 108. All of these later elements are in communication with respective CPUs to facilitate the operation of the host server 170. The server 170 may be configured in many different ways. For example, host server may be a conventional standalone server computer or alternatively, the function of server may be distributed across multiple computing systems and architectures.
Server 170 also may be configured in a distributed architecture, wherein databases and processors are housed in separate units or locations. Some such servers perform primary processing functions and contain at a minimum, a RAM, a ROM, and a general controller or processor. In such an embodiment, each of these servers is attached to a communications hub or port that serves as a primary communication link with other servers such as web server 106, or user computers (e.g., 130, 132, 134) and other related devices. The communications hub or port may have minimal processing capability itself, serving primarily as a communications router establishing a corresponding link 119 with the web server 106. A variety of communications protocols may be part of the system, including but not limited to: Ethernet, SAP, SAS™, ATP, Bluetooth, GSM and TCP/IP.
Data storage devices such as file storage 108 may include a hard magnetic disk drive, optical storage units, CD-ROM drives, or flash memory. Data storage devices contain databases such as database 104 used in processing transactions and/or calculations in accordance with the present invention, including at least a user subscriber database and a user content database. In one embodiment, database software creates and manages these databases. Conference related calculations and/or algorithms of the present invention are stored in storage device and executed by the corresponding CPU.
The controller comprises a processor, such as one or more conventional microprocessors and one or more supplementary co-processors such as math co-processors. The processor is in communication with a communication port through which the processor communicates with other devices such as other servers, user terminals or devices. The communication port may include multiple communication channels for simultaneous communication with, for example, other processors, servers or client terminals. As stated, devices in communication with each other need not be continually transmitting to each other. On the contrary, such devices need only transmit to each other as necessary, may actually refrain from exchanging data most of the time, and may require several steps to be performed to establish a communication link between the devices.
The processor also is in communication with a data storage device. The data storage device may comprise an appropriate combination of magnetic, optical and/or semiconductor memory, and may include, for example, RAM, ROM, flash drive, an optical disc such as a compact disc and/or a hard disk or drive. The processor and the data storage device each may be, for example, located entirely within a single computer or other computing device; or connected to each other by a communication medium, such as a USB port, serial port cable, a coaxial cable, an Ethernet type cable, a telephone line, a radio frequency transceiver or other similar wireless or wired medium or combination of the foregoing.
The data storage device may store, for example, (i) a program (e.g., computer program code and/or a computer program product) adapted to direct the processor in accordance with the present invention, and particularly in accordance with the processes described in detail hereinafter; (ii) a database adapted to store information that may be utilized to store information required by the program. The database includes multiple records, each record including fields specific to the present invention such as membership rates, subscribers, sessions, etc.
The program may be stored, for example, in a compressed, an uncompiled and/or an encrypted format, and may include computer program code. The instructions of the program may be read into a main memory of the processor from a computer-readable medium other than the data storage device, such as from a ROM or from a RAM. While execution of sequences of instructions in the program causes the processor to perform the process steps described herein, hard-wired circuitry may be used in place of, or in combination with, software instructions for implementation of the processes of the present invention. Thus, embodiments of the present invention are not limited to any specific combination of hardware and software.
Suitable computer program code may be provided for performing numerous functions such as alternative steps of invention. The computer program code required to implement the above functions (and the other functions described herein) can be developed by a person of ordinary skill in the art, and is not described in detail herein.
The term “computer-readable medium” as used herein refers to any medium that provides or participates in providing instructions to the processor of the computing device (or any other processor of a device described herein) for execution. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media include, for example, optical or magnetic disks, such as memory. Volatile media include dynamic random access memory (DRAM), which typically constitutes the main memory. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, an EPROM or EEPROM (electronically erasable programmable read-only memory), a FLASH-EEPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read.
Various forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to the processor (or any other processor of a device described herein) for execution. For example, the instructions may initially be borne on a magnetic disk of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over an Ethernet connection, cable line, or even telephone line using a modem. A communications device local to a computing device (or, e.g., a server) can receive the data on the respective communications line and place the data on a system bus for the processor. The system bus carries the data to main memory, from which the processor retrieves and executes the instructions. The instructions received by main memory may optionally be stored in memory either before or after execution by the processor. In addition, instructions may be received via a communication port as electrical, electromagnetic or optical signals, which are exemplary forms of wireless communications or data streams that carry various types of information.
Server 170 of the present invention may also interact and/or control one or more user devices or terminals (e.g., 130, 132, 134). The user device or terminal may include any one or a combination of a personal computer, a mouse, a keyboard, a computer display, a touch screen, LCD, voice recognition software, or other generally represented by input/output devices required to implement the above functionality. The program also may include program elements such as an operating system, a database management system and “device drivers” that allow the processor to interface with computer peripheral devices (e.g., a video display, a keyboard, a computer mouse, etc.).
The shared spaces 140a to 140c emulate and share the contents of the session 140 where executable computer codes in both the client or user computers 130 to 134 and the host 102. The executable codes in each computer may be different, but the intended results of the invention are achieved. The state of the session 140 is maintained on the host 102 during a live session 140 then the database 104 at the end of a session. All client or user computers 130 to 134 that are logged into a session 140 are constantly updated with changes to the session 140 in real time. If permissions are granted, any client can initiate a change to the state of the live session. Once this change has been sent, all client computers 130 to 134 are updated with the change.
The system 100A comprises of a host 102 in synchronous communication with one or more user computers 130 to 134. In an embodiment, the host is a server in communication with a database 104; where the host is also in communication with a web server 106 that communicates with a file storage 108. The database 104 can be in a separate server, or can be part of the host 102 within the same server 150. Similarly, the web server 106 and the file storage 108 can be separate units or can be integrated into a server 160. Yet in another embodiment, a host 170 is a server including the functions of the database 104, the web server 106 and the file storage 108. The physical location of the database 104, file storage 108 and the method of writing the computer executable codes being integrated into the host server 102 is not important to the invention as long as the functions are accessible to the host 102 and to the user computers 130 to 134.
In an embodiment, each of the user computers 130 to 134 has an operating system 142a to 142c such as the Microsoft Windows XP®, Linux®, Macintosh OSX® or any third party operating system. The operating system in each of the user computers 130 to 134 need not be the same as long as it supports a web browser or other application to access the internet and supports the execution of codes to facilitate the intended media functions of the invention. In another embodiment, compiled Flash VM executable codes of the application 110 are downloaded before the creation of a shared space 140a to 140c to each of the user computers 130 to 134 from the host session 140 through the network 112 and links 124 to 128. Yet in another embodiment, the application 110 can be native to each of the user computers 130 to 134 as media applications 110a to 110c.
One or more media layers 141a to 141c are created and respective media tools are from media applications 110a to 110c is generated by the interaction of the codes in the user computers 130 to 134 and the codes from the host server 180. The network 112 and the corresponding links 114, 118, 120 to 128 are part of the Wide Area Networks (WAN), Local Area Network (LAN) through Ethernet connections or wireless connections. Yet in other embodiments, the network and the links can be Local Optical Networks (LON) or direct fiber optic links or direct terminal connections or plain old telephone service (POTS). In all forms of link communications within the network 112, the communications can be enhanced with known encryption protocols to improve security.
All services as contained within the host server 180 are equipment selected from the list to include a server, work station, personal computer, laptop computer, Personal Digital Assistant (PDA), an Intelligent Electronic Device (IED) or any suitable computing platform with sufficient memory and processing power to perform the functions as a server in a network environment. The user computers 130 to 134 are equipment selected from the list to include a server, work station, terminal, personal computer, lap top computer, Personal Digital Assistant (PDA), electronic tablet, handheld wireless device, a cellular phone, an Intelligent Electronic Device (IED) or any suitable computing platform with sufficient memory and processing power to perform the functions as a user computer to perform media inputs in a network environment.
Yet in others embodiments, the system 100A can be extended to include broad applications such as web conferencing, local conference presentations projecting synchronized annotations or pointing tool to contents on multiple screens to mass audience, on line interactive courses and tutoring, live interactive interviews to multiple interviewees in different geographical locations, interactive debate forums using multimedia, interactive cellular phone chats and games, secured synchronized interactive voting method combined with secured voter identification, live military battlefield operational command, remote interactive clinical instructions and operation training procedure; and electric power utility interactive service, support and trouble shooting etc. Said examples and the contents desired for the execution of said example can be assembled before and during synchronized events. Content can also be made available in an unsynchronized fashion such that independent content review or read only publishing can be supported.
FIG. 1B illustrates the system 100B initiation to create a session 140 of collaboration in media-layered 141d to 141f within space 140d that holds media elements 115a, tools 110d (Flash application tools) or plug-ins 115b and 115c. Plug-ins 115b and 115c are independent applications that must conform to the system\'s API 143a, 143b as well as be compatible with the system\'s runtime environment. For example, if the client system is a macromedia Flash application, then the plug-in 115b and 115c must also be a Flash application. Said plug-ins 115b and 115c can be accessible either locally from the client computer 136, or through a local connection, or a network 112a. A plug-in 115b or 115c can, however, manage the execution of the tools of an application not of the same executable code base as the client application. For example, a Flash plug-in 115b or 115c can manage the execution of the Java application as relevant to the client computer 136.
The host 102a first sends a base application that provides a synchronizing connection between that user 136 and the host 102a. A standard socket connection is established. Should this fail, High Ports are tested for the ability to exchange data. Should this fail, ports 80 and 81 are checked via standard HTTP protocols. Once a connection by links 114a and 124a from the user 136 to the host 102a has been established, the host 102a will send a list of required application tools 110d to be loaded by the user computer 136. By only loading those tools 110d that are required, the system in the user\'s computer 136 will start faster with a lower memory requirement. Should the user choose to run in ‘thin’ mode, those tools 110d that are only needed on demand will be loaded into memory during their use and unloaded after their use is no longer required.