Embodiment
Disclosed architecture allows SGML (for example HTML) page to be convenient to content (for example text string, object, audio frequency, video etc.) is inserted in the application program that input method is attached to.Adopt this mode, add-in developer can use homepages language (for example HTML) to realize any UI (user interface) outward appearance and behavior, such as the html page of rule the ability with the Back end data sources traffic, and use suitable technique to realize this mode.Because webpage is stored in the webserver and is in operation and is downloaded to client, it is minimum therefore installing and the user can be easily and automatically obtain up-to-date version.
Agent components is implemented on the client, and receives the data that execution produced by the code in the SGML that is embedded in webpage.Through adding extra Agent components to FTP client FTP, can for the clients corresponding application program in FTP client FTP adjusted more data type.
Referring now to accompanying drawing, all identical label is used to represent identical element in the accompanying drawing.In the following description, in order to describe, a lot of details have been set forth so that complete understanding of the present invention is provided.Yet, obvious, can not have to implement each novel embodiment under the situation of these details.In other cases, show known structure and equipment so that describe them with the block diagram form.The present invention will be contained spirit and interior all modifications, equivalents and the alternative of scope that falls into theme required for protection.
Fig. 1 illustrates the computer implemented content system 100 according to disclosed architecture.System 100 comprises that the input method assembly 102 that is attached to application program 104 thinks that application program 104 provides basic input method function 106; And the Agent components 108 that is used to receive the data 110 of the network documentation 112 that causes adding the additional function 114 (for example input method function) that provides by data 110, this attachment function 114 is offered application program 104 indirectly through the embedding code of handling in the network documentation 112 116.
Network documentation 112 can be to comprise the webpage that embeds code 116, and this embeds code 116 and when carrying out, generates data 110.Embedding code 116 can use the programming language (for example script) of any appropriate to write and be embedded in the SGML such as HTML.Network documentation 112 can be stored on the webserver and be downloaded to client browser 118, and this client browser 118 is handled or caused handling embedding code 116 to generate data 110 and additional input methodological function 114 therefore.
Generally speaking, network documentation 112 is based on the additional function 114 (like data 110) of being convenient to replenish automatically application program 104 alternately of user and network documentation 112.The product of additional function 114 (for example text, image etc.) is provided for application program 104 then.Can use URL (unified resource addressing device) protocol processor mechanism from network documentation 112, to call Agent components 108.For example, additional function 114 comprises text and such as in the objects such as image, audio frequency and/or video at least one.
In other words; Computer implemented content system 100 comprises the input method assembly 102 that be used for to application program 104 provide basic input method function 106 relevant with application program 104; And with 102 relevant being used for of input method assembly from input method assembly 102 notification received Agent components 108, this Agent components 108 provides additional function 114 with the form of the data that generated by the code in the webpage (for example network documentation 112) 116 to application program 104.
Agent components 108 receives data 110 from the browser of handling the code in the webpage.When the code 116 in the webpage of Agent components 108 is called in browser 118 operation, generate additional functions 114 through data 110.Agent components receives the identifier relevant with input method assembly 102.Agent components 108 these identifiers of registration and come the route of specified data 110 based on the identifier of registration.Agent components 108 is convenient to utilize the data 110 of specific data type.In addition, Agent components 108 is convenient to at least one the form in character, word, phrase or the complex object data 110 are input in the application program 104, and wherein application program 104 is language application programs.
Fig. 2 is illustrated in is convenient to flow process Figure 200 of communicating by letter between assembly and the entity of content through network documentation input.Application program 104 can be the program of on client computer, moving, and input method assembly 102 is attached to application program 104.Agent components 108 can be the local code of installation and operation on client computer.Flow process Figure 200 illustrates, and in this example, network documentation is can be by the html page 202 of add-in developer establishment.For example, html page 202 comprises the embedding code 116 among the Fig. 1 that writes with script, and during with convenient browser execution code 116, the data of generation form the additional input methodological function that is offered application program 104 by input method assembly 102.Notice and to use other technology to write the program code that is embedded among the HTML.
Add-in developer can development and agency assembly 108 and is made user's installation agent assembly 108 on the local client computing machine.When particular event took place in input method assembly 102, Agent components 108 was from input method assembly 102 reception notifications 204.In addition, Agent components can be called from html page 202 by URL protocol processor 206.
Data stream can be unidirectional, and the network documentation from web browser is to Agent components to the input method assembly and finally arrive application program.Agent components uses identifier (also being called as ticket or token) to identify which input method component instance to send data.Agent components is known the identifier of input method assembly in advance.Identifier can be pushed to Agent components from the input method assembly.
In a realization, no matter when application program is obtained the focus (perhaps application window moves to prospect) of user interactions, and the relevant input method assembly of application program pushes to Agent components with its identifier (also being called as event notice).Each the input method assembly that is attached to Any Application can at any time push to Agent components with its identifier.Agent components is remembered the identifier of last registration.
At any time (when not with when the input method assembly pushes to the event synchronization of Agent components) can call Agent components from network documentation.When being called, Agent components uses the identifier of last registration to locate relevant input method component instance.
In web browser, open network documentation in advance, open web browser such as waiting with the particular network document of opening in response to the selection from the url list of liking, input method assembly with any possible mode.In case be opened, network documentation can be all input method component instance services.Therefore, input method component instance and network documentation must not be 1 to 1 ratios.The single instance of the software keyboard that for example, appears on the desktop can be used for working with required Any Application or a plurality of application program.
In operation, when particular event took place, input method assembly 102 sends notified 204 (identifier) to Agent components 108.Agent components 108 can or cannot call html page 202 as triggering with these incidents.Incident comprises " ticket " information.Ticket information can be The Component Object Model (COM) interface pointer of application program 104, input method 102 or other machine-processed handgrip that Agent components 108 can use after a while, is used to find appropriate application (application program 104) and/or input method.In other words, but the compatible with proxy assembly that client computer can use a plurality of different input methods assemblies and be used for special-purpose.Embodiments herein has also been described the scene of the difference agency's who has a plurality of Agent components or be suitable for each client application single input method assembly
Html page 202 can be opened in web browser and provided by browser.The developer can write any required html page and from the html page with suitable parameter, call the URL protocol processor 206 of registration.As response, Agent components 108 is unlocked, and receives parameter from html page 202.Because Agent components 108 knows together with notifying the 204 ticket information of sending, so the ticket data that receives based on notifying in 206 of Agent components is communicated to the additional input methodological function 208 that application program 104 and input method assembly 102 produce with the data of adding by html page 202.
In case Agent components 108 is installed on the client computer; The developer can that is to say any renewal that need not be applied to client computer through making a change or improve and change or improve the input method assembly function being stored in the html page 202 in the webserver code that embeds.This provides the convenience and effective architecture that is used for automatically upgrading and disposing additional function.
Notice that the content that offers application program 104 is not limited to content of text.With the simplest form, with the most simply acting on behalf of, content can be a text string.In more complicated realization; Agent components 108 can be designed as and when from html page 202, calling Agent components 108, sends metadata to the certain applications program; And in response to receiving metadata, application program 104 can be inserted complicated object (for example image) to itself.In essence, this is based on " contract " between application program 104 and the Agent components 108.As indicated above, a plurality of different Agent components can be used for specific use.Therefore, numerous different data types may be added to custom system.
The use of HTML and network browsing technology is server end Already in.When using script and user's browsing page among the HTML in the webserver, html page is downloaded to client browser from server.The scripted code that the client browser operation embeds is to generate data.Therefore, the user need not install client, and only need open the html page in the server simply.Agent components can be installed to be local code on client.Whenever client when server is downloaded corresponding more new web page, the program code that is downloaded to client browser before in the web document can automatically be upgraded.
Agent components definition of data type.In case data type is defined and relevant agency is mounted, the agency generally will not need to upgrade continually.But the data of data type can change, and the Data Generator of this data type (encoding in the webpage) can dynamically change.Therefore, because the mode of SGML (for example HTML) through the storage of server end for example and script (for example java script) has been described the maker of data, this maker can be by change easily.As indicated above, SGML is not limited to HTML, but can be available appropriate technology in the browser.
Characteristic that can adopted operating system is the URL protocol processor.This technology can be mapped to executable file (" exe ") with URL.For example, URL can have with " http: ", the format string of beginning such as " mailto: " or " ftp: ".Operating system can comprise prefix that this is a string, inspection is gone here and there and the mechanism that passes control to the executable application programs of registration transmitted.For example, if URL begins with " http: ", then operating system will be opened executable browser.In another example, if URL begins with " mailto: ", then operating system is opened messaging program (for example Email).
Operating system can also comprise the characteristic that allows this ability of Agent components expansion, so that can combine any executable file registration and define any prefix string.This mechanism is used to register required prefix string to Agent components.
In html page, when user's unlatching had this URL of prefix, operating system was opened the carried out agency of registration.When acting on behalf of assembly and be called, utility command line parameter, Agent components receive the complete URL string that begins with prefix.For example, if html page comprises " < prefix >: xyz ", wherein < prefix>can be " http ", " ftp " and " mailto " etc., and then Agent components receives the string of " < prefix >: xyz " in the command line parameter.If each html page wants to transmit string " xyz " to Agent components, then html page comprises " < prefix >: xyz ".Agent components is unlocked and receives string " < prefix >: xyz " then, so as Agent components can through known " < prefix >: " of deletion part extract string " xyz ".
When acting on behalf of assembly reception string " xyz ", Agent components and application program are used and are sent and receive the agreement of going here and there.The very basic protocol that can be used is that the WM_CHAR from a window transmission character to another window (is used for Windows
TMOperating system).If Agent components sends WM_CHAR message to the application program (WM_CHAR that for example has parameter x; And then be the WM_CHAR that has the WM_CHAR of parameter y and have parameter z), then application program reception " x " and then is that " y " and then imports for the keyboard of " z ".Therefore, all application programs can be handled this message after reception, and import the document that " xyz " handling to application program.That is exactly basic agent model.Therefore, if desired, can and register numerous different Agent components with the different protocol realization.
In more senior agent model, photo, video, image, sound etc. can be pushed to application program.In this example, user application can use the predefined private treaty that is used for optimum operation with the agency.In realizing more specifically, can be concrete client application exploitation customization agency.
On client machine, numerous application programs can be arranged, and each application program and attached input method assembly operation, but Agent components is a single instance.The input method assembly is signaled the Agent components Agent components will send a message to for which application program.When the user pushed button in numerous possible application programs, the input method assembly was remembered the application program that the user is mutual, and the operating system processing of this application program is sent to Agent components.Afterwards, Agent components uses and should handle to send message.This only is an example, because other method can be used for the application program that identification message is sent to.
Disclosed architecture is found the particularly suitable property for the language (for example Japanese, Chinese, Arabic, Latin language etc.) that for example uses the character that does not appear usually on the suitable keyboard.In another was realized, disclosed architecture can be used for inserting word and/or phrase through the single selection that is helped by input equipment (for example mouse, keyboard etc.), and this is inaccessiable through keyboard.
Fig. 3 illustrates first client configuration 300 that is used to add additional function to application program.For example, in first client configuration 302, the first input method assembly 304 is used the basic input method function that is provided by the first input method assembly 304 to utilize by first application program 306.Point at any time, the first input method assembly 304 is through coming login ID to first Agent components 308 to the notice of first Agent components 308.When starting, first webpage 310 calls first Agent components 308.First webpage 310 comprise write with programming language (for example javascrpt) and be embedded in the embedding code 312 in the SGML such as HTML.Alternatively, can use other suitable network document language.
Client browser is used for the webserver (not shown) of the webpage of multiple different purposes and downloads first webpage 310 from storage.First webpage 310 is opened in client browser, and the client browser operation embeds code 312.The execution output of code 312 passes to the data of first Agent components 308 through protocol processor.First Agent components 308 routes to first application program 306 with data then and is used for the first additional input methodological function 310 in 306 insertions of first application program and use with interpolation.
Fig. 4 illustrates second client configuration 400 that is used to add additional function to application program.Here, single Agent components 402 supports to be used for the data type of the input method assembly of two application programs and two correspondences on the client machine.The second input method assembly 404 is associated (for example being attached to) with second application program 406, and the 3rd input method assembly 408 is associated (for example being attached to) with the 3rd application program 410.The second input method assembly 404 and the 3rd input method assembly 408 are to Agent components 402 registrations (sending notice), and active application program (for example in the prospect of user interactions) is indicated in last registration.
412: the second webpages 414 of two webpages and the 3rd webpage 416 are shown.When second webpage 414 was downloaded and handled by client browser, browser execution caused calling the embedding code 418 of Agent components 402.The execution of the code 418 of client browser generates the data that pass to Agent components 402, and Agent components 402 is the add-on application function based on the input method assembly (the for example second input method assembly 404) of last registration with the data route.The data of for example, coming from 414 transmission of second webpage can be used as add-on application function 422 and are sent to second application program 406.
Similarly, when the 3rd webpage 416 was downloaded and handled by client browser, browser execution caused calling the embedding code 420 of Agent components 402.The execution of the code 420 of client browser generates the data that pass to Agent components 402, and Agent components 402 is the add-on application function based on the input method assembly (for example the 3rd input method assembly 408) of last registration with the data route.The data of for example, coming from 416 transmission of the 3rd webpage can be used as add-on application function 424 and are sent to the 3rd application program 410.
In agent architecture, can conceive, Agent components can be developed to the support that provides single input method assembly (the for example second input method assembly 404), and subsequently to the support of two client applications.Application program (406 and 410) and relevant input method assembly (404 and 408) are based on the application program and the Agent components 402 of client.Webpage (414 and 416) is based on disposing to be used for convenient and effective renewal of server.
One group of representative that included here is is used to carry out the process flow diagram of illustrative methods of the novel aspect of disclosed architecture.Although from explaining simple and clear purpose; For example be illustrated and be described as a series of actions here with the one or more methods shown in flow graph or the process flow diagram form; But be appreciated that and understand; The restriction of the order that each method is not moved, because according to the present invention, some action can be by taking place simultaneously with the different order of shown here and description and/or with other action.For example, those skilled in the art will be appreciated that and understand that method can be expressed as a series of state or incidents of being mutually related with being replaced, such as the form with constitutional diagram.In addition, be not the everything shown in the method all be novel realize necessary.
Fig. 5 illustrates through the content and method of browser input content in the application program.At 500 places, basic input method function is provided for application program.At 502 places, visit comprises the webpage of the embedding code of relevant add-on application function.At 504 places, the embedding code in the operation webpage is to obtain the add-on application function.At 506 places, add the add-on application function to application program.
Fig. 6 illustrates the others of the method for Fig. 5.At 600 places, embed code and describe and be embedded in script in the SGML in the webpage.At 602 places, be the follow-up execution embedding code of new web page more, and the add-on application function of upgrading be applied to application program based on the embedding code that upgrades.At 604 places, to agency of trademark registration the input method of basic input method function is provided, and via the agency add-on application function is routed to application program based on this registration.
Fig. 7 illustrates the others of the method for Fig. 5.At 700 places, mutual in response to webpage, the add-on application function automatically is added into application program.At 702 places, use trace information in a plurality of application programs, follows the tracks of with application program alternately.At 704 places, send trace information with notice and give Agent components.At 706 places, based on trace information, the add-on application function is added into corresponding application program.
As employed in this application, term " assembly " and " system " are intended to the entity of representing that computing machine is relevant, and it can be combination, software, or the executory software of hardware, hardware and software.For example; Assembly can be; But be not limited only to, the process of on processor, moving, processor, hard disk drive, a plurality of memory driver (optics, solid-state and/or magnetic storage medium) but, object executive item, the thread of operation, program, and/or computing machine.As explanation, the application program of on server, moving can be an assembly with this server both.One or more assemblies can reside in the thread of process and/or execution, and assembly can and/or be distributed between two or more computing machines on a computing machine.Word " exemplary " can be used for expression here as example, instance or explanation.Be described to aspect " exemplary " any or design might not be interpreted as and compares others or design more preferably or favourable at this.
With reference now to Fig. 8,, illustrates according to disclosed architecture and be convenient to block diagram through the computing system 700 of browser input content to application program.In order to be provided for the affix hereinafter of its each side, Fig. 8 and following discussion aim to provide the brief, general description to the suitable computing system 800 that wherein can realize each side.Although above description is in the general context of the computer executable instructions that can on one or more computing machines, move, to carry out; But person of skill in the art will appreciate that novel embodiment also can combine other program module and/or realize as the combination of hardware and software.
Be used to realize that the computing system 800 of each side comprises computing machine 802, it has processing unit 804, system storage 806 and system bus 808.Processing unit 804 can be any in the various commercially available processors, such as uniprocessor, multiprocessor, monokaryon unit and multinuclear unit etc.In addition; It will be appreciated by those skilled in the art that; Each novel method can be implemented with other computer system configurations; Comprise small-size computer, mainframe computer and personal computer (for example, desk-top, on knee etc.), hand-held computing equipment, based on microprocessor or programmable consumer electronics etc., its each all can in operation, be coupled to one or more associated device.
System storage 806 can comprise volatibility (VOL) storer 810 (for example, random-access memory (ram)) and nonvolatile memory (NON-VOL) 812 (for example ROM, EPROM, EEPROM etc.).Basic input/output (BIOS) can be stored in the nonvolatile memory 812, and comprises the basic routine such as Data transmission and signal between the assembly of being convenient between the starting period in computing machine 802.Volatile memory 810 can also comprise such as high-speed RAMs such as static RAM (SRAM)s and is used for cached data.
System bus 808 provides the system component that is used to include, but are not limited to memory sub-system 806 to the interface of handling unit 804.System bus 808 can be any in the some kinds of bus structure, and these bus structure also can use in all kinds of bus architectures that buy any to be interconnected to memory bus (have or do not have Memory Controller) and peripheral bus.
Computing machine 802 also comprises storage subsystem 814 and is used for the memory interface 816 of storage subsystem 814 interfaces to system bus 808 and other required computer module.Storage subsystem 814 can comprise one or more in for example hard disk drive (HDD), magnetic floppy disk (FDD) and/or the optical disc storage driver (for example, CD-ROM drive, DVD driver).Memory interface 816 can comprise such as, interfacings such as EIDE, ATA, SATA and IEEE 1394 for example.
One or more programs and data (for example can be stored in memory sub-system 806, removable memory subsystem 818; The flash drive form factor is technological) and/or storage subsystem 814 is (for example; Light, magnetic, solid-state) in, comprise operating system 820, one or more application program 822, other program module 824 and routine data 826.
For example; One or more application program 822, other program module 824 and routine data 826 can comprise input method assembly 102, application program 104, bottom line input method function 106, Agent components 108, additional function 114, data 110, browser 118, the network documentation 112 among Fig. 1 and embed code 116; Assembly among Fig. 2 and entity; Assembly among Fig. 4 and entity, and one or more actions of describing in the method for Fig. 5-7.
Generally speaking, program module comprises the routine carrying out particular task or realize particular abstract, method, data structure, other component software etc.The all or part of of operating system 820, application program 822, module 824 and/or data 826 also can be cached in such as in the storeies such as volatile memory 810.Should be understood that disclosed architecture can realize with the combination (for example, as virtual machine) of the operating system that can buy on the various markets or operating system.
Storage subsystem 814 and memory sub-system (806 and 818) are with acting on the volatibility of data, data structure, computer executable instructions etc. and the computer-readable medium of non-volatile memories.Computer-readable medium can be can be by any usable medium of computing machine 802 visit, and comprises volatibility and non-volatile media, removable and removable medium not.For computing machine 802, the storage of the data of the digital format that medium accommodating is suitable.Those skilled in the art should be understood that the computer-readable medium that can use other type, such as zip driver, tape, flash card, tape cassete etc., stores the computer executable instructions of the novel method that is used to carry out disclosed architecture.
The user can use such as external user input equipments 828 such as keyboard and mouse and computing machine 802, program and data interaction.Other external user input equipment 828 can comprise microphone, IR (infrared) telepilot, operating rod, game paddle, camera recognition system, stylus, touch-screen, posture system (for example, eye moves, head moves etc.) and/or analog.At computing machine 802 is under the situation of for example portable computer, and the user can use such as plates such as touch pads, microphone, keyboards and carry user input device 830 and computing machine 802, program and data interaction.These are connected to processing unit 804 through I/O (I/O) equipment interface 832 via system bus 808 with other input equipment; But also can connect, such as parallel port, IEEE 1394 serial ports, game port, USB port, IR interface etc. through other interface.I/O equipment interface 832 output peripherals 834 also easy to use is such as printer, audio frequency apparatus, camera apparatus etc., such as sound card and/or plate-carried audio-frequency processing power.
One or more graphic interfaces 836 (being also referred to as GPU (GPU) usually) provide computing machine 802 and external display 838 (for example, LCD, plasma) and/or plate to carry figure and vision signal between the display 840 (for example, for portable computer).Graphic interface 836 also can be used as the part of computer system board and makes.
Computing machine 802 can use via wire/wireless communication subsystem 842 to the logic of one or more networks and/or other computing machine be connected networked environment (for example, IP) in operation.Other computing machine can comprise workstation, server, router, personal computer, the amusement equipment based on microprocessor, peer device or other common network node, and generally includes the above many or all elements of describing with respect to computing machine 802.Logic connects the wire/wireless that can be included in Local Area Network, wide area network (WAN), focus etc. and connects.LAN and WAN networked environment are common in office and company, and have made things convenient for such as enterprise-wide. computer networks such as Intranets, and all these can be connected to such as global communications network such as the Internets.
When in networked environment, using; Computing machine 802 is connected to network via wire/wireless communication subsystem 842 (for example, network interface adapter, plate carry transceiver subsystem etc.) and communicates by letter with wire/radio network, wire/wireless printer, wire/wireless input equipment 844 etc.Computing machine 802 can comprise modulator-demodular unit or other device that is used for setting up through network communication.In networked environment, can be stored in the remote memory/storage device with respect to the program and the data of computing machine 802, as being associated with distributed system.It is illustrative that network shown in should be understood that connects, and can use other means of between computing machine, setting up communication link.
Computing machine 802 can be used for using such as radiotelegraphys such as IEEE 802.xx standard families communicates by letter with cable/wireless device or entity; But for example in operation, be placed in printer for example, scanner, desk-top and/or portable computer, PDA(Personal Digital Assistant), telstar, any one with wireless tags detected associated device or position (for example; Call box, newsstand, rest room) and the radio communication (for example, IEEE 802.11 aerial modulation techniques) of phone in wireless device.This comprises Wi-Fi (being Wireless Fidelity), WiMax and the bluetooth that is used for focus at least
TMWireless technology.Thus, communication can be like the predefine structure for general networks, perhaps only is self-organization (ad hoc) communication between at least two equipment.The Wi-Fi network use the radiotelegraphy be called IEEE 802.11x (a, b, g or the like) provide safety, reliably, wireless connections fast.The Wi-Fi network can be used for computing machine is connected to each other, is connected to the Internet and is connected to cable network (using IEEE 802.3 associated medias and function).
With reference now to Fig. 9,, the schematic block diagram of being convenient to through the computing environment of browser input content to application program is shown.Environment 900 comprises one or more clients 902.Client 902 can be hardware and/or software (for example, thread, process, computing equipment).For example, client 902 contextual information that can hold cookie and/or be associated.
Environment 900 also comprises one or more servers 904.Server 904 also can be hardware and/or software (for example, thread, process, computing equipment).Server 904 can be for example through using present architecture to hold thread to carry out conversion.A kind of possible communication between client computer 902 and the server 904 can be to be applicable to the form in data packets for transmission between two or more computer processes.For example, packet can comprise cookie and/or the contextual information that is associated.Environment 900 comprises can be used for making communication easier communications framework 906 (for example, such as global communications network such as the Internets) between client 902 and the server 904.
Communication can promote via wired (comprising optical fiber) and/or wireless technology.Client 902 can be connected to one or more client datas storage 908 in operation, can use these client datas to store the local information of client 902 (for example, cookie and/or the contextual information that is associated).Likewise, server 904 can be connected in operation and can be used for one or more server data stores 910 of the local information of storage server 904.
Each example that comprises disclosed architecture of more than describing.Certainly, the combination of describing each assembly that can expect and/or method is impossible, but the one of ordinary skilled in the art can recognize that many other combinations and arrangement all are possible.Therefore, this novel architecture is intended to contain change, modification and the variation in all these spirit that fall into appended claims and the scope.In addition, with regard to describe in detail or claims in use a technical term with regard to " comprising ", similar mode that this term is intended to be explained when " comprising " the transition speech in being used as claims with term is a comprising property.