GB2342733A - On-line help integration with third party software - Google Patents

On-line help integration with third party software Download PDF

Info

Publication number
GB2342733A
GB2342733A GB9822479A GB9822479A GB2342733A GB 2342733 A GB2342733 A GB 2342733A GB 9822479 A GB9822479 A GB 9822479A GB 9822479 A GB9822479 A GB 9822479A GB 2342733 A GB2342733 A GB 2342733A
Authority
GB
United Kingdom
Prior art keywords
help
application
line
developer
invoke
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
GB9822479A
Other versions
GB9822479D0 (en
Inventor
Terry Tam
Heather Dell
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsemi Semiconductor ULC
Original Assignee
Mitel Corp
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 Mitel Corp filed Critical Mitel Corp
Priority to GB9822479A priority Critical patent/GB2342733A/en
Publication of GB9822479D0 publication Critical patent/GB9822479D0/en
Publication of GB2342733A publication Critical patent/GB2342733A/en
Withdrawn legal-status Critical Current

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/451Execution arrangements for user interfaces
    • G06F9/453Help systems

Abstract

A system allows developers to integrate on-line help from third party software with the on-line help of their own software product without modifying the existing application source code of the third party software. The process involves capturing on-line help requests by the third party software and re-directing 7 the help request to an entity 9 which makes a decision as to displaying the help provided by the developer or help provided by third party (Fig.2 shows the latter). The end-user is left with the perception that there is only one on-line help system provided by the software product.

Description

ON-LINE HE@P INTEGRATION WITH THIRD PARTY SOFTWARE FIELD OF THE INVENTION The present invention relates in general to software application design and more particularly to a system for allowing developer integration of a third party software on-line help system with Lhe developer's own on-line help system without altering thé source code of the third panty software.
BACKGROUND OF THE INVENTION A curent trend in the computer software industry is the exposure of application progamming intertaces (APls) of software products to the public to allow external developers to provide added value to the existing software products, or incorporate existing software products into the extemal developers' own software products.
A commcn issue rela@ing to the use of third party software that provides APIs with a developer's software product is the invention or on-line help. Graphical User Interfaces (GUIs) provided by the third pany software may include the capability of launching online help. However, the third party on-line help references code provided by the third parry application only. the exposure of APls of asoftware product usually does not include the application source code of the software product itself. Without the sou@ce code mibrmation, it is difficult if not impossible to merge the on-line help relerenced by the third party sofrware and the on-line help referenced by code within a developer's own software product. the dithculty in merging of the on-line help systems relates to maintaining The context and appearance of on-line help when the third pan software product is running in the dcveloper's applicarion comext.
Many presently available software products which integrate third party software leave the on-line help from the thrid perty software unchanged. In the context of this specification, the term"integrated"is used from an en-user point of view, and not the viewpoint of the developer. Thus, when the end user perceives that the look and feel of the on-line help is consistent when invoked anywhere in the developer's application, the on line help is said to be"integrared"from the user's perspecrive. It should be understood that , unless otherwise indicated in this specification, the term "integrated" is not meant to imply that the thrid party code is reproduced within the third parry developer's application.
As indicared above, the merging of third pany and developer on-hne help systems TTiS can have the effect or engendering a negative perception with the end user of the software product having regard to the un-integrated look and feel"of the overall software product.
One example of such a software product is the "intel Business Video Conferencing with Proshare@ Technology"package,-which combines the Technology from the Microsoft NetMeeting@@ third party application, with it's own conferencing capabilities.
SUMMARY OF THE @NVENTION According to the preser. invention, a system is provided which allows developers 10 present the same representation of on-line help generaied from third pany software as the on-line help generated from their own software product without modifying the existing application source code of the thrid party software. The process of the system involves capturing on-line help requests by the third pan software and re-directing the help requesi to an entiry which makis a decision as 10 displaying the help provided by the developer or help Provided by third. The end-user is left with the perception that there is or ! y one on-line help system provided by the software produit.
According to another aspect of the invention, the thrid party software product online help system retains its original context and appearance when the third party software product is running within its own contez BRIEF DESCRIPTION OF THE DRAWINGS An embodiment of the invention is described below with referece to the accompanying drawings, Ln which : Figure I is a model diagram showing invocation of a typical thrid party software on-line help system, according ro thé prior an ; Figure 2 is a model diagram showing invocation of a typical third parry software on-line help system, according to the presem invention ; Figure 3 is a model diagram showing a system for integrating a third party online help system with help selected in the context of a developer's software application : Figure 4 shows a conventional computing environment for implementing the system of the present invention ; Figure 5 is a schematic illustration showing implementation of on-line help according 10 the prior an ; Figure 6 is a schematic illustration showing implementation of integrated online help with help selected in the comext of a developer's software application, according to the present invention ; and Figure 7 is a schematic illustration showing implementation of inregrated on line help with he ! p selected in the context of a third party software application, according to the présent invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT NT The typical model describing on-line he ! p provided by a third pam is shown in figure I. The end-user I requests on-line help from the third party software application 3.
The software application 3 then invokes on-line help 5 to display help information to the end-user.
According to the present inventioon, the invoking of on-line help by the third party applicacon (such as shown in Figure 1) is intercepted and the request is passed ono a decision entity (referred to herein as an On-Line Help Re-Director Entity (OHRE)) whose purpose is to inucept invocanion requests for third party help and use it as an event to activate an On-line Help Selector (HOS) decision entity. The OHS entity's role is s to dete@mine the context in which the thrid party and developer's software is r and invoke the proper on-girie help for the end-user.
Figure 2 depicts an On-Line Help Re-Direcnon (OHR) system according to the present invention apolied to the typical on-lire help model shown in Figure 1 with the third parry application 3 running within it's own context only. Third party help requests are re-direted by the OHRE entity 7 as OHS activation events to the OHS entity 9.
The OHS 9 determines that the third party application 3 is mu within its own context and invokes that third party on-line help 5 by simulating the "invoke thrid party online help"request that was originated from the third party software application 3. In essence, the original third party on-line help 5 is provided when the third pany application 3 is running within its own content.
Figure 3 depicts the OHR method of the present *invention applied 10 the typical on-line help model shown in Figure 1, with the third pany application running in the coniext of the developer's application 11. On-line help requests directed to the developer's component 13 are directly sent by the software application 11 to the developer's on-line help implementation 15. Requests to the developer's component 13 follow the typical online help model shown in Figure 1.
On-line help requests directed to the third panty component 3 follow the OHR model according to the present invention. Thrid party help requests are re-direcied by the OHRE 7 to the OHS enriry 9. The OHS eniity 9 is aware thai the third pany sofrware 3 is operatin g within the context of the developer's application 11 and issues a request fbr on- line help 15 implemented by the developer on behalf of the third party component 3. The developer's on-line help 15 contains text for explaining operation of me third pany software which is intended to orovide the necessary user information without reproducing the third panty no-line help. Thus. the end-user is presented with a single on-line help system The developer's on-line help 15, when the invocation for on-line help is issued by the developer's component 13 or by chue third pany component 3.
The key benefit of using the OHR method Os thé present invention for integrating third party on-line help is the extent of seamless integration which this method provides to the developer. When the third parry application 3 is nunning within it's own context, the original third parry on-line help is presented to the end-user unaltered, as shown in Figure 2. When the third party application 3 is operating within the context of the developer's application 1 l, all rhird parry on-line help requis are re-directed to the developer's online help implementation 15 to provide the end-user with the impression of a single integrated on-line help system.
As Figure 4 reveals, computer applications typically operate within a pronal computer 19, workstation and/or server environment, which may include access to a LA. N 21 and connection to peripherals such as a USB phone 23, etc., These applications tend to provide a graphicaI user interface 17 or command'ne intcrface (CLI) cor thé en-user ro interact with the computer application. Most well designed computer applications provide some form of on-line help that can be activated through the GUI 17 (or CLI).
A A common approach to implemenang on-line help is through me use of an external on-line help application program that is common to all applicanons withm a particular Operation System (OS). Examples of on-line help applications include the WinHelp application provided in the Microsoft Windows 3x and Windows 9x operating system, and the "MAN" application in the UNLX anvironment.
A typical implementation of on-line help is shown in Figure 5. Thé Third Panty Software GUI 17 pros n interface for the end-user to invoke on-line help. On-line help requests are directe to an externat on-line help application 25. The external help application reads the contents or a help file 27 thar contain the on-line help information Ibr le third parry application. Ihis help lue commonly contain script like instructions, which direct the extemal on-line help application to perform certain on-line help tasks such as displayinJ help icxi in a window.
After obtaining the instructions to perform form the help file 27, the exte@nal help application 25 displays the on-line help requested by the end-user.
When the third pany application shown in Figure ure is incorporated into a developer's application, the OHR system of the present can be applied to integrate the online help invoked by the thrid party application and the on-line help invoked by developer's application, as shown in Figure 6. The implementation of the OHRE is accomplished by replacing the help file referenced by the third party on-line help application (help file 27 in Figure 5) with a help file 31 providing OHRE instructions. As set fort in the algorithmes reproduced below, this is accomplished through the use of on- line help macros to call a software applicarion 33 thar implements the fincnonaliry of the OHS. Script capable on-line help applicaiions commonly provide on-line help writer macro capabilities for opening files, executing applications, and opening help pop-up wsdows.
Once the OHS application 33 is operative, it détermines that the third party applicauon is running within me context of the developer's application. The OHS applicaiion 33 calls thé developer's external on-line help application 35 The developer's on-line help applicanon 3 reads the developer's help file 37 for instructions on how zo displayhe or.-line help requested by the end-user. Afte obtaining the instructions, the requested on-line help is displayed via me Developer's On-Lme Help GUI 39. A representauve algorimm for the OHS application 33 is set forum below.
On-line help requested by te user through the Developer's Application GUI 41 causes on-line help provided by te developer to be displayed by opération of the developer's on-line help application 35. Thus, as discussed above Tue end-user enjoys a perception that the third party supplied software is an integrated component in the developer's application.
Figure 7 shows how me system of me present invention behaves when the third panty application is running within it's own context In response to an invocation of help from the third parry software GUI 17, the third party on-line help applicaBion 25 accesses me help file 31 for providing OHRE instructions, as discussed above. The OHS algorimm 33 détermines that the third party application is running in its own context and calls the external third party on-line help application 25 with directions to read the third parry supplie help files 27, which follows the same behavior shown in Figure 5. Essentially, the help Sle 31 is renamed to reference the third party on-line help file 27, while the help file 27 is re-narned as something new. Thug, once the OHS 33 recognizes that the third pany help Hie 27 is need, it calls the help application 25 and insauct it to read the help file 27 insread of 31. Hence, the role of the OHS 33 in the third party appticanon context in cl direct the help application 25 to read the correcr help file 27 instead of help file 31. From the end-user perspeciive, the on-line help provided by The third parry application using the OHR method of the present invention, is the same on-line help provided by the third party appLicarion without the OHR method applied According to the preferred embodiment, the Algorith@@ for On-Line Help Re Direcror 31 is as follows: + Sur of On-Line Re-Director Help @@ StartupMacro(OPENAPPLICATION, ON-LINE HELP SELECTOR APPLICATION') ; End of Pe-Direcmr Help According to the preferred embodiment, the Algorith@ for On-Line Help Selector 33 is as follows : /* Start of On-Line Help Selector @/ OnLineHelpSelectorO { bAnswer=DETERMINE(1s Developer's Application Running) ; IF (bAnswer = TRUE) { InvokeDeveloperHelpO: } ELSE { InvokeThirdParty HelpO ; } J /* End of On-Line Help Selector */ According to the preferred embodiment, the algorithm to Invoke Developer Help is as follows : /* Stant of InvokeDeveloperHelp */ InvokeDevel uperl ielpU { CLEANUP(ANY REDUNDANT HELP DISPLAYS); LAUNCH(DEVELOPERHELPAPPLICATION,"DEVELOPER'S HELP FILES") ; } /* End of @nvokeDeveloperHelp */ According to the preferred embodiment the algorithm to Invoke Third Party Help is as t'ollows : /* Start of Invoke ThirdPartyHelp*/ InvokeThirdParryHelpO CLEANUP(ANY REDUNDANT HELP DISPLAYS) ; LAUNCH(THIRDPARTYHELPAPPLICATION,"THIRD PARTY HELP FILES") ; } /* End of invokeThirdPartyHelp*/ In sorne circumsxances, the fong of the third party help system 27 and the developer's on-line help 37 are companble, in which case il is technically possible to reuse all or pomons of the third party on-line help 27 and thereby avoid duplication of informarion between the two on-line help systems. Thus, where the third pany software manufacturer has consented to the replication of pan or all of the on-lune help system 27, the system as set forth in Figure 6 can be modified so chat the developer's on-line help file 37 references the third party on-line help file 27 in order to re-use some or all of the information contents.
A suitable macro for displaying a help topic defined in the third pany help file, identified by a lopin identifier"TOPIClD", is as follows : /*Display External Help Topic*/ DisplayExternalHelpTopicMacro("THIRD PARTY HELP FILES", TOPIC@D) /* End Display External Help Topic*/ 'rhus, the system according to thc presem invention allows developers o intearate third-party online help with their own tormar of online help without modifying the third party's existing application code. The benefit of this approach is that the en-user benefits from an integrated online help"look and feel"when the application uses third panty software. In addition, the end-user is presented with the original thrid-party online help when the third parry software is running in its own context.
Variations and alternative embodiments of the invention are possible. For example, the system according to the present invention may be modified to provide the capability of implementing context-sensitive help for an application thaï can nJn in different user modes. For examplc, if the user is running an application Ln client mode, the application calls the client mode help file ; alternately, if the user is running the same application in server mode, the application calls the server mode help file.
An altemative algorithm for implementing this varation of the On-Line Help Selector, is as follows : /* Start of On-Line Help Setecior */ On@ineHelpSelectorO Answer=DETERMINE(What Applications are Currently Active) ; IF (Answer = APPLICATION ATION @@{ InvokeDeveloperHelplO; ELSE IF (Answer=APPLICATIOn t INvokeDeveloperHelp2O ; ELSE LF (Answer=APPLICATION x) X InvokeDeveloperHelpx () ; } ELSE{ InvokeThirdPartyHelpO; } } End of On-Line Help Selector */ According to a funher alternative embodiment, the sysiem ofihe prescni invention may be used to enhance ihird-pany rty online help when it is running in the original context of the third-party software. for example, the system of the present invention can be used to migrare legacy online help systems (such as WinHelp systems) to new online help formats (such as HTML Help) when the source code to the third-party software is unavailable. The algorithm lor On-Line Help Selector, set forth above, can be further modifie to provide this'functionality, as follows : OnLineHelpSelectorO { InvokeDeveloperHelpO; } Thus, ail help requests from the third party application are re-routed to the new help system even when the third party application is running in its own context.
The alte@ate algorithm set forth above for providing the capability of implementing context-sensitive help for an application that can run in different user modes, can be further modified to provide the additioral capability of"application conlext sensitive help". as follows : OnLineHelpSelectionO { Anser=DETERMINE(What Applications are C@rrently Active); IF (Answer=APPLICATION 1) { invokeDeveloperHelp 1 () ; } ELSE IF (Answer=APPLICATION 2) t InvokeDeveloperHelp2O; } ELSE (suer = APPLICATION { InvokeDeveloperHelpxO ; } } All such modillcadons and variai are believed to be wiihin the sphere and scope of the invention as set forth in the claims app@nded hereto.

Claims (9)

  1. Whar is claimed is: 1. A system for re-direciing on-line help requests in a computing environmem in which a third party application having an associated third party on-line help application is run either independently or in conjunction with a developer application having an associated developer's on-line help application, comprising ; a) an on-line help re-director for generating an activation command in response to being read by said third parry on-line help application ; and b) an on-line help selector for receiving said activation command and in response determining whether said third parry application is running independently of said third party application in which case an invoke third parry on-line help command is generated for invoking said associated third panty on-line help application, or whether said third pany application is running in conjuncrion with said developer application in which case an invoke developer's on-line help command is generated for invoking said developer's on-line help application.
  2. 2. The system or claim 1 wherein said on-line help re-direcior further comprises a file containing a macro for activating said on-line help selector.
  3. 3. @@ system of claim 2. wherein said macro is of the form: /* Start of On-Line Re-Director Help*/ StartupMacro(OPENAPPLICATION, ON-LINE HELP SELECTOR APPLICATION) ; /*End of Re-director Help*/
  4. 4. The system ot claim 1, wherein said on-line help selector is implemented by an algorithm of the form : /*Start of On-Line Help Selector*/ OnLineHelpSelectorO { bayer = DETERMINE(Is Developer's Application Running) ; IF (bAnswer RUE) { InvokeDeveloperHelpO ; } ELSE t Invoke Third Party Help(); /* End of On-Line Help Selecior ^/
  5. 5. The system of claim 1, wherein said invoke developer's on-line help command is implemenied by an algonihm of die form : /*Start of Invoke Dveloper Help*/ Invoke Developer Help() CLEANUP(ANY REDUNDANT HELP DISPLAYS) ; LAUNCH(DEVELOPERHELPAPPLICATION,"DEVELOPER'S HELP FILES") ; } /*End of Invoke Developer Help*/
  6. 6. The system of claim 1, wherein said invoke third panty on-Lne help command ils implemented by an algorith@@ of the form : /*Start of Invoke Third Party Help*/ Invoke Third Party Help() { CLEANUP(ANY REDUNDANT HELP DISPLAYS); LAUNCH(THIRDPARTYHELPAPPLICATION,"THIRD PARTY HELP FILES") ; /* End of Invoke Thrid Party Help*/
  7. 7. The system ofciaun I, wherein said on-line help selecior is implemented by an algoriGhm of the form : /*Start of On-Line Help Selector On Line Help Selector() Answer = DETERMINE(What Applications are Curretly Active) ; IF (Answer = APPLICATION D { Invoke Developer Help@(); } ELSE IF (Answer=APPLICATION 2) { Invoke Developer Help2(); ELSe IF (Answer=APPLICATION x) { InvokeDeveloperHeipxQ ; ELSE { Invoke Third Party Help(); } } /* End of On-Line Help Selector */
  8. 8. The system of claim 1, wherein said on-line help selector is implemented by an algorithm of the torm : OnLine Help Selector() Invoke Developer Help();
  9. 9. The system of claim 1, wherein said on-line help selector is implemented by an algorithm of the form: OnLineHelpSelectionQ { Answer = DETERMINE (What Applications are Currently Active) ; IF (Answer = APPLICATION 1) { InvokeDeveloperHelp (); ELSE IF (Answer=APPLICATION 2) { Invoke Developer Help2(); ) ELSE ( Answer = APPLICATION { Invoke Developer Helpx(); } }
GB9822479A 1998-10-16 1998-10-16 On-line help integration with third party software Withdrawn GB2342733A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB9822479A GB2342733A (en) 1998-10-16 1998-10-16 On-line help integration with third party software

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB9822479A GB2342733A (en) 1998-10-16 1998-10-16 On-line help integration with third party software

Publications (2)

Publication Number Publication Date
GB9822479D0 GB9822479D0 (en) 1998-12-09
GB2342733A true GB2342733A (en) 2000-04-19

Family

ID=10840611

Family Applications (1)

Application Number Title Priority Date Filing Date
GB9822479A Withdrawn GB2342733A (en) 1998-10-16 1998-10-16 On-line help integration with third party software

Country Status (1)

Country Link
GB (1) GB2342733A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7721196B2 (en) 2005-12-07 2010-05-18 Microsoft Corporation Arbitrary rendering of visual elements on a code editor

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5434963A (en) * 1988-09-03 1995-07-18 Hitachi, Ltd. Method and system of help-information control method and system
EP0814403A1 (en) * 1996-05-28 1997-12-29 Hewlett-Packard Company Computer system with context switch and program development therefor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5434963A (en) * 1988-09-03 1995-07-18 Hitachi, Ltd. Method and system of help-information control method and system
EP0814403A1 (en) * 1996-05-28 1997-12-29 Hewlett-Packard Company Computer system with context switch and program development therefor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7721196B2 (en) 2005-12-07 2010-05-18 Microsoft Corporation Arbitrary rendering of visual elements on a code editor

Also Published As

Publication number Publication date
GB9822479D0 (en) 1998-12-09

Similar Documents

Publication Publication Date Title
US6763501B1 (en) Remote document serving
JP5060018B2 (en) System and method for one-to-many data projection
US5329619A (en) Cooperative processing interface and communication broker for heterogeneous computing environments
US7089278B1 (en) Anchored conversations: adhesive, in-context, virtual discussion forums
US7661114B2 (en) Client-server application partitioning having metering technique for distributed computing
JP3251800B2 (en) Communication system for exchanging data between computers in a network
US7051288B2 (en) Method, system, and product for a java-based desktop to provide window manager services on UNIX
US6405264B1 (en) Marshaling and unmarshaling framework for supporting filters in a distributed object system
US9612888B2 (en) System and method of providing inter-application communications
US6647432B1 (en) Distributed framework for intertask communication between workstation applications
US20020038390A1 (en) Method and apparatus for fast, local corba object references
US20040019684A1 (en) Systems and methods for application view transactions
EP1287437A2 (en) Information processing method, information terminal support server, collaboration system, and storage medium storing an information processing program
JP2001014250A (en) Information processing method, collaboration server, collaboration system and storage medium for storing information processing program
Bharat et al. Building distributed, multi-user applications by direct manipulation
CA2276415A1 (en) System and method for automatically instantiating classes in a virtual machine
EP2304567A2 (en) Method and apparatus for providing a synchronous interface for an asynchronous service
US20020040409A1 (en) Method and apparatus for implementing state machines as enterprise javabean components
WO2023273403A1 (en) Method for implementing non-intrusive communication service on android platform
US20110225403A1 (en) Operating system and method of running thereof
US6185730B1 (en) Method and apparatus for creating dippable beans in a java environment
WO2003073266A1 (en) System and method for object activation
CA2258704C (en) Framework for constructing shared documents that can be collaboratively accessed by multiple users
Kawai et al. Designing interface toolkit with dynamic selectable modality
US20030056023A1 (en) Reducing the size of generated code used to call common object model objects, while preserving type-checking

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)