[go: up one dir, main page]

WO2001039046A1 - SYSTEME D'INTERFAçAGE DE PROGRAMMES COMPLEMENTAIRES ET D'UN NAVIGATEUR WEB - Google Patents

SYSTEME D'INTERFAçAGE DE PROGRAMMES COMPLEMENTAIRES ET D'UN NAVIGATEUR WEB Download PDF

Info

Publication number
WO2001039046A1
WO2001039046A1 PCT/US2000/032171 US0032171W WO0139046A1 WO 2001039046 A1 WO2001039046 A1 WO 2001039046A1 US 0032171 W US0032171 W US 0032171W WO 0139046 A1 WO0139046 A1 WO 0139046A1
Authority
WO
WIPO (PCT)
Prior art keywords
plug
program
web browser
interface
parameters
Prior art date
Application number
PCT/US2000/032171
Other languages
English (en)
Inventor
Hilmar Petursson
Original Assignee
Oz.Com
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oz.Com filed Critical Oz.Com
Priority to AU20465/01A priority Critical patent/AU2046501A/en
Publication of WO2001039046A1 publication Critical patent/WO2001039046A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation

Definitions

  • the present invention relates generally to computer networks, and more specifically to a system for integrating and unifying plug-in programs for web browsers.
  • Web browser programs are used by network client computers to access content on the World Wide Web portion of the Internet.
  • a web browser communicates over the Internet with web server computers using the Hypertext Transfer Protocol (HTTP).
  • HTTP Hypertext Transfer Protocol
  • the web browser program allows a user to access web pages on different server computers through hypertext links to these pages.
  • the web browser program then formats and displays these pages on the client computer.
  • Early web browser programs only allowed the access and display of simple web pages comprising text or simple graphical content.
  • Present web browser programs are substantially more powerful and allow access to many different types of content, such as complex graphics, streaming audio, streaming video, and other types of content.
  • browser based programming languages such as Java® and ActiveXTM, allow the incorporation of computer programs in web pages. This allows web pages to be dynamic and interactive, rather than simply a passive display application.
  • a plug-in program is a computer program that integrates with the web browser and extends the capabilities of web browser program in a specific way.
  • plug-in programs are available that provide the ability to play audio samples or view video movies from within a web browser.
  • plug-in programs There are presently hundreds of plug-in programs available for the two most popular web browsers, Netscape NavigatorTM and Microsoft Internet ExplorerTM, and several dedicated web sites have been created just to list and allow downloading of popular plug-in programs.
  • Plug-in programs allow a user to access a wide variety of browser enhancements by simply downloading the program and, in some cases, decompressing the program and/or running an installation script.
  • Most current web browsers include facilities that manage and organize the various plug-in programs that a user has downloaded.
  • the web browser integration system comprises an application framework that is used to produce custom applications. Certain interfaces are defined that application components must implement in order to function within the interface framework.
  • the web browser interface system contains a script engine that reads application scripts and automatically installs the components needed over the Internet. The interface system then plugs these components together according to instructions in the script and handles communication and interaction between them within the application.
  • the plug-in integration framework is currently available as a plug-in program itself, or as a standalone application.
  • Figure 1 illustrates a computer network system that implements one or more embodiments of the present invention
  • Figure 2 illustrates a functional block diagram of the plug-interface process within a web browser application environment, according to one embodiment of the present invention
  • Figure 3 illustrates how the web browser program communicates with the plug-in interface host through either the web browser interface function, according to one embodiment of the present invention.
  • the steps of accessing, downloading, and manipulating the data, as well as other aspects of the present invention are implemented by central processing units (CPU) in the server and client computers executing sequences of instructions stored in a memory.
  • the memory may be a random access memory (RAM), read-only memory (ROM), a persistent store, such as a mass storage device, or any combination of these devices.
  • Execution of the sequences of instructions causes the CPU to perform steps according to embodiments of the present invention.
  • the instructions may be loaded into the memory of the server or client computers from a storage device or from one or more other computer systems over a network connection.
  • a client computer may transmit a sequence of instructions to the server computer in response to a message transmitted to the client over a network by the server.
  • the server receives the instructions over the network connection, it stores the instructions in memory.
  • the server may store the instructions for later execution, or it may execute the instructions as they arrive over the network connection.
  • the downloaded instructions may be directly supported by the CPU.
  • the instructions may not be directly executable by the CPU, and may instead be executed by an interpreter that interprets the instructions.
  • hardwired circuitry may be used in place of, or in combination with, software instructions to implement the present invention.
  • the present invention is not limited to any specific combination of hardware circuitry and software, nor to any particular source for the instructions executed by the server or client computers.
  • Figure 1 illustrates a computer network system 100 that implements one or more embodiments of the present invention.
  • a network server computer 104 is coupled, directly or indirectly, over line 125 to one or more network client computers 102 through a network 110.
  • the network interface between server computer 104 and client computer 102 may also include one or more routers that serve to buffer and route the data transmitted between the server and client computers over line 121.
  • Network 110 may be the Internet, a Wide Area Network (WAN), a Local Area Network (LAN), or any combination thereof.
  • WAN Wide Area Network
  • LAN Local Area Network
  • the server computer 104 is a World- Wide Web (WWW) server that stores data in the form of 'web pages' and transmits these pages as Hypertext Markup Language (HTML) files over the Internet network 110 to the client computer 102.
  • WWW World- Wide Web
  • the client computer 102 typically runs a "web browser" program 1 14 to access the web pages served by server computer 104 through a web server process 116.
  • web browser 114 can also be used to access data 108 served by other network servers, such as content provider 103. Examples of commercially available web browsers 114 that are executed by network client 102 include Internet ExplorerTM by Microsoft® Corporation of Redmond, Washington and Netscape NavigatorTM by Netscape Communications® of Mountain View, California.
  • client 102 executes a plug-in interface process 105 that represents an application framework that allows the development of custom applications and provides an interface through which native and non-native plug-in programs 127 can be managed and executed within the web browser program 114.
  • the plug-in interface process 105 may represent one or more executable program modules that are stored within client computer 102 and executed by the client computer. Alternatively, however, it may be stored on a remote storage or processing device coupled to client 102 or network 110 and accessed by the client 102 to be locally executed.
  • the plug-in interface process 105 may be implemented in a plurality of different program modules, each of which may be executed by two or more distributed server computers coupled to each other, or to network 110 separately.
  • network server 104 executes a web server process 116 to provide HTML documents, typically in the form of web pages, to client computers coupled to network 110.
  • client computer 102 runs a web client process (typically a web browser, such as Netscape NavigatorTM or Microsoft ExplorerTM) 114 that accesses web pages available on server 104 and other Internet server sites, such as content provider 103 (which may also be a network server executing a web server process).
  • a network system 100 that implements embodiments of the present invention may include a larger number of interconnected client and server computers than shown in Figure 1.
  • the client computer 102 may access the Internet network 110 through an Internet Service Provider (ISP) 107.
  • ISP Internet Service Provider
  • network server computer 104 can be implemented as any standard computer that includes a central processing unit (CPU) coupled through a bus to various other devices. These devices could include random access memory (RAM), a read only memory (ROM), and mass storage devices (e.g., a magnetic disk, optical compact disk, or tape drive for storing data and instructions).
  • RAM random access memory
  • ROM read only memory
  • mass storage devices e.g., a magnetic disk, optical compact disk, or tape drive for storing data and instructions.
  • the computer also typically includes input/output devices, such as, a display device, keyboard, and network interface device, along with other similar devices or interfaces. Any of the computers in Figure 1 could be implemented in the form of personal computers, laptop computers, mainframe computers, or other type of workstation computers.
  • the computers in Figure 1 could also be implemented in the form of portable or miniaturized computing devices, such as handheld personal digital assistants (PDA), including devices that communicate with other devices on the network over a wireless medium.
  • the client computer can also be implemented as a dedicated Internet client, such as a television that includes Internet access.
  • Such clients are typified by the WebTVTM system.
  • the web browser plug-in interface process 105 includes software components that are implemented to facilitate the creation and integration of various plug-in programs.
  • the plug-in programs 127 may represent application programs that are written specifically for the plug-interface process ("native" plug-ins), and/or plug-in programs that are generic or not specifically written for the plug-in interface process ("non-native" plug-ins).
  • the plug-in interface process 105 includes software components that allow non-native plug-ins to be adapted for use with the plug-in interface process.
  • the plug- in interface process is part of an overall web browser application environment that can be used to produce custom applications for use within web browser 114.
  • the custom applications can be deployed either as standalone applications or web browser (e.g., Netscape Navigator or Internet Explorer) plug-ins.
  • the plug-in interface process includes a script that describes several parameters of the custom application.
  • the overall application environment consists of a set of plug-ins 127, an application script and the interface program available either as a standalone executable program, and/or as a web browser plug-in with an HTML page to define the application user interface.
  • the plug-in interface process 105 is also able to install the custom application over the Internet and update it at the binary level with small update files called "patches".
  • the plug-in interface process 105 is divided into two parts. The first part is a single instance core, and the second part is a multiple instance plug-in host.
  • the multiple instance plug-in host serves to host the plug-in programs and provide access to the features provided by the single instance core.
  • the single instance core couples the plug- in programs together according to parameters from an application script file and/or an HTML page and the execution context and hosting services
  • plug-ins accessible through a web page are the essentially same plug-in program. Parameters from the page then specify which particular plug-in the interface should host within the space reserved by the HTML code for the web page. In this manner, several different plug-in programs can be connected or interfaced with one another to form a uniform application with respect to the web browser.
  • the plug-in interface allows plug-ins to be mixed with bitmaps and other display entities and spread around a web page while still functioning logically together. In this manner, customized user interfaces can be quickly developed.
  • FIG. 2 illustrates a functional block diagram of the plug-in interface process 105 within a web browser application environment, according to one embodiment of the present invention.
  • the web browser application 200 represents a model in which a set of plug-in programs and services are connected together in a web browser page.
  • a running instance of the web browser application is associated with a particular context. More than one instance of an application can exist in a single process.
  • the web browser application 200 includes two individual web pages 204 and 206. Each web page represents a separate context of a running instance of the web browser program. An instance of an application is associated with a particular context.
  • web page 204 and web page 206 each depict separate and unique contexts of the plug-in interface process.
  • Figure 2 illustrates an example in which the plug-in interface process is implemented as part of a web browser process, it should be noted that the plug-in interface process could also be implemented as a stand-alone program executed on the client computer.
  • Each web page 204 and 206 include one or more plug-in programs.
  • web page 204 includes plug- in programs 212, 214, and 216. These can be native plug-ins that represent named objects. As such, they can receive parameters upon start up of the web page instance.
  • a second type of plug-in is a hidden plug-in 208. This plug-in is not specified on a web page, but is created in a hidden window by core-installer 210 according to a parameter specified by the web browser plug-in interface 202.
  • the core- installer 210 is a special purpose plug-in that installs and patches applications and instantiations of the plug-ins as needed.
  • the web browser plug-in interface 202 represents a single instance core of the interface process.
  • the plug-in interface 202 includes one or more services, which are invisible static objects that communicate with the plug-ins for the web page contexts. The services do not receive parameters upon start-up.
  • the web browser application 200 creates all controls on a web page in an arbitrary order. Once the control has been loaded it has the option of reading parameters from the page before it gets the actual handle of the window that has been reserved for it. When a web browser opens a page containing what appears to be multiple instances of the plug-in interface controls, it starts loading them one by one. When the web browser loads the first control, the single instance core of the plug- in interface 202 is created.
  • Each plug-in entity within the web browser application 200 includes a browser interface that allows communication with the web browser program.
  • the web browser interface for each plug-in is labeled "NP and AX" These represent communication means to the web browser though either an ActiveX (AX) interface in the case of Microsoft Internet Explorer, or the Netscape Plug- in Application Programming Interface (NP) in the case of Netscape Navigator.
  • FIG. 3 illustrates how the web browser program communicates with the plug-in interface host through either the web browser interface function, according to one embodiment of the present invention.
  • the plug-in interface host 306 acts as an interface between the browser and the plug-in 308 it is hosting. This enables a plug-in to function inside both types of browsers since they are not directly hosted by the browser, but rather inside an interface host that takes care of translating calls from the browser to the plug-in interface.
  • Various web-page parameters 302 are passed to the plug-in 308 through the plug-in interface 306.
  • the plug-in host is created once the single instance core 202 has been created. As illustrated in Figure 3, the plug- in host reads three key parameters from the web page, these are labeled, "Name", "ClassID", "Connect”. These parameters instruct the plug- interface process what control to put in the space reserved for a plug-in program.
  • the plug-in interface process requests the core-installer plug-in 210 to create an instance of a native plug-in (e.g., plug-in 212) with a plug-in Type ID equal to the ClassID.
  • a native plug-in e.g., plug-in 212
  • plug-in Type ID e.g., plug-in 212
  • the plug-in interface process looks at the Name and Connect parameters.
  • the Connect parameter (optional) contains one or more names of other plug-ins that this particular plug-in wishes to connect to.
  • the plug-in host sends all connection requests to the single instance core.
  • the single instance core builds a list of connection requests for each plug-in.
  • plug- in 214 wishes to connect to plug-in 216, it can only receive a connection to plug-in 216 within the same execution context. That is, the same execution context in a web page (e.g., web page 204) of the web browser. No connections between execution contexts are allowed.
  • each plug-in interface application must include the core-installer attributed according to its needs, thus, as shown in Figure 2, each web page 204 and 206 includes a core- installer plug-in. For a web page, this is done by placing the core-installer on the web page and giving it parameters specifying the application attributes. For a stand-alone application, this is done by containing it and attributing it in the standalone executable.
  • the core-installer parameters that define an application are: Script, AppName, Version and View. AppName is the name of the application.
  • the core-installer looks for a key by this name under a registry to find the location of the application content.
  • the script parameter specifies the URL (Uniform Resource Locator) to the application script.
  • the version parameters specifies the lowest version of the AppName application needed to load the application.
  • the View parameter specifies the name of a view section in the application script that defines what hidden plug-ins should be created by the core- installer. Hidden plug-ins have the access to the same features as visible plug-ins. The difference is that they are hosted by the core-installer in a hidden window instead of being hosted by a regular plug-in host.
  • plug-ins can be "torn" from a web page, by moving the plug-in from its embedded location on the web page to a separate window that can be moved around and resized.
  • the plug-in interface process can also incorporate a file manager service that allows plug-ins to load application content with out having to know the physical location on the client computer.
  • the interface process can include a persistent property manager that allows plug-ins to persist in a particular state in key-value pairs.
  • the data can either be persisted on the client computer or on a separate persistence server.
  • Example Plug-In Application The following description provides an example of how a simple application is built using the plug-in interface, according to one embodiment of the present invention.
  • the application is a small chat application consisting of five separate plug-in programs, a logic plug-in, an input field, an output field, a user list plug-in, and a sound engine plug-in.
  • the application also uses four small sound files that are played on certain events in the chat application. To play these files, the chat application uses the sound engine plug-in.
  • the application is deployed in a web browser so an HTML page is also provided.
  • the output field plug-in is a generic list control plug-in that accepts three parameters, direction, font, and color.
  • the direction parameter specifies whether new lines to the history should be added from the bottom or the top.
  • the font parameter specifies in what font lines in the history list should be rendered, and the color parameter specifies the color of the lists box background.
  • the input field plug is a generic input control that accepts two parameters, font and color. The font parameter specifies the font in which the input should be rendered, and the color parameter specifies the color of the input box background.
  • the logic plug-in contains the actual logic for the chat application. It handles server connection and the organization of users into chat groups.
  • the logic plug-in accepts 3 parameters, login, password, and server.
  • the login parameter is a string specifying the user's login ID.
  • the password login is a string specifying the user's password, and server specifies the name of the server to connect to.
  • the user list plug-in displays a list of all the users that are currently chatting.
  • This plug-in accepts no parameters.
  • the sound engine is a plug-in capable of playing sound files, it also takes care of mixing the different play requests that the plug-ins that connect to it make.
  • the sound engine up-samples or down-samples the play requests when needed.
  • This plug-in accepts three parameters, SamplesPerSec, channels, and BitsPerSecond.
  • the SamplesPerSec parameter specifies the bit rate at which the sound should be played.
  • the channels parameter selects between mono or stereo mode, and the BitsPerSecond parameter specifies 8-bit or 16-bit resolution.
  • an information file is compiled.
  • the information file contains several sections in a file format denoted by a SectionName.
  • Pseudo-Code for an information file for the example chat application is provided in Appendix A of this specification.
  • the HTML page for the application is defined.
  • the user interface consists of two web pages.
  • the first web page comprises a page that allows a user to enters his login and password.
  • the second web page provides a page in which the user inputs and sees the chat session in progress.
  • Microsoft Active Server pages are used to read the HTTP headers.
  • this example could easily be converted to use regular CGI or some other web application model.
  • OPIUM_ClassId " ⁇ e05923b0-9cb8-l Idl-a58c-00a0c91e530e ⁇ ”
  • Script "http://www.oz.com/install/chat/bl2/Chat.ozi”
  • AddParam adds parameters to a global array called OPIUM_params.
  • InsertControl adds a control to a page and gives it the parameters from the param array and clears the param array.
  • Chat.asp is the page where the user engages in the actual chat. Chat.asp reads parameters from the HTTP POST header from login.html and gives the controls parameters according to that. Pseudo-code for the chat example is provided below. Note that the code below specifies a page that does not include any aesthetics elements common to HTML programming.
  • OPIUMServices This is done to give the idea that there is nothing magic about the names of the instance.
  • the instance name is used when reporting events from this plug-in to the user. All connections are also done on the instance name. It is the GUID that gives the type of an Opium plug-in.
  • view tells the Corelnstaller plug-in that it should create all the hidden plug-ins in section Chat. view (that is where our logic plug-in and Sound Engine plug-in are listed).
  • the logic plugin connects to it from the application script file. We just have to make sure that the name here is the same as the one the logic plug-in is trying to connect to from the OZi file.
  • the plug-in specific parameters tell the output plug-in to have chat history to flow bottom up, type of the font and the background color.
  • the plug-in specific parameters tell the output plug-in the type of the font and the background color.
  • the next step is deployment.
  • three cabinets are created. These cabinets are as follows: chat.cab, stdplugs.cab and sound.cab. These are put in the information file, Chat.ozi.
  • chat.asp A user wanting to use the chat application will open the login.html in the web browser. There he will enter his login and password and submit the form which gets posted to chat.asp.
  • the asp engine executes the scripts specified in chat.asp and servers the HTML to the browser.
  • the browser parses the HTML given to it and for each reference embedding it, gives it the parameters.
  • the object is always the same object, because of the single instance shared logic, and it builds up a list of all the plug-ins that are needed.
  • the plug-in interface process is requested to create the core-installer plug-in, it creates and gives it the list of the plug-ins that need to be created.
  • the core-installer plug-in stops adding to the list of plug-ins to create and just forwards them to the core- installer as the requests are made.
  • the core-installer plug-in When the core-installer plug-in is created, it reads in the AppName, Script, Version and View. It starts by checking if the application by the name. If the AppName is found, the core-installer searches for the FileRoot string value under that key and reads the path entered there. If all these checks are passed, the core-installer plug-in is ready to create all the plug-ins
  • the application section contains information about the application. "name" is the name of the application, the Corelnstaller plug-in matches this name with the parameter from the web page and if a match occurs then it uses this script as an application script.
  • “version” is the application version.
  • the Corelnstaller plug-in matches the parameter from the web page with this one. If the parameter on the web page is the same or lower the Corelnstaller plug- in knows that the application is up to date and it is safe to start creating plug- ins .
  • views usually contains a list of fields that each specifies a name of a view section. In our case there is only one view available . This is the view section specified above in the application section. It specifies what hidden plug- ins and services should be available in this particular view.
  • hidden contains a list of fields that each specify a name of a section that defines attributes of the hidden plug-in.
  • chat logic plug- in contains a list of services that should be available to applications displaying this view of the application.
  • SoundEngine plug- in contains a list of services that should be available to applications displaying this view of the application. In our case we only have one service, the File anager that we need to allow plug-ins to locate the content (the sound files) on the users computer.
  • chat logic This is one of our hidden plug-in, the chat logic.
  • all of its parameters are specified in the application script, this is unusual, normally parameters that are session oriented, like login and password come from the web page. These parameters are put here to show how parameters in the script are over ridded on the web page . Having these parameters here also gives the option of creating a simple web page allowing users to enter chat sessions on the default server "chat.oz.com” with out having to create a form for them to login. In that case all the user would bear the same name, "incognito”.
  • OPIUM_ClassId the type identifier for the plug-in. It can not be overridden from the web page.
  • OPIUM_Name a human readable name for this particular instance of the OPIUM_ClassId plug- in. This name is for example used when connecting plug- ins together.
  • OPIUM_Connect can be overridden from the web page. Specifies a list of fields that each name a plug-in that this plug-in wishes to receive a pointer to, when each plug- in is created the single instance part of OPIUM checks if there is any plug-in that has asked for a connection this newly created plug-in. If so the plug-in that asked for the connection will get a call to its Connect function of IOZPlugin interface with an IUnknown pointer to the newly created plug- in. Then the ; plug-in wanting the connection usually queries the
  • the logic plug-in does not connect to the input plug-in.
  • the input connects to the logic because events flow from the input and to the logic not the other way around.
  • Password a plug-in specific a parameter
  • Server a plug-in specific a parameter
  • This section contains a list of lines that each defines an URL where the installation image can be found. If the Corelnstaller plug- in needs to do an install before, plug-ins can be created, it loops through all of the lines until it finds the cabinet it is looking for. In our case, there is only one URL so if the installation image can not be found there the installation will fail . [PatchFiles] http : //www. oz . com/Opium/install/Chat/patches/12tol3. rtp
  • This section contains a list of lines that each defines an URL to a patch file. If the Corelnstaller plug- in needs to do an upgrade to the application before it can start creating plug- ins it uses these URL to find a patch file to update the application. In our case we have ; only one possible patch file location, if the patch is not found there the only resort is a complete install from the locations specified in the
  • Defaultlnstall is an install section. Install sections contain information about the nature of an installation. An application script can specify many install section that each have different instructions in the. The install sections are referred to by a parameter to the Corelnstaller. The Name Defaultlnstall is a special one because that does not need to be referred to from the web page. If no section is specified, Defaultlnstall is used.
  • RequiredDiskSpace defines the amount of free disk space the drive that the users selects to install to, needs to contain to make the installation. This is the work space the installation needs, not necessarily the amount the application will take after the installation is complete. That is usually lower than the work space needed as cabinets can be deleted after they have been extracted.
  • CopyFiles contains a list of fields that each is a name of a copy-file-section.
  • the Corelnstaller plug- in downloads and installs all the sections that are listed here. In our case we ask that two copy-file-sections be installed, Chat . app and Chat . content .
  • Additional Register contains a list of field that each is a name of an add-reg-section.
  • the Corelnstaller plug-in will add all lines specified in the add-reg-sections to the registry. In the case of our Chat application, we ask that only the Chat . reg section be added to the registry.
  • Chat . app is a copy-file-section as we see in the Defaultlnstall section above.
  • Copy-file-sections contain a list of lines that each have two fields, the name of the cabinet and its estimated size. The Corelnstaller plug-in tries to download each cabinet from any of the
  • This copy-file-section lists two cabinets to install.
  • chat. cab here we put CLogic.dll file that contains the logic plug-in and the user list plug-in.
  • StdPlugs .cab here we put stdplugs.dll that contains, among others, the input plug- in and the output plug- in. We also put the SndEng.dll in this cabinet. Actually we could just have one cabinet here and put both dlls into that cabinet. We put our dlls in different cabinets to better show possibilities of a copy file section.
  • Add- reg-sections contain a list of lines that the Corelnstaller plug- in should add to the registry. Each line in the list consist of 5 fields, they are: 0. specifies under what root key the entry should be added, possible values are: "HKCR” , "HKCU” , "HKLM” and HKU.
  • the DestinationDirs section contains information about the destination that each cabinet in a copy-file-section should be extracted to. It consists of a list of lines that bear the name of their respective copy-file-sections. The first field in each line is a number, each number has a special meaning to the Corelnstaller plug- in:
  • 1 is the application directory as selected by the user.
  • 11 is the windows system directory on the computer.
  • the second field contains a relative path under the destination directory.
  • both the copy-file-sections in our chat application are to be extracted to the user selected application directory.
  • all cabinets in the Chat . content section should go in a subdirectory . sound under the user selected directory.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)

Abstract

L'invention concerne un système d'interfaçage de programmes complémentaires et d'un navigateur Web. Le système d'intégration du navigateur Web comprend un cadre d'application utilisé pour produire des applications personnalisées. Certaines interfaces sont définies en vue de leur mise en oeuvre par des composants d'application, de façon à pouvoir fonctionner dans le cadre de l'interface. Le système d'interfaçage du navigateur Web contient un moteur de macro-instruction qui lit des macro-instructions d'application et installe automatiquement les composants nécessaires par Internet. Le système d'interfaçage connecte ensuite les composants ensemble conformément aux instructions de la macro-instruction et gère la communication et l'interaction entre ces composants au sein de l'application. Le cadre d'intégration du programme complémentaire est actuellement disponible comme programme complémentaire ou comme application autonome.
PCT/US2000/032171 1999-11-24 2000-11-22 SYSTEME D'INTERFAçAGE DE PROGRAMMES COMPLEMENTAIRES ET D'UN NAVIGATEUR WEB WO2001039046A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU20465/01A AU2046501A (en) 1999-11-24 2000-11-22 Web browser plug-in interface system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16732799P 1999-11-24 1999-11-24
US60/167,327 1999-11-24

Publications (1)

Publication Number Publication Date
WO2001039046A1 true WO2001039046A1 (fr) 2001-05-31

Family

ID=22606910

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/032171 WO2001039046A1 (fr) 1999-11-24 2000-11-22 SYSTEME D'INTERFAçAGE DE PROGRAMMES COMPLEMENTAIRES ET D'UN NAVIGATEUR WEB

Country Status (2)

Country Link
AU (1) AU2046501A (fr)
WO (1) WO2001039046A1 (fr)

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1310868A2 (fr) * 2001-10-24 2003-05-14 Sun Microsystems, Inc. Méthode et appareil pour un module indépendant de plateforme
WO2003073830A2 (fr) * 2002-03-07 2003-09-12 Koninklijke Philips Electronics N.V. Procede d'adaptation d'une architecture a modules d'extension pour des applications de traitement d'images de laboratoire d'echocardiographie numerique
FR2838841A1 (fr) * 2002-04-22 2003-10-24 Mitsubishi Electric Corp Appareil et procede de communication, et procede de commande de modules d'extension.
WO2004066053A2 (fr) * 2003-01-17 2004-08-05 Sap Aktiengesellschaft Extensions de programmes d'ordinateurs composites
EP1444591A1 (fr) * 2001-11-01 2004-08-11 Yahoo! Inc. Procede et systeme facilitant l'acces automatique a un site du web a l'aide d'un navigateur internet
EP1444627A2 (fr) * 2001-11-01 2004-08-11 Yahoo! Inc. Procede et systeme facilitant les achats en ligne utilisant un navigateur internet
EP1426883A3 (fr) * 2002-12-02 2005-09-28 Ncr International Inc. Système et procédé permettant la communication entre un navigateur web et un agent logiciel
US7185333B1 (en) 1999-10-28 2007-02-27 Yahoo! Inc. Method and system for managing the resources of a toolbar application program
EP1818820A1 (fr) * 2006-02-03 2007-08-15 Research In Motion Limited Système et procédé d'installation de services personnalisés sur une plate-forme d'application à base de composants
RU2319309C2 (ru) * 2003-08-07 2008-03-10 Самсунг Электроникс Ко., Лтд. Аудио/видеоустройство, устройство и способ для управления аудио/видеоустройством
US7412655B2 (en) 2004-11-02 2008-08-12 Yahoo! Inc. Method and system of providing dynamic dialogs
US7506260B2 (en) 2003-10-31 2009-03-17 Yahoo! Inc. Method and system of providing browser functionality through a browser button
EP2122452A2 (fr) * 2007-02-14 2009-11-25 Datacard Corporation Cadre d'applications pour la production améliorée de documents personnalisés
US7676762B2 (en) 1998-10-28 2010-03-09 Yahoo! Inc. Method of controlling an Internet browser interface and a controllable browser interface
WO2010049317A1 (fr) * 2008-10-30 2010-05-06 Caps Entreprise Procédé de réalisation d'un appel d'une instance d'une fonction, dispositif, et programme d'ordinateur correspondant.
US7721228B2 (en) 2003-08-05 2010-05-18 Yahoo! Inc. Method and system of controlling a context menu
US7788603B2 (en) 1999-10-28 2010-08-31 Yahoo! Inc. Method and system of facilitating automatic login to a web site using an Internet browser
US7793227B2 (en) 2003-08-12 2010-09-07 Yahoo! Inc. Method and system of providing customizable buttons
CN103064663A (zh) * 2012-11-19 2013-04-24 北京百度网讯科技有限公司 浏览器插件的生成、发布、加载和更新方法以及系统
CN103177095A (zh) * 2013-03-15 2013-06-26 成都三零凯天通信实业有限公司 一种嵌入式浏览器及其实现方法
US8555176B2 (en) 2007-03-12 2013-10-08 Microsoft Corporation Third party menus for enabling collaboration
US8631335B2 (en) 2010-10-25 2014-01-14 International Business Machines Corporation Interactive element management in a web page
US8762976B2 (en) 2007-03-09 2014-06-24 Microsoft Corporation Static extensibility models with dynamic languages and scripts
US20150019497A1 (en) * 2013-07-10 2015-01-15 Oracle International Corporation Database diagnostics interface system
RU2638727C2 (ru) * 2012-12-17 2017-12-15 Гуанчжоу Юсивеб Компьютер Технолоджи Ко., Лтд Метод и устройство запуска внешнего приложения в браузере
CN116450383A (zh) * 2023-06-19 2023-07-18 合肥景云软件工程有限责任公司 一种通过网页调用操作系统的方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5958008A (en) * 1996-10-15 1999-09-28 Mercury Interactive Corporation Software system and associated methods for scanning and mapping dynamically-generated web documents

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5958008A (en) * 1996-10-15 1999-09-28 Mercury Interactive Corporation Software system and associated methods for scanning and mapping dynamically-generated web documents

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"HOW PLUG-INS PLUG IN", WWW PLUG-INS COMPANION,XX,XX, 1996, pages 15 - 21, XP002911311 *
LANCIE DE P: "WEB ANIMATION, AUDIO, AND VIDEO WITH EMBED", WEB TECHNIQUES,US,MILLER FREEMAN, April 1998 (1998-04-01), pages 65 - 67, XP000783668, ISSN: 1086-556X *

Cited By (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7676762B2 (en) 1998-10-28 2010-03-09 Yahoo! Inc. Method of controlling an Internet browser interface and a controllable browser interface
US7712033B2 (en) 1998-10-28 2010-05-04 Yahoo! Inc. Method of controlling an Internet browser interface and a controllable browser interface
US7185333B1 (en) 1999-10-28 2007-02-27 Yahoo! Inc. Method and system for managing the resources of a toolbar application program
US9324080B2 (en) 1999-10-28 2016-04-26 Yahoo! Inc. Method and system of facilitating on-line shopping using a downloadable toolbar
US7788603B2 (en) 1999-10-28 2010-08-31 Yahoo! Inc. Method and system of facilitating automatic login to a web site using an Internet browser
EP1310868A2 (fr) * 2001-10-24 2003-05-14 Sun Microsystems, Inc. Méthode et appareil pour un module indépendant de plateforme
EP1310868A3 (fr) * 2001-10-24 2007-05-09 Sun Microsystems, Inc. Méthode et appareil pour un module indépendant de plateforme
EP1444591A1 (fr) * 2001-11-01 2004-08-11 Yahoo! Inc. Procede et systeme facilitant l'acces automatique a un site du web a l'aide d'un navigateur internet
EP1444627A2 (fr) * 2001-11-01 2004-08-11 Yahoo! Inc. Procede et systeme facilitant les achats en ligne utilisant un navigateur internet
EP1444627A4 (fr) * 2001-11-01 2006-04-12 Yahoo Inc Procede et systeme facilitant les achats en ligne utilisant un navigateur internet
EP1444591A4 (fr) * 2001-11-01 2007-06-06 Yahoo Inc Procede et systeme facilitant l'acces automatique a un site du web a l'aide d'un navigateur internet
WO2003073830A3 (fr) * 2002-03-07 2004-05-21 Koninkl Philips Electronics Nv Procede d'adaptation d'une architecture a modules d'extension pour des applications de traitement d'images de laboratoire d'echocardiographie numerique
WO2003073830A2 (fr) * 2002-03-07 2003-09-12 Koninklijke Philips Electronics N.V. Procede d'adaptation d'une architecture a modules d'extension pour des applications de traitement d'images de laboratoire d'echocardiographie numerique
FR2838841A1 (fr) * 2002-04-22 2003-10-24 Mitsubishi Electric Corp Appareil et procede de communication, et procede de commande de modules d'extension.
EP1426883A3 (fr) * 2002-12-02 2005-09-28 Ncr International Inc. Système et procédé permettant la communication entre un navigateur web et un agent logiciel
US7263697B2 (en) 2003-01-17 2007-08-28 Sap Aktiengesellschaft Composite computer program extensions
US7870549B2 (en) 2003-01-17 2011-01-11 Sap Ag Composite computer program extensions
WO2004066053A3 (fr) * 2003-01-17 2004-11-25 Sap Ag Extensions de programmes d'ordinateurs composites
WO2004066053A2 (fr) * 2003-01-17 2004-08-05 Sap Aktiengesellschaft Extensions de programmes d'ordinateurs composites
US7721228B2 (en) 2003-08-05 2010-05-18 Yahoo! Inc. Method and system of controlling a context menu
RU2319309C2 (ru) * 2003-08-07 2008-03-10 Самсунг Электроникс Ко., Лтд. Аудио/видеоустройство, устройство и способ для управления аудио/видеоустройством
US9342141B2 (en) 2003-08-07 2016-05-17 Samsung Electronics Co., Ltd. Audio/video device, apparatus and method for controlling audio/video device
US8504637B2 (en) 2003-08-07 2013-08-06 Samsung Electronics Co., Ltd. Audio/video device, apparatus and method for controlling audio/video device
US7793227B2 (en) 2003-08-12 2010-09-07 Yahoo! Inc. Method and system of providing customizable buttons
US7506260B2 (en) 2003-10-31 2009-03-17 Yahoo! Inc. Method and system of providing browser functionality through a browser button
US7412655B2 (en) 2004-11-02 2008-08-12 Yahoo! Inc. Method and system of providing dynamic dialogs
EP1818820A1 (fr) * 2006-02-03 2007-08-15 Research In Motion Limited Système et procédé d'installation de services personnalisés sur une plate-forme d'application à base de composants
US8381236B2 (en) 2007-02-14 2013-02-19 Datacard Corporation Framework for enhanced production of personalized documents
EP2122452A4 (fr) * 2007-02-14 2011-11-30 Datacard Corp Cadre d'applications pour la production améliorée de documents personnalisés
EP2122452A2 (fr) * 2007-02-14 2009-11-25 Datacard Corporation Cadre d'applications pour la production améliorée de documents personnalisés
US8762976B2 (en) 2007-03-09 2014-06-24 Microsoft Corporation Static extensibility models with dynamic languages and scripts
US8555176B2 (en) 2007-03-12 2013-10-08 Microsoft Corporation Third party menus for enabling collaboration
FR2938091A1 (fr) * 2008-10-30 2010-05-07 Caps Entpr Procede de realisation d'un appel d'une instance d'une fonction, dispositif, programme d'ordinateur correspondant
WO2010049317A1 (fr) * 2008-10-30 2010-05-06 Caps Entreprise Procédé de réalisation d'un appel d'une instance d'une fonction, dispositif, et programme d'ordinateur correspondant.
US8631335B2 (en) 2010-10-25 2014-01-14 International Business Machines Corporation Interactive element management in a web page
CN103064663A (zh) * 2012-11-19 2013-04-24 北京百度网讯科技有限公司 浏览器插件的生成、发布、加载和更新方法以及系统
CN103064663B (zh) * 2012-11-19 2016-03-09 北京百度网讯科技有限公司 浏览器插件的生成、发布、加载和更新方法以及系统
RU2638727C2 (ru) * 2012-12-17 2017-12-15 Гуанчжоу Юсивеб Компьютер Технолоджи Ко., Лтд Метод и устройство запуска внешнего приложения в браузере
CN103177095A (zh) * 2013-03-15 2013-06-26 成都三零凯天通信实业有限公司 一种嵌入式浏览器及其实现方法
US20150019497A1 (en) * 2013-07-10 2015-01-15 Oracle International Corporation Database diagnostics interface system
US9842127B2 (en) 2013-07-10 2017-12-12 Oracle International Corporation Database diagnostics interface system
US9547675B2 (en) * 2013-07-10 2017-01-17 Oracle International Corporation Database diagnostics interface system
CN116450383A (zh) * 2023-06-19 2023-07-18 合肥景云软件工程有限责任公司 一种通过网页调用操作系统的方法

Also Published As

Publication number Publication date
AU2046501A (en) 2001-06-04

Similar Documents

Publication Publication Date Title
WO2001039046A1 (fr) SYSTEME D'INTERFAçAGE DE PROGRAMMES COMPLEMENTAIRES ET D'UN NAVIGATEUR WEB
US6347398B1 (en) Automatic software downloading from a computer network
US6802061B1 (en) Automatic software downloading from a computer network
US5958013A (en) Apparatus, methods and computer program products for conducting a persistent session with a host-based application
US6014702A (en) Host information access via distributed programmed objects
US6691176B1 (en) Method for managing client services across browser pages
US6301590B1 (en) Method and apparatus for formatting and displaying data from the internet
US6546554B1 (en) Browser-independent and automatic apparatus and method for receiving, installing and launching applications from a browser on a client computer
US5754830A (en) Server and web browser terminal emulator for persistent connection to a legacy host system and method of operation
US6665860B1 (en) Sever-based method and apparatus for enabling client systems on a network to present results of software execution in any of multiple selectable render modes
US7617275B2 (en) Method and apparatus for terminal server addressability via URL specification
JP4849692B2 (ja) ポータブル・ポートレットを選択および配信する方法ならびに装置
US20060156315A1 (en) Method, computer-readable medium and apparatus for providing a graphical user interface in a client-server environment
US20040068554A1 (en) Web service-enabled portlet wizard
EP0889420A2 (fr) Système et méthode de gestion de média pour l'accès à de multiples types de média
US20040010598A1 (en) Portal setup wizard
US20030119386A1 (en) Method and system for installing server-specific plug-ins
US20010003824A1 (en) Bootstrapping technique for distributed object client systems
US20020109717A1 (en) Customizing a graphical user interface of a host application
US6944827B2 (en) System and method of data transmission for computer networks utilizing HTTP
US20060053411A1 (en) Systems, methods, and computer readable media for consistently rendering user interface components
US6216101B1 (en) Server and terminal emulator for persistent connection to a legacy host system with client token authentication
CA2437273C (fr) Canal reseau permettant d'acceder a des services de transmission de donnees
US7069275B2 (en) Method and apparatus for restricted run-time environment with dynamic user context
US7263696B1 (en) Dynamic web based jar file finder

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: COMMUNICATION PURSUANT TO RULE 108(1) EPC EPO FORM 1205A

122 Ep: pct application non-entry in european phase