Detailed description of the invention
Method, device (system) and calculating below with reference to the embodiment according to disclosed themeDescribed theme is described by flow chart and/or the block chart of machine program product.It will be appreciated that described flow processThe combination of the square in figure and/or the square of block chart and described flow chart and/or block chart can be byComputer program instructions realizes.These computer program instructions can be provided to general purpose computer,One or more process of special-purpose computer, tested processor or other programmable data processing meanssDevice is to produce machine, in order to by described computer or the processor of other programmable data processing meanssThe described instruction performed produces for realizing at one or more flow charts and/or block diagram block middle fingerThe device of fixed function/operation.
These computer program instructions can also be stored in guiding computer or other numbers able to programmePerform in the non-transient computer-readable medium of function in a specific way according to processing means, in order to storageDescribed instruction in described non-transient computer-readable medium produce one include realizing at one orThe goods of the command device of the function/operation specified in multiple flow charts and/or block diagram block.
Described computer program instructions also can be loaded at equipment, computer or other programmable datasReason device, with cause on described computer or other programmable devices perform sequence of operations step withProduce computer implemented process, thus the institute performed on described computer or other programmable devicesState instruction provide for realization specify in one or more flow charts and/or block diagram block function/The process of operation.
Close scrutiny patch (contrary with only rubberstamp patch) becomes extremely difficult, because ofGo above for patch and (revise, add or delete) about 100 row.When patch develops into 1,000 rowTime, large-scale patch generally cannot be understood as an entirety, also cannot understand the most each by examinerThe effectiveness of change.Additionally, cutline no longer be enough to describe the reason of all changes in patch.WhenWhen adding new features in code, this type of large-scale patch is the most common.
It is said that in general, compared with understanding the large-scale 1000 row patches performing all types operation, more10 patches easy to understand, each service packs contains 100 row function correlative codes and this part generation relevantThe explanation of the performed operation of code.
Therefore, the project requesting resolutely high-quality checking process should adhere to large-scale change is decomposed into oneThe patch that series is less.
Generally, as follows change should be split as patch: after applying each patch in order,Compile described code.Additionally, change should be split by this way: make it easy to explain respectively and manageSolve each patch.In some of the exemplary embodiments, developer can add to each small-sized patchIndividually explanation.
If project wishes to take to split large-scale patch so that the way examined, and use existing instrumentRealize this purpose, then generally will face obstacle.Developer is required to continue according to the requirement of examinerContinuous amendment code, and typically require reorganization fractionation so that it is easier to understand.Developer needsTo perform this operation, until code is finally accepted always.In some cases, iterative development is with carefulThe process looking into amendment can relate within the period that may comprise several weeks or even more time, to constantlyOne group of patch of development carries out many changes.
Therefore, the technical problem that disclosed theme processes is to provide a kind of mode easily, withKeep amendment is split as independent patch, still allow for changing this simultaneously and split and edit and test generationCode is without running into more trouble.
Do not have known method can be conveniently carried out this operation.Do not have the known instrument can be by large-scale patchBe split as being prone to the part followed the tracks of, and for manually split patch common tool (" diff ",The version control system of " patch " and Subversion or Git etc) above-mentioned major part is appointedBusiness is difficult to carry out.When having the patch of the large-scale change of multiple description, these instruments force developerThe context of single patch works, so that developer is difficult to the source code that will all reviseCheck that this is typically to be more fully understood that as an entirety, or carry out can splitting across multiple patchesAmendment is necessary.
Use existing instrument, when large-scale characteristic is created as multiple patches or safeguards, exploitationPersonnel be generally found themselves patch " bureaucratic system " aspect (the most repeatedly apply, edit,Distinguish, re-apply) time of spending is far more than the actual time write used by code.
A kind of technical solution is the source code lines using source code annotation instruction to associate with patch.?In some exemplary embodiment, annotation can be introduced in source code file.In addition or alternatively, criticizeNote can be in the outside of source code file the use being indicated to use appointment editing machine edited source codeFamily.
Another kind of technical solution be use in source code file pretreatment order as annotation, fromAnd when compiling source code file, do not compile the endorsed source code lines for deleting, and compile endorsedFor the source code lines added.
The one of disclosed theme has the technical effect that and makes it relatively easily safeguard and change multiple patchFractionation, and after the split continue editor and use code this all within the set time, veryAlso it is extremely such when having multiple patch.
Another kind has the technical effect that to be checked using whole source codes as an entirety and edits, and not onlyAs single patch file or revision.
In some of the exemplary embodiments, patch has dependency order, should safeguard that this order is so that energyEnough after each patch, compile described code.
Disclosed theme provides a kind of technical solution, wherein arranges source code with one group of patchAmendment, simultaneously allow user continue directly to process described source code.Disclosed theme also makes to useFamily can easily adjust patch and split (such as, to the new change of existing patch interpolation, shifting between patchDynamic change etc.).
With reference now to Figure 1A, illustrated therein is the computer of some exemplary embodiment according to this themeChange environment.Computerized environment 20 includes some developers (24,28,32).Described exploit personMember can be with joint development software product, program of such as increasing income.In some of the exemplary embodiments, describedDeveloper can away from each other and use computerization network 36(such as the Internet) communication.EachThe computer (such as, 33,34,35) of developer may be coupled to computerization network 36.
The amendment that developer 32 is carried out can be by least one other developers (such as administrative manMember, examination team etc.) examine, test or otherwise check.
With reference now to Figure 1B, illustrated therein is the single of some embodiment according to disclosed theme and openSend out the computerized environment of personnel (such as developer 32).
Developer can use the most in software realize and by the computer of developer (such as,35) editor utilities 110 performed is to edit the source code of computer program.Editing machine 110So that developer can indicate that the amendment associated from different patches, as be described below thatSample.In some of the exemplary embodiments, editing machine 110 can be general-purpose text editor.In addition orAlternatively, according to disclosed theme, editing machine 110 can by specific design and being configured to assist withThe source code amendment of different patch associations.
Developer can use the source code after compiler 120 compiling editor.In addition or alternatively,If need not or not support the middle source code that provides of the computer program (such as Perl) of compiling, thenCompiler 120 can be interpreter.Compiler 120 be operable to by generate executable file orSource code to be performed is prepared by performing source code itself.Compiler 120 can include pretreatmentDevice 125, it is operable to process pre-processing instruction, as known in the art.
Developer can use the most in software realize and by the computer of developer (such as,35) the patch maker 130 performed, generates one or more patches based on the source code after editor.
In some of the exemplary embodiments, and it is different from the other system for safeguarding patch series,Developer the most directly processes patch file.On the contrary, the source code automatically split from definition patch is criticizedNote creates patch file.Such as, developer can annotate several newlines of code, it is indicated that these rowBelong to the patch of entitled " patch1 ".Other row several are endorsed for belonging to " patch2 ".Then,When performing according to the instrument of disclosed theme, two patch files " patch1 " can be automatically created" patch2 " is to add these row.When developer wants to edit its change, or may closeAnd the two patch or when several row being split to new patch3 from patch1, these operations asEdit code and amendment annotation are the easiest.
Disclosed theme makes developer can process single source code, and is no longer necessary to oftenA series of longer diff, patch or Version Control order is processed between individual small editor.
The theme disclosed in the explanation of C language code snippet will be used.But, disclosed theme is notIt is limited to this programming language, and may be used for any type of source code.Consider following code snippet:
If developer wants to create following patch: adds copyright row in beginning, and prints relevantThe message of multiplication, then he by adding newline and can use annotation to complete this operation.Amended generationCode such as may is that
By using the theme disclosed in preprocessor statement displaying.But, disclosed theme does not limitIn this type of preprocessor statement, and the theme disclosed in any type of annotation utilization, bag can be usedInclude annotation, the predetermined structure of corresponding programming language, not by the pre-determined text lattice of corresponding programming language definitionFormula etc..In some of the exemplary embodiments, pretreatment order can be useful, because they are for compilingTranslate device and be provided on how to process the instruction of annotation, any type of compiler therefore can be used to compileSource code.In some of the exemplary embodiments, pretreatment order can be used by this way:During compiling, the application all modifications to source code.In this example, actually " #if1 " is to pre-placeThe code that reason device instruction will be added between #if and #endif instruction every time, therefore will add the institute of patchThe row increased, just looks like to apply this patch such for source code.
It will also be noted that, in some of the exemplary embodiments, annotation can in the outside of source code file alsoAnd can be stored in individual files.Special editing machine can use color, font or other visible fingersShow and display to the user that annotation and/or indicate different patches.
Annotation " PATCH mychange " instruction annotation associates with the patch of entitled " mychange ".
If developer wants split patch and printout is placed on single the in this exampleIn two patches, then perform this operation comparatively simple he only need edited source code and change the second annotation:
In some of the exemplary embodiments, patch is possible not only to include adding line in source code, andAlso include deleting row, the amendment etc. of existing row.
#if0 pretreatment order annotation can be used to delete, and code line ignored by this order instruction preprocessor.For example, it is contemplated that code snippet below:
According to some exemplary embodiment, it means that occur in the comment line/* in basic source codeMultiply n by two*/deleted by " remove-wrong-comment " patch.Therefore, locate in advanceCode snippet after reason may is that return n*n;And do not compile other row.
Amendment to source code can use different code blocks to replace certain generation existed before patchCode block.This can use two single annotations (being used for deleting old code and adding fresh code) to complete.#if can also be used ... #else ... #endif pretreatment order realizes revising described in single annotation.Such as:
Row in #if0 is the row deleted in this patch, and the row in #else is the row replacing it.According toThe conventional sense of pre-processing instruction, and be considered to be never the genuine fact in view of " 0 ", preprocessorDelete row "/* multiply n by two*/" and instead include row "/* multiply n by itself*/”。
In some of the exemplary embodiments, the first patch can introduce the most interim, will be by follow-up benefitThe code that fourth is deleted.In some cases, this may be critically important (such as, in order to beat benefit a series ofSource code after fourth obtains an intermediate code to compile).Continue this based on C preprocessorExample, this annotation can be as follows:
#if0/*PATCH patch2..patch3*/
/*this code is added in patch2,but removed again in patch3*/
#endif
Or as nested #if':
With reference now to Fig. 2 A, illustrated therein is some exemplary embodiment according to disclosed themeFlow chart for the method for collaborative code development.
Obtain source code in step 200, obtain annotation in step 204.In some exemplary embodimentIn, described annotation and described source code are stored in same digital document.In addition or alternatively, instituteState annotation and source code can be stored in single file or data storage.
In step 208, user can such as use source code and/or annotation described in editing machine editor.InstituteThe amendment stating source code and/or annotation may affect by the patch of they definition.
In step 212, generate one or more patches according to described source code and annotation.Show at someIn example embodiment, described patch has the order of definition betwixt.
In step 216, the most such as by computerization transmission over networks, the removable calculating of useMachine medium etc. and the patch generated is supplied to the second developer.In some of the exemplary embodiments,Described second developer can be responsible for examining patch, ratifies patch afterwards and is applied to project.
In step 220, described second developer can accept some patch.In addition or alternatively,Described second developer can refuse some patch in it examines.Described second developer is permissibleDeveloper for responsible patch provides the input about described patch, such as, indicate in described patchThe mistake of introducing, the instruction objection (such as, due to coding style) etc. to described patch.At someIn exemplary embodiment, edit described code and examine that described patch can be iterative process, when describedWhen second developer accepts described patch, this process can terminate.
Patch order and configuration file
After developer annotates source code as described above, it is possible to use patch builder tool (exampleSuch as Figure 1B 130) create the patch that the source code after annotating defines.
In some of the exemplary embodiments, patch file form refers to that specific line number is (such as: be expert at 100Place adds this journey) and/or specific context (such as: add this journey after so-and-so manages it).This meaningNeeds with particular order application patch, it is therefore desirable to create patch with particular order.
In some of the exemplary embodiments, patch can be depending therefrom.Such as, if in patch ACode relies on the code in patch B, then must apply patch B before application patch A.
Can use and a part that the order of patch be appointed as annotate by file etc. is separately configured, as benefitThe command line parameter of fourth maker is given.In some of the exemplary embodiments, described configuration file is permissiblePatch title (that is, as mention in annotation) is included with the order that user selects.Patch canTo create with this order, and subsequently should be with this order application.
In some of the exemplary embodiments, can in the title of patch or use patch other yuan of numberOrder according to the patch that instruction is generated.Such as, if above example in " secondchange "Be the second patch in list, then the patch file generated can have title“0002-secondchange.patch”。
Described configuration file can also include the information relevant to amendment.Such as, for a certain patch,Following any information can be provided: the title of amendment, the author explaining in detail, revising of amendment, repairThe date etc. changed.In addition or alternatively, described information may be provided in a part for annotation.
In some of the exemplary embodiments, patch maker can possess source code file to be processedList, instruction will search for annotation in which source file, and which source file is included within being generatedPatch in.In addition or alternatively, the list of source code can be provided in configuration file.
In some of the exemplary embodiments, described configuration file can comprise relevant item and how to beEstablishment of item or the additional information of test patch.
Patch is created based on annotation
Patch maker 130 can create patch based on annotation in the following manner.Assume to be given and compriseN number of patch (entitled p1..pn) list and have predefined procedure (without loss of generality, order bep1..pn), define N+1 Patch-level.Patch-level 0 is the original source generation not having any patchCode.Patch-level 1 is only to apply p1Original source code.Patch-level i is to apply patch p1..piOriginal source code.Define from this, it is easy to ground understands piIt is Patch-level i-1 and Patch-level iBetween difference.
Patch maker can create patch file i by following operation: creates one, two source treesFor Patch-level i-1, one is used for Patch-level i, then creates patch (example according to described differenceAs, use " diff-u " instrument or alternative document to compare instrument).
In order to the source code after annotation creates the source code at Patch-level i, patch maker is permissibleProcess the source code after annotation, and it is determined that include which annotation and which annotation should be deleted.Just include being indicated as being added on patch p during and if only if j≤ijIn annotation.During and if only if j > iJust include endorsed at patch pjThe row of middle deletion.
In some of the exemplary embodiments, annotation itself (the #if row in example above) is the most notIt is copied in Patch-level i source.
In some of the exemplary embodiments, patch maker can directly generate patch by following operationFile, and without firstly generating its Patch-level and preprocessor Patch-level: process source code, withCurrent line number the mark of track preprocessor Patch-level need to be introduced into the annotation of patch.
With reference now to Fig. 2 B, illustrated therein is according to disclosed theme for the method generating patchFlow chart.In step 230, select patch to be generated.In some of the exemplary embodiments, asPatch selected by Guo is not the first patch, then can also generate all benefits before selected patchFourth.In step 234, generate and determined and do not include the of selected patch by selected patchOne Patch-level.In step 238, generate and determined by selected patch and include selected benefitSecond Patch-level of fourth.In step 242, according to the difference between described first and second Patch-levelsPatch selected by heteroplasia one-tenth.
Create revision
In some of the exemplary embodiments, the continuous Patch-level of source code can be as in source code libraryBranch automatically logged on (checked-in).This to wherein assume patch directly logged on rather thanIt is useful as the project that actual patch file is submitted.Such as, distributed revision is used to control systemThe project of system (such as Git) can have this type of strategy.In some of the exemplary embodiments, this canThink that following examiner provides convenient: self want to run it and favorite compare instrument rather than depend onDeveloper is relied to send a certain output comparing instrument for them.
Inspection foundation code
In some of the exemplary embodiments, the source code source code based on original item after annotation is (i.e.,Foundation code (base)).Assume such as to use the annotation scheme according to disclosed theme by patchEach change to foundation code is provided.
In some of the exemplary embodiments, in order to avoid repairing mistakenly in the case of incorrect annotationChanging code, automated procedure can identify this type of mistake and provide its alarm.Inspection module can such as makePatch-level 0 is generated with patch maker 130.The source code generated is made an amendment basis.Can be by the source code that generated with existing foundation code version (such as, in version control systemPredetermined revision, the version etc. preserved in different computers or file) compare, to guarantee patchIt is configured to apply in existing foundation code version.
In some of the exemplary embodiments, if there is difference, then can display them to exploit personMember, such as, be similar to the output that diff instrument provides, in order to which instruction carried out to foundation code and repaiiedChange and the most correctly annotate.Then developer can revise source code to include the annotation lacked.
When adding annotation in some is revised according to disclosed theme, and these amendments initially do not makeWhen having annotated with this type of, this function can be very useful.If user forgets to annotate some of which amendment,Then foundation code testing sequence can remind this carelessness to him.In some of the exemplary embodiments, noIt is that the change the most just not annotated sounds a warning, but can automatically add the annotation lacked: all batchesNote the code adding or deleting by endorsed for belonging to target patch.Described target patch can beThe patch etc. that new patch, user select.
Additional function
In some of the exemplary embodiments, automated procedure can be checked after applying each patch, justReally compile source code.In some of the exemplary embodiments, described automated procedure can generate all patchesRank, and for this type of Patch-level each, attempt it is compiled.In some exemplary realityExecuting in example, compile error message associates with line number.For make line number can be used for source code itself (rather thanRelevant Patch-level), line number can be revised with the associated row quoting in source code.Additionally or alternativelyGround, can generate Patch-level in the way of not revising line number, such as by not deleting row, butBlank line is used to replace the row deleted.
In some of the exemplary embodiments, can perform other and automatically check, such as project implementation is specifiedCode styles detector etc..
With reference now to Fig. 2 C, illustrated therein is according to disclosed theme for the method checking patchFlow chart.For each patch determined by predetermined patch, such as last patch or exploit personThe patch that member selects, can perform step 250-258.In step 250, generate and determined by described patchAnd the Patch-level including described patch.In some of the exemplary embodiments, can be with such sideFormula generates Patch-level: such as do not change in source code by using blank line to replace row to be deletedThe line number of row.In step 254, for Patch-level described in required inspection by attributes, such as according to volumeCode pattern (such as, by performing code styles detector) is compiled (such as, using compiler)Deng.In step 258, provide the user the output of the compile error such as indicated in particular code row.In some of the exemplary embodiments, if the amendment code line when generating Patch-level, then can calculateThe code line of displacement also displays it to user, indicating in original source code (rather than described patchIn rank) related lines of code.
In some of the exemplary embodiments, become basic mode block (rebasing module) can be configured toAmendment annotation is to apply all patches determined by predetermined patch.Thus in application by predetermined patch certainlyAfter fixed all patches, foundation code version is revised as source code.In some exemplary embodimentIn, this can use after these patches have been accepted in described code.
In some of the exemplary embodiments, when only some patch is applied to foundation code project, andWhen developer wishes to become the patch do not applied of residue base into up-to-date official's foundation code, there is bagIncluding the amendment do not applied may be very useful together with its patch annotated.This can be such as with above for lifeThe same way becoming patch to describe completes, and simply annotation row itself is not deleted but retained.
With reference now to Fig. 3, illustrated therein is some exemplary embodiment according to disclosed themeThe block chart of the assembly of computerized device.
In some of the exemplary embodiments, device 300 can include processor 302.Processor 302Can be CPU (CPU), microprocessor, electronic circuit, integrated circuit (IC) etc..Processor 302 may be used for performing the calculating needed for device 300 or its any sub-component.
In some of the exemplary embodiments, device 300 can include input/output (I/O) module 305,Such as receptor, transmitter, transceiver, modem, input equipment, outut device etc..?In some exemplary embodiment, I/O module 305 is used for being connected to I/O equipment to provide the mankind to useThe input at family or output.I/O module 305 can operationally be connected to display, pointer device,Keyboard etc..It is to be appreciated, however, that described system can be run in the case of without human manipulation.
In some of the exemplary embodiments, device 300 can include memorizer 307.Memorizer 307Can be computerization memorizer, such as permanent memory or volatile memory or a combination thereof.ExampleAs, memorizer 307 can be flash disk, random-access memory (ram), memory chip,Light storage device, such as CD, DVD or laser disk;Magnetic storage apparatus, such as tape, hard disk,Storage area network (SAN), network connect storage (NAS) etc.;Semiconductor memory apparatus, exampleSuch as flash memory device, memory stick etc..In some of the exemplary embodiments, memorizer 307 includes multiple depositingStorage device, such as RAM and hard disk.In some of the exemplary embodiments, memorizer 307 is permissibleSave routine code, described program code can run to cause processor 302 to perform and in Fig. 2 A-2CThe operation etc. of shown any step association.
The assembly being explained in detail below may be implemented as such as being performed by processor 302 or other processorsOne or more groups correlation computer instructs.Described assembly can be arranged under any computing environment withOne or more executable files of any programming language programming, dynamic base, static library, method, meritEnergy, service etc..
In some of the exemplary embodiments, the 130 of patch maker 320(such as Figure 1B) can be byIt is configured to source code 310 and the annotation 315 one or more patches of generation.In some exemplary realityExecuting in example, patch maker 320 can use Patch-level maker 330 generation to can be used for generating benefitThe Patch-level of fourth.
In some of the exemplary embodiments, according to disclosed theme, editing machine 340(such as Figure 1B110) can be source code editor.Editing machine 340 can be versatility code editing machine or appointmentEditing machine to process annotation 315.The 120 of compiler 350(such as Figure 1B) can be configured toCompiling source code, and alternatively before compiling source code, use preprocessor 360(such as to schemeThe 125 of 1B) process pre-processing instruction (such as #if instruction).
In some of the exemplary embodiments, foundation code checker 370 can be configured to check for basisWhether as was expected for code.In addition or alternatively, if foundation code checker 370 determines baseAs was expected for plinth code, then foundation code checker 370 can generate patch with by basis generationCode is revised as building source code 310 and 315 versions being based on that annotate.
In some of the exemplary embodiments, become basic mode block 380 and can be configured to change structure source code310 foundation code being based on annotation 315, as detailed above.
Editing machine
In some of the exemplary embodiments, it is possible to use general-purpose text editor or source code editor are looked intoSee and edited source code.
In addition or alternatively, according to disclosed theme, the editing machine specified can be designed.
In some of the exemplary embodiments, the described editing machine specified can show in the way of cleaner and tidierAnnotation (such as, uses annotation rather than actual displayed #if row at color coding or margin).User can inform editing machine, and which patch he is presently processing, and editing machine can annotate automaticallyAny amendment (is added, deletes or is changed), and user need not key in these amendments.
In some of the exemplary embodiments, user may require that editing machine is hidden or " folding " a certain benefitSome patch after fourth or whole patch.
With reference now to Fig. 4, illustrated therein is the editor of exemplary embodiment according to disclosed themeThe diagram of device.
Screen 400 shows the graphic user interface (GUI) of the editing machine according to disclosed theme.Editor's pane 410 can be display configured to source code and annotation.In some of the exemplary embodiments,Show source code by this way: such as use difference for the text after adding, being deleted or modifiedColor or text style indicate annotation.For example, it is possible to use different for amendment part 415Color displays to the user that the factorial patch 425 that row amendment introduces factorial function.In addition or alternatively,Use the text that strikethrough display is deleted.Other graphical symbols can be used according to user preference.
In some of the exemplary embodiments, described editing machine can show by selected patch (such as, rankTake advantage of patch 425) determine and do not include the version of foundation code row of selected patch, and indicate byThe amendment that this patch itself provides.In addition or alternatively, it is possible to use different colors or other figuresSymbol shows all modifications on foundation code version, to indicate which amendment with which patch associates.
List of patches 420 can be used to show all patches.List of patches 420 may indicate that patchSequentially.User can use GUI button add new patch, delete existing patch and will amendment from theOne patch moves to different patches.
Patch Editor 430 can show and select the metadata that patch associates.Show at someIn example embodiment, user can use patch Editor 430 editing meta-data.
Flow chart and block chart in accompanying drawing show the system of various embodiments according to the disclosure, sideMethod and the framework of possible embodiment, function and the operation of computer program.In this regard, streamEach square in journey figure and some square in block chart can the module of representation program code, sectionsOr part, described program code includes or many of the logic function (multiple) specified for realizationIndividual executable instruction.Be also pointed out that in some alternate embodiment, the function of explanation in squareThe order of explanation in figure can not be pressed occur.Such as, be shown as two squares of continuous print can actually byEssentially simultaneously perform, or sometimes, depend on involved function, can be with contrary suitableSequence performs described square.It will also be noted that, block chart and/or each square of flow chart and block chart and/ or flow chart in the combination of square can specify the based on specialized hardware of function or operation by performingThe combination of system or specialized hardware and computer instruction realizes.
Term as used herein is intended merely to describe specific embodiment and be not intended as the disclosureRestriction.As used in this, singulative " ", " one " and " being somebody's turn to do " are intended to equallyIncluding plural form, unless the context clearly dictates otherwise.It will also be understood that ought be in this descriptionDuring use, term " include " and/or " comprising " specify exist stated characteristic, integer, step,Operation, element and/or assembly, but it is not excluded that existence or increase other characteristics one or more, wholeNumber, step, operation, element, assembly and/or combinations thereof.
As skilled in the art will appreciate, disclosed theme can be presented as system, methodOr computer program.Therefore, complete hardware embodiment, completely can be taked in disclosed themeSoftware implementation (including firmware, resident software, microcode etc.) or be combined with software and hardware aspectThe form of embodiment, referred to generally herein as " circuit ", " module " or " system ".Additionally,The disclosure can be taked to be embodied in any tangible expression medium and (comprise computer in media as well and can use journeySequence code) in the form of computer program.
One or more computer can be used to use or the combination in any of computer-readable medium.DescribedComputer can with or computer-readable medium such as can be (but are not limited to) any non-transient calculateMachine computer-readable recording medium, electricity, magnetic, optical, electromagnetic, infrared ray or semiconductor system, device, equipment or biographyBroadcast medium.The more specifically example (non-exhaustive listing) of computer-readable medium will include following item:There is the electrical connection of one or more line, portable computer diskette, hard disk, random access memory(RAM), read only memory (ROM), Erarable Programmable Read only Memory (EPROMOr flash memory), optical fiber, portable optic disk read only memory (CDROM), light storage device, allAs those support the Internet or the transmission medium of Intranet or magnetic storage apparatus.Noting, computer can be usedOr computer-readable medium can even is that program is printed on paper thereon or other Jie being suitable forMatter, because described program can be captured electronically by paper described in such as photoscanning or other media,Then it is compiled, explains or the most processed (if necessary), then storedIn computer storage.In the context of this document, computer can be used or computer-readable mediumCan be any can comprise, store, transmit, propagate or transmit by instruction execution system, device orThe medium of the program that equipment uses or is combined with instruction execution system, device or equipment.Described computerUsable medium can include wherein comprising described computer usable program code (such as, in a base band orA part as carrier wave) propagation data signal.Can use any suitable medium (include butIt is not limited to wireless, cable, optical cable, RF etc.) transmit described computer usable program code.
For perform the computer program code of the operation of the disclosure can use comprise one or more compileThe combination in any of Cheng Yuyan is write, and described programming language includes such as Java, Smalltalk, C++Etc OO programming language and such as " C " programming language or similar programming language itThe conventional process programming language of class.Described program code can perform the most on the user computer,The most on the user computer perform, as independent software kit, the most on the user computerAnd perform the most on the remote computer, or fully perform on remote computer or server.In the case of the latter, remote computer can be by including Local Area Network or wide area network(WAN) any type network is connected with the computer of user, or can enter with outer computerRow connects (such as, using ISP to pass through Internet connection).
Counter structure, material, operation and the dress of all function limitations in claims belowPut or the equivalent of step, it is intended to include any for specifically note in the claims otherUnit performs the structure of this function, material or operation combinedly.The given description of this inventionIts object is to signal and describe, being not exhaustive, be also not intended to limit the invention to instituteThe form of statement.To those skilled in the art, in the feelings without departing from scope and spirit of the present inventionUnder condition, it is clear that may be made that many amendments and modification.Selection and explanation to embodiment, is in order toExplain well the principle of the present invention and actual application, enable those skilled in the art to understand, the present inventionCan there be the various embodiments with various change of applicable desired special-purpose.