CA1272300A - Method for application software control of graphical interaction techniques - Google Patents

Method for application software control of graphical interaction techniques

Info

Publication number
CA1272300A
CA1272300A CA000532020A CA532020A CA1272300A CA 1272300 A CA1272300 A CA 1272300A CA 000532020 A CA000532020 A CA 000532020A CA 532020 A CA532020 A CA 532020A CA 1272300 A CA1272300 A CA 1272300A
Authority
CA
Canada
Prior art keywords
application
user
response
protocol
actions
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.)
Expired - Fee Related
Application number
CA000532020A
Other languages
French (fr)
Inventor
James Rush Rhyne
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of CA1272300A publication Critical patent/CA1272300A/en
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • G06F16/1794Details of file format conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets

Abstract

METHOD FOR APPLICATION SOFTWARE CONTROL OF
GRAPHICAL INERACTION TECHNIQUES

ABSTRACT OF THE DISCLOSURE
Method and means for controlling the echo of user-initiated actions taken through the input devices of a workstation in a distributed computational system providing application processing services at a site remote to the user. When application services are being used, an application protocol located proximate to the user separates user input actions which do not require application computational response but which do require registration in the system, from those actions which initiate events requiring application program computational response. The application protocol buffers the non-computational actions, and invokes a local service to register the actions and to stimulate a user-discernible response. Other actions are forwarded by the protocol to the remote application process in the host computer. The invention reduces the response time to certain user-initiated actions by providing local response facilities, thereby eliminating a time-consuming communication with the remote application process.

Description

7~

~ETHOD EQR PsPPLIC~TIQN SQFTW_~E ~ONTRDL QE
GRAPHICAL INTEBQCTION TECH~IQUES

~PtCK~ROUN~ OF THE I~VE~tTION
This invention rel~tes to providing echo in the form of user-discernible system respon e to user-initiated actions which require such resp~nse within bounJed response times.
More particul~rly~ the invention is in the field of multi-user systems wherein user access to an applicatiort program in a hoet ccsmputer i 5 obtained through worl:stations remcste from the host computer~ and respon,ses to cer~ain user actions in the c3ntext of an application pro~ra~m ~s~e provided by a protocol ~hich is pro>:imate to the user irtstead of by the remote application program.
15 ~ The ~echani~ation o~ modern o~fices has led_ to multi-user ~ystems in ~hich a plurality of user ~Jctrkstations are connected to a sin~le host computer that prcivides application program proces~ing Gervi~eC to one ~r more csf the wcirkstatians. Typicall~f~ the workstatiors ar~
geocsraphically distributed t~srcsu~hout an organi~ation and ccsmmunicate throug~s a centrali2ed communication $acility ~ith the host~ In csrder to provide specific appli~~ation prog~am services to th~ workctatiorss~ the ho~t is typically time-shared among the worltstations~
~oderrl application prcsgrams are characteristically event-driven processes in which in~er~cti~n occur~ between the pro~ram and the user. In thes~ cases, inte~action 35 most $re~uently af~orded th~ou~h ~ worL~etation terminal that incl~des a var~ety of u5er input de~ices and a graphica}
output de~ice such as a CF~T~ The ~Ises~ inputs commandiis and p~rameters to t~se application progs-~m through the input devi ces and observes the progra~n re~.ponses on the screen of th~ CRT. When des~ribed as event-drivenl it is understc)c~d th~t t~e applicatic:)r) pr~cess l~ lit5 for ~ ~;peci~ic user-initi~ted aiction bkfore it undertakes a computation 1~CIC~E-I NCI. 5;~B4~ 1 C IEI~ ;Ph~

~3~

based on user i~put and provides a re~-ponse to the uC.er via the CRT.
User ac-tions or e~ents may cause computation~l response from ~n application program~ 5uch e~ents follow~ for e~:ample ! entry o~ a command or deprecsion o~ an ENTFR or RETU~N ~ey on a wor~station l~eyt~Gard It i~ to be understood t~at Dtler user-initiated actions do not require computational response from an application program. Such actions include entr~ o~ characters ~fped on a ke~Jboardi that form a command~ imple~ent cur~or mo~ement~ or sigr~ify ~ectors o~ a display ta~leau~: by highliqhting. Most user acti~ns generall~f do require immediate noti~ication to the user of re~istrati orS of the current parame-ter pro~ided by the input device operated ~y the user.
In order to apprise the ~ser when an actior is r~gi~tered in an interacti~e s~fstem~ feEdbacl~ is ~ro~ided in the ~orm o~ user-di~cerni~le respor,ses to the actions. Such recponse~ are termed "echoes." Ti'.e re~ponse to a u~er action requiring computation i pro~ided by the application program ~c~ an indication cf the outcom~ c~ the re~uested computati~n. For e~:ample~ in a ~preadsheet pragram~ the application pr~graiT may pro~ide the outcome o~ a talc~lation tiased on a formula and parameters provided b~f the user.
The echo re~pcn~e of a system to uoer-initiated actions ~25 i5 nori~ally pro~3d~d it-~f an OUtpLlt de~ice at ~he workst~tion.
Thus~ characterc. entered on a keyboard are echoed to the user by i~eing displa~ed on the CPT screen~ ~nd operation o~
c-~rscr control through a ~eyboard or a mouse i echoed oy mo~ina the position of a displayed c~lrsor. Other echo resp~ns~s include highlightinq sele~ted ~ommand~ sn~vable cibjec~s! or i'cells" o~ a Cr~T display into ~hich a cursor has been m~ed.
1~ most prior art ~ysatems~ the echo respo~se to user action i~; typi~ally the responsibility of the application ,~rogr~m~ wh.ich acts throLIgh a graphic di~;play e ervice tu DnCi~ET ~ . S~ ql1 CIEIM~ s~ D~

3t~

generat~ I graphics display on a C~. h typical graphic ~ervic~ i5 described in Fol~y and Van Dam? "Fundamei,tals Interacti~e Computer Gi-aphicE~" Addi50n-We51ey, lY3~ at pp.
~ 9~. ln moet casesy th~ applic~tion program generates lo~l-le~el descriptions of the composition and lo~ation of objects and te~:t tc oe di~pla~ed and pacse~ them tc the dieplay service. The display service translates the descriptionc- into control ~ignalc ~hich cause th~ C~T to display the o~jects and te~:t at the indicated locations.
Updating or changing an o~ject or location as an echo of a user-initiated action thu~ normally ~ollows a pathwa~f to the application program ~nd ~ack to the dieSpla~f service.
In the remote work~tation environment~ where the application program i5 at a ditance from the ucer input devicesl displa~ _ervice, and CRT~ the roundtrip ~et~Jeen the workstation and the hoct computer ~her~ th~ application pi-09ram i 5 locate~ can consume a considera~le a~oL~nt time. F~rther~ in the case where a plurality of work~tations access a single host computer, the roundtrip time for the same echo response at the same wor~st~tion can vary as a result Df contYntion ~r host reeiources.
Lengthy and ~ariable del~y between a user-in~tiated acti~n and an application program response c~n be tolerated in t~e case of computatian-initiating actions as a necessary ~25 concomitant ~f multi-u~er s~stem organi-ation. Ho~Jever, in the case of ~ser action~ that require no cDmputation~ such ~5 te~:t editing, cursor movemen~ and highlighting~ for ~xa~ple~ lon~ or varia~le delay i~ ~yetem responce can serioL~sly detract from the efficiency of program ~tili ation. Indeed~ the echo response shoulci be imrnediat~
Dr instantaneous. Therefore~ a need e~:ists in multi-user system~ in which remote works~tations ac~ess a host computer-fQr application program services to recluce the time ~l~ied by the sy6tem in responding to user-initiatE!d actions that r~?qujre immecliate feed~a~::k to the ~Iser.

I)l:lC.l~ET 1~10. SA994~ Ml~ pA~ 3 ~L~7~

In other graphic~ procF-ssin~ systems, echoing c~n ~e the responsibility o~ terminal hardware and/or operating system so~tware at the tQrminal. In the -Former regard~
hardware echoing requires terminal hardware dedicated to specific applicationi if another application is desired, anuther set o~ terrninal hardware m~st be u~ed.
Operating system echoing is represented by c-~
minicomputer operating system such as UNI~ /UNIX is a trademark of ~ell La~oratories). In these s~fstems~ echoing is typically implemented at a very low lev~l of abstraction in much the s~me manner a5 an output device driver~ As in the case of hardw~re echoing~ operating system echoing incnrporateci a set o~ output-dc~ice-speci~ic response ~unctions. This results in a system which~ ~rom the standFoint Df the application user~ ic infle~:'iole and e~:tremely di~ficult to adapt to the needs and procli~itie of the ucer. Such syctems ~re not intended to be' alterable at the point where a graphics application program inte~acec with the system~ 5 graphics processor.
An objec~ of the invention is therefore to reduce the ~ime req~ired for ~n echo resFonse to ~e mc,de to user~-initiated acti~ns in a distributed multi-user ~ystem having a central com~uter which pro~ides application process ser~ices to the distri~uted ueerc.
SUff~RY UF THE }NVENTION
The solution to the ~roblem descri~ed in the b~ck~round s~cti~n is ~ounded on $he observation that echoing ~r reactlon ~rocesses can be e~:tracted ~rom a re(note application process and Iocated in pro~:imity t~ the e~ent registration and display support ~acilit~es o~ the sy~tem.
In this ~gard~ an application pr~t~col is located at a ~orkst~tion to ~e pro~imate to the application pro~rhrn input and display support service~. The application protncol r~ceiv~6 all user-initi ated actions ~nd separates computatlon-initiating actions requir ing appl:icati~n program X:~OCI~:ET N~. 5A~841i~;1 C IP~ hPP. D~

compL~tation or proces~ing fro~ actian~ requiring on}y an echo response. The tirst type of user actions are forwarded th~o~gh the ~ystem to the application program located in th~
ho=t compL~ter~ The second type oÇ l5er actions are S evaluat~d by the application protocol to determine the proper ~cho response and are passed to the displa~ upport ~acilities ~or echo resolution. It i~ recognized that o~le user actions may require both a computatior,al and an echo respon~e from the system. In responding to these action , the application protocol separates and forwards the portior.
~f the action requi~in~ computational response The echo p~rtion of the re~ponse is activated locally by the protocol.
Further~ the e~:tracted echoing processes are functionally located in the wor~station at the interf~ce ~etween the application proce~s and the local ~raphi C5 reso~rces. Consequently~ the application protocol can be e~pres~ed in s~fGtem terms at a relativel~f high level of abstraction not depehdent ~pon ~peci~ic characteristics of the outp~t de~ice pro~lding the echo. Thi 5 permit~ the protocDl to be eacily e~:pressed and con~tructed~ ~or e~:ample~ ~y being remotely progr~mmed at a workstat~on by the application program. Th~ invention t~ere~ore impaPt5 graphics ~le~:ibility and ad~pt~bility to the appl 3 cation pr~cessing conte~-t~ which are not provided ~y hardware and operati r~ sy~tem echoi ng .
~he invention ic e~:pre.sed as a method ~Qr controlling the echo of an application p~ocess to user-initiated actiDns at ~ man--machine interfac::e in a distribL~ted computational 3~) system that has indeterminate length message paf,sin~ delays.
The echo cont~oll~d is the reaction to user-init:iated action~ requirirlg a dire~t, u~e~-discernihle notification from the system wi thin b3Ltnded responC~e times but not:
r~qL~irin9 computation by the application process. In the method~ proc~C~s~s requiring ~ ?r-di~cernible echoe~i w-ithin J:)OOI~.El' NCI. SAc~B4!~ ) C I~ Pf!i.. D~3]

bounded response times but not requiring compLItation by an Rpplication process are e>:tracted ~r~m their cDunterpart applicatiDn proces3es~ The e?:tr~cted processes are located in pro~:imity t~ input and display support facilities of the system ar-d lin~ed directly to these ~acilities and to the application process. Input parameters dec~criptive of user actions are passed from the input f.acilities to the e>:tr~cted pro~esses within a fir~t interval. The echo response required to the i npLtt parameters i 5 ascertained ~y the e~:tracted proces~es withir. ~ Cecon~ interval.
F~rameters from--the extracted processes are pas~ed to the di~play support ~acilities for echo resolution ~ithin a third interval~ Fi~ally~ other parameters are passed from the e)tracted processes to th~ ~emaining applicat~on processes.
Alternatively~ ~he invention is a system for contralling the echo response o~ an appliccstion p~ocess to user-initiated actians at a man-machine interface in a di~trit~ted computational ~ystem in ~1hich the application process i 5 separated from the inter~ace by a message pa-thway that imposes indeterminate length ~e5a9e pa55i~9 delays between the application process and th~ inter~ce. The system includes a display far providing visual autput. from an application program to a user and a display ser~ice ..25 respon~i~e to ~pplic~tion program output parameters for operatin~ ~he display. Qne Qr more input de~ices provide ~pplication program input param~ers in response to user ~ctions~ and a messa9e e~:change serYice tran~ers ~pplication progra~ parameter~- betwQen the local system and the comp~tational sy~tem. ~n application protocol prQcess pro>:imate to the di 5pl ay servi ~E~ the input devices and connected t~ the inp~t devices, display service, and the progr~m ~):change service e>tractC~ from input parameter~
pt-ovid~d by the input devices~ inp~l-t paran\etet~s indicativ~
of u~er action requiring ucer-discernible re~ponse within ~OC~ET NO. 5~84~ 1 CX~Ml~ PI~.D~

~ounded response times, transformc the e~:tr~cced ir,put parameters into echo re5ponse paranleters~ ~nd passes the echo ~esponse paraMeters to the di 5pl ay service. The transfol-mation of e>~tr~,cted input parameters into echo rec.ponce parameters requi~es co~putation by an application program~
The a~ove stated ob;ectives and other ad~Jantages of tle invention will become more apparent when the follo~Jing detailed description i5 read in light of the drawings~ in which:
Figure 1 i5 a ~locl~ diagram of a distributed computational systc~m;
Fi~ure 2 i5 a block diagram illustratin~ in greater detail t~e m~or hlocl~s of a worl~tatior, in the distributed compLIt~tion~l cystem of Figure l;
Figure ~ is a block diagra~, illustratin~ distribution of application program processes according to the method of the invention;
Figure 4 ic a flow diagram illL~strating an e~bodiment o~ the invention as an 2ppl ication protocol procedure; and Fi~ure 5 is an illustration of data strLIctures utili~ed ~y the appliration protocol o~ Figure 4.
DETAILED DESoRIPT}O~ DF THE PREFE~RE~ E~BODIMENT
}n Figure 1 a distri~uted cumputational system includes ~ host p~oceCcor l~l which i5 connected to provide services t~ a Fl~rality o~ remotel~f-located user ~Jorl~st~ti~ns? two of : which ~re indicated hy 14 and l~. The ho~.t computer l~ is conYentionally configured ~ith a host operating system (OS) ~hat c~n~rol5 e~:ecution of application prog~ams stored in the ~omp~ter. As i5 I;nown~ the operating ~y~tem may include a contr~l program ~C~ that cooperates with ~he OS to control acce5s to ~nd U5e of host resources in the e>-ecution ~pplication pro9ram stored in the host comput&r l~
~epresen~ative o~ the OS and CP~ respecti~el~ are UNIX-h~t,~d operating system~ and the ~irtual P~50UrCe D~C~:ET NU. S~9a~ ) EIR~ PA.~ ]

7~

~lanay~r~ both available frDm I~M. Togetsler these stru tures are usecs in a commercic~ f-available IE
multi-user worl~str.tion sy5tem denotr-d as the IE'~ RT PC.
~ referably~ acces~ -to the hact computer b~ one cf the wor~ tations i~ provided through a communication Cervice ~4 hich has transmission path5 ~ ano ~ to t~le stations 14 ~nd 1~ and a cingle transmi5sior path ~1 to the host omputer 1~l. The communic2tion cervice ~ can comprise h conventional facility for interconnectin~ a plurhlit~
remote users to a central processor such as the host l~
The ~5 and CP are 50 structured a_ to permit the system of Fi~ure 1 to operate in a mode that c-sllo~s any number of active users to e):ecute application programs concurrently and to interact ~ith the programC during e):ecution. In thi respect a plurality of applicatior programca~ each L~rder thr-control of one or more ucers. cc.r be time-interleaved or e~:ecLI~ed in parallel in the operc.tiors ~f the host computer 1 ~1, Frr f~lrther det~ the resource complement of the worlstation 1~ is al~o sho~Jn in Figure 1. The wor~.tatior inc].udes a terminal ~1 ha~in~ a C~T display _~ ard an alphanumeric l~e~.board _~4. ~ cursor control input deYice~
commonl~ called a mousey is indicated by _~6. The ~e~board ~4 and mouse ~ are repreQentative of input devices that .25 permit a wor~station user to gain acces~ to~ and use an application progr~m in the host computer 1rS throL~gh the distri~uted.computation s~fstem of Fiqure 1. Alphanumeric l:eyboards are tandard devices that provide inpLt p~rameterC
to the s)stem in the form of codes in recponse to deFression ~f kevboard keys (called key stro~es ) The ~eyboard chn be used for inputting alphanumeric data or commands corresp~nding to function ~ey~ on thE ~eyboard.
The mo-lse ~6 is a conventional locator device ~Jhich is moved on a surface to provide locati~n and travel p~rameters ~or mov~n~ ~ cursor on the screen ~ s i5 conventional~
* Registered Trade ~ark of I~ Cornoration DOC~;El N0. SA9~4~1~) CI~Ml~ .D~_~3 ~7~

the mouse _~b includes one or more control buttons which can be depress~d for ~)ec~ting such ~ell-known ~lnctionC~ as the "pi c~
The di 5pl ay screen ~ can comprise any of a host o~
scanned devices which precent to th~ u5er graphical in~ormation in the form of figures and te~t The minimum complement of inp-tt and output devices specified for the workstation 1~ of Figure 1 pro~ide a man-machine inter~ace between the u er of the ~JOrk~tati on 1 and the sf~tem o~ Figure 1. It is tt this inter~ace that the user select an c~pplicatior~ program suit~d for his present needs and L~ses the input and o~tput devices to comm~nicate with and use the p~ogram in an interactive mode Fiy~re ? i llustrates in greater oetail the interrelationship o~ the hardw~Fe and software fonstructC
included in the ~lorkctation 1~ Also illustrated b~f means of Figut-e ~ is the indeterminate message pass3ng delay th~t so advers~ely a~ects application s~fstem echo response in the prior art Finally~ Figure 2 illu trates the interconnection of th~ invention ~lith the prior art constructs embodied in th~ workstation 16.
In Figure ~ the wor~statior I~ encompasses the display ~?~ keybsard ~4~ c~nd mo~e ~ already identi~ied in Figure 1. In addition, a dir~ct ctccess storcge facility (~ASF) ~8 which can compriC~e~ ~or e~ample~ ~ disk storage mechanism~
is als~ illL~sts-ated. These hard~lare de~ices are inteyr~ted into the distributed computatisnal system by mean~ o~
~lorks~t~tion so~tware structure~ including a so~t~a~E
operating system ~RS~ 4~, input driverc 4~ and 4B~ an~ a di~pl~y ser~ice 5~.
The operatiny system 4~ i5 con~entional and c~n compri~e~ for e~:amplf~l the UNIXfVF'Ivl combinatir~n clescl-ibed abo~,~t!~. lh~? input drivers ~6 anti 48 c~n comprise ~orl~tentional st~tware prt~ces5e~, whi~h are commonly termed inpLIt: handlt~rs c~r dri~ers~ Of co~r9e~ the inpL~t driver ~6 DOC~;El` NCI. 5.q9~4~ [Ç~Ml~1KP~ D:2;;]

~ ~ t~ 3~D

tr~nslates the physical manip~lation n-F the l~eybohrd by the user into input parametere for e~n ~pplication program in the host computer. Similar~yl the input dri~er 48 con~erts the me~nipula~ion of the mouse ~ and its buttons into application progr~m input parameters.
In the prior art in ~hich echuing is controlled b~ the application program, system ~esponses~ both compute~tional and echoing, are returned from the e~pplication pr~,gram as output par~meters~ ~Jhich e-~r-e fed to ~ con~entional display service 5~1 The dicplay ~er~ice is a so~are construct for converting the output p~re~me~ers into the contral signals that cause the display ~` to precent application responses ~isLIally to the user.
In the s~sLems employinr~ operating system echoing~ the re~pon~e ~unctions would ~e in the form o~ a driver-type so~ware constr~ct responsi~e to the opere~ting system and located ~etween the ~pe~ating system and the display Hardware echoing would require a direct echo path connection bet~een the input dri~ere ~ 4~ and the display ~.
In conve~tional distribute~ comput~tiorlal ~ystem struct~re~ thE operating system 4) ~ct= a5 the parameter interface ~etween th~ workst~tion resources arld the ree~ources ~ the ho5t computer 1~. In this ~egard~ the operatin~ 5y5tem 4~ would include a construct for ~essage-passing to support datea int~rchan~e traffic ~etween the wor~tation 16 and an application program in the host computer 1~. The construct also supports me~sage-passing betwePn the local proces~es in the wor~st~tion 1~.
~`har~cteristically~ communic~tions with thrs hoGt Comp~tL~ r~ f~cilit~ted by the cornmunic~tion~ ser~ice ~4~ which also ~-e~ves all of the other workstations in the distributecl computatiorlal system. E~ch wor-l~s~ation encoull~rrs ~n unbo~lnded del~y time in e~changirlg messag~s with ~ host computt~r ~pplication progr~m. The del~y time can be ur)~ler~tood by reference to Figure 2 wht?re a ~irst DOCk~`r NO. ~A~84~ IEIMl~lk;FA.D?_~]

d~l~y time Tl i 5 encountered when the wor~:stc,tic~n 1~ ha to contend wit~l ather wcirk~tations ~or a cammunic~tions path through the service ~4. Ne~:t, me~5age~ ~rr3m the worl~.tati~n that are communicateci to the ho5-t must compete for host S re-sources. In ~hi regard~ the ho~-t cc.n-puter n-ay ha~e number of r~ifferQnt application procecses underway in various stages of completion. In order For the mes~age~
~assed to the application proce--.s of interest to the wor~statiorl l~ to be processr~d~ the e;ppl icatiGn p~ograrn must compete wi~h these other host proceC.se~s for available stora~e and computatianal re~ources of the host computer 1~l ~his ccntention tlme i5 denoted as T~. Finally~ the roundtrip ~or a message ~nd its re~ponse from the w~rkstation to the host ard c.ack ~gair to the t~Jurkstation con=umeC a third time T_ Thus, the ~otal delay bett~leen è.
~er-initiateo action at the ~Jorkctation inter~ace and the re~pon.e the action ~timulates from the appliation program ie. T1 * T? ~ ~ Tl and T2 are indeterminate because it is never ~ertain how many contender.c~ there are ~or resources.
2G There~or~ when a user-initiated action is taken against the keyboard ~4 or the mouse ~ the t-ime ~or a response to that action tu appear on the screen ~ is unbounde~
It shs~1d ~e evident th~t ar. indeterminate del~y can be tolerated when a user action requires computation or .25 processir.~ since the ~pplic~tiun program i5 at a dist~nce fr~m the ~or~stcttion l~. Hot~ever5 tlh~n the user action reguires no c~m~u~ation ~ t.he ~pplication program and requires anly an echo reeponce ~rum th~ system t~ confirm the action~ the sy~tem dela~ can ~ecome intolerable. This i5 particul3rly true when the user i_. m~ing a cLtrsor by me~ns o~ the mwL~se 3~ or acsembling a command in the Form oF
a ch~l-ac:ter ~tring by u~ing the Ite~fb~ard ~4. In these cases~ the u5er req~ires immediate cQnFirmation thi~t the syst~m has r~gistered his action ~o that he can immedil3tely 3S ullder~ake anQther. For e~:ample~ i F the user is ent~r-ing a DOC~ET ~O. ~9B4L.~I~) LI~ J~F:~A.D~
.. ....

~;~7~

~12-fQrmult by means o~ alphan~meric key~. on the ke~board ~4~ he ~ill want fapid onfirmation of the entry cf ea~h ~:ey~tral~e, which will be registered by ha~ing the charactQr corre.p~nding to ~hæ actuated ke-J appear on th~S ccreen 32~
Ideallyy such response ho~ld be virtuall~f in~tantaneous;
de-sirabl~ the ~ime o~ such a responce should rlot ~ary. In : thi 5 re~ard~ the echo response hou]d occur ~ithin a bounded response time. Obviou~ly, this cannat t~e achieved if the remQte appliccttion program does the eLhoing~
The invention o~ercomes the indeterminate re~ponse time problem of the prior art system ~y providing an ~tpplicntion protocol ~ and an echo pathway 5~ repre~ntiny ~hE
connection Q~ echo respctnses from the protocol ~2 to the ::. service ~). In addition~ another pathway ~5 repres~Snts the trans~r o~ applicc-~tiQn progr~m computation responses to the display ser~ice by the c~pplicc~tion protocol. ~he applicat~on protocol .-~ is an independent process tha~-t can be downloaded to the ~torkst~tiorl 1~ at the time that the workstation i~ initiali~ed ~ith re~pect to the host computer and ao application program at the ho.t i~ ~Sele~ted~
30wnloading~ or r~mote programming~ is a well-Ltnderstood process ~y which the host computer li)~ under the cnntr~ol ~
the selected application pro~ram, transmits the interaction protocol as a s~ries of comhands to the worl:station lb. The ~25 warl:station operatin~ ~fstem can con~entiunally compile the commands ~ an independent procesC. and linl~ it to the input drivers 4~ ctnd 48 and to -the di 5pl ay ser~ice 5~)~ The protQcal cO~ is also linked to the oper~ting system 4~
althou~h only for the purpose o~ communicating with the 3~ applicatiQI~ program at the host comput~r l~t.
~lternati~elyl the application protocol can be stored tageth~r w~th other applicatian proto~:ols in the ~torage facility _~ o~ the l~or~station and retrie~ed ~,Jhen an applicatian progr~m ~ith ~hic:h it is intended to be u~ed is c~ d ~t t:he ~ork~tation 1~ ~t this time~ the protocol DOC~;ET N~ c~a~s~sl~ CIE~ P~.D~
- ~

~27~

, ~ould be retrie~ed and ,cti~e~ted b~ the ~orJstation CIS. In this case~ the application protocal5 can be entered into the worl~station 1~ by the user, ~ho would er~plo~ weell-understood prc3gramming techniques to ma~e such entry. This ~lould 5 permit the u~er to tailor the protocol 5 to the user~ 5 personal r~quirements.
A5 illustrated in Fi~ure ~ the applichtian protocol 52 receives a}l application input parameters fron. the input dri~ers 4~ e~nd 4~ and all output param,eters pro~ided hy the application pro~ram in the host co~nputer 1~ ur,der the conditions ~et forth ~elow. 3n additian~ the applicettian prot~3col passe~ all c3utput paret~eters7 ~Ihether computational or echo response~ to ~he clicSpla~f ser~ice 51.
Turn now to Fioure 3~ which illustre~tes five ~ 15 ir,dependent proce=ses: the two inp~t drivers 4~ and 4~ the ;~ dicplay C.ervice 5~ the ~pplicatic3n protocol 5~ and an application prc3gr~m 53 in the host computer 11. The plOCes_~e~ ~omnunicate t3~ cGn~entioneal mes~age~-paesinQ or other equlve~lent inter-process communication paradigms.
Functionally~ the application prc3to~01 is conn~cted direct}y to the dri~ers~ the displaJ service~ and the application progr~m. ~ccordin~ to the invention~ ~hen input data is generated t3y an inpu~ de~ice~ the ~ssociated input clriver i5 activated and will per~orm certain cc3ntrol function~ on it~
~25 a~sociated input de~ice and e~:tract input parameters and status code~ ~rom the device. The input paramEters are formatted ~nd communicated to the protocol 5~.
The receipt of data ~rom an input d~iver causes the applica~ic3n protocol prc3cess to he dispatched. In this 30 respect~ the protocol anal~fzes status cocles ~nd input parameters and ei-ther send~ parameters acros~ the communic~tion ne~wc3rl~ to the applic~tion pro~r~m in the hos.t computer l~)~ or sends commands to the display ser~ice ~ or both~

D~C~.E~ N0 SA9~QI1~) CIE(M:L~I~P~

r3 The receipt o~ input parameters for the ~pplication prngram at the host computer l~i~ will e~entuenlly cause dispatching of ~he application program in the ho~t computer, s~bject to the a~ e-discu55~d communicatior)~ networl~ and S host re~ource allocation delays.
It i5 i~portant to note that the application protocol 52 and application pro~ram in the host computer 1~l are considered to be as~nchrono~s processes e~:e~lting in pe~rallel. Parallel e>~ecution permits the echoinq ~unctions ~llocated to the protocol 5~ to proceed concurrently with and independently o~ the e>~ecution o~ the applic~tion program~ insurin~ the tounded response of the echoin~
~unctions. This ies important when a user-initiated ee~ent requires ~oth a computati~nal response b~J the appliccltion pro~ra~ and an echo response ~y the protoc~l 5~. This ~,ay happen! for e~:ample~ ~Jhen a user enters the last ch~re.cter in a character ~tring con~tituting a commar,d mnemonic; the apFlication prQqram must execute the comme~nd~ and the user must be notified that the character has been appended to the string. Thus~ the protocol e~2 pro~ides a t.rar,ch directly to the display ~er~ice 5l ~or the time-critical ~pplic~tion response p~ths and a hranch ~o the application prog~e-.m in the ho~t for application code paths that are not time c~i ~i c~l .
In Fi~ure 4~ and in ~he e~:planatior, ~lhich f~ ws~ it i5 a~umed th~t ~he application pro~ra~, eelected by the user o~ worl~station 1~ is a "c~preadsheet" program ~hich ~i~.plays outpu~ p~rameters ~or the user~ 5 inspectiDn in multi - dimensiQnal matri~: o~ "cells" on the display ~2.
~Such a cell i5 indicated by re~erence numeral 56 in Figure ~.) Each cell constitutes a ~ork area used for echoing to the user his pro~ess in inputtin~ and editing d~ta andJor f ormula5. A~ i 6 ~nuwn~ the u~er indicates which parti c~llar cell of tl~e spr ~d~heet he de~ires to use by mo~ing ~ cur~or ~referen~e n~l~neral 58 in Figure ~) to a F3asition on the DOC~;E~ N0. ~A9~4~ IB~ P~D~

~ ~723~3~

5creen a559ci ated ~ th the cell~ ~Jhen the c~r~or i moved to the cell po~ition, the cell is highlighted~ ~Iu~lly by inverting the Yideo signal for the cell. Con~entionally, each cell has asociat~d with it dat~ constituting te~:t~ or a paretmeter in the form of a nu~.ber nr formul~. When a cell is highlighted~ the application program a~sumes that all user actionG~ ~ollowing the highliyhtir,g are to be tal~en again~t the data contents 8~ the cell. Thus~ for a highlight~d cell~ parameter valLle or formt~la can be changed by user operstion of the l~eyboard.
Characteristically~ spreacl heet programs al50 pro~ide a status area in the spreadsheet di~play which cc.ntains status area rele~an~ to the highlig~ted oell. Commands are input ~o spread~heet programs ~y the use of command ~eys or command mnemonics entered b~t~ ke~Jboard. In moet ~ases~ the echu to the user of command invocations is pro~ided in the st~tus field of the spreadsheet display. The spreadsheet program typically ditingttishe bet~een cell election and cell content editing on the one hand ~nd commGInd in~ocation on the othe; bY means of a stat~s code that i~. set by con~entional processing means in respon~e to user ~ctions.
When the status code indicatG;~ the first set of actions~ it - is implicit that echo-type responses are to ~ pro~fided to the user. On the other hand~ for the ~Gecond type 8~ action 9 .25 computational responses are e~:pected.
Fi~re 4 illu~trates a flow chart embodying~ at a high le~el~ the beh~Yior of the application protacol 5~ f~r a spr~ad~heet program in reCpon~e to ~oth types o~ user actions. The application processing paths which merely 3~ ca~e screen change ~cursor moYement~ cell high~ighting and t~t~ data~ or f~rm~la editir.g~ ha~e been e~:tr~cted fron~
th~ main body of the spread~heet application program and placE~d in the appli~ation procedure 5~. Since these are the actions for which a baunded re~pon~.e time i5 required~ they are cQn~;idered to be time critical data pat:hn and are ~ound Dl:ICl~ET NO. 5~qf~ i C I~ ~il`;p~ D~
.

.

on the right-hand 5:i de Df the dashed line 5~a and the left-hand aide of the dahed line 5~b.
In Figure 4 the proce~sing paths $or actiors which cau~e a re-eva}uation of the e~preadsheet or some othe~
conp~tt~tion on the sprea~sheet to take ple:ce are sho~n between the dashed li~es 5~a and 5~b. ~owever~ those parts o~ these paths ~hich reguire echoing by the displey are e~:tracted into the procedure o~ the application protocol.
In operatiwn the procedure of FigLlre 4 recei~es inpL~ts from the ~eyboard driver 4~ and mouse driver 4~. Initie~lly~
the e~ppl i cation protocol will determine ~n the basis of the current di e~109 ctate ~which corresponds to the a~re~entioned dial~g code~S the type of action to take in ~ response to ~eystro~e code~ pro~ided by the ~eyboe-rd driver.
The machine state ce-.n ~e ~ conventiDnal data $1ag he-~ving two states in the sp~eadsheet application conte):t~ The ~ir~t state will indicate ~hen the ~ouse c-lrsor i 5 currentlf on e~
spreads~eet cell~ in which case the protocol ~ill interpret keystroke codes e~5 modifying the cDntents of the cell containing the cursor. Other~lise7 i~ the ~ouse is inactive and ~ speci~l co~rmand in~ut signal has ~een recei~ed ~such as r3ne ~rom the ~eyboard) the protocol will in~erpret keyst~oke codes as cG~mands or command mnemoni c5.
When determining acti~n in the ~.preads~eet embodimentl the ~rotocnl prefera~ly identifiec foL~r kinds of furction7 one ~ which will be a~i~ned to inconing keystroke code par.~metersi it seIect~ the key action in step ~1. In the first function7 keystro~:e~ can be regarded as cau~ing ~ecomp~tation and redisplay o~ the current spreadsheet t~bleau~ onventionally~ such a funetion would be indic~ted by the code ~or the E~TE~ or ~ETU~N ~e~ ~n the ~:eyb~ard. The ~ec.~3nd ~:eystro~e func:tion path would tle assrJciated with ~eystroke codes identi~ying a command ~nvironment or designating a particular comm~nd~ Fo~
ex~mpl e~ it is oftes~ the case that the C ~ ?y of ~ ~ey~oard DOt:~;ET NO. 5~9B4~l11 C I~l'tl~ A. D?;;~
.. . .. ~

~ ~7~

indicates a command for copyiny a ~ormula entert~d onto spreadsheet. In these ~ir~t t~o leystro~e c~se~ user actions cause re-e~aluation ~F the 5preatisheet, nr re~llt in some spreadsheet cotnputation being undertaken. In the firct case~ the actions t3f the protocol are the three procedure steps contained in the ~NTE~ or ~ETUR~I branch o4 the procedure. In the first step of ~his brarch, the protocol conctructa a comtr,and fol~ tran~mission to the ~pplication program and sends the formatted commantl to the application progr~m. This step is indicated by reference numeral ~.
In step ~ of the procedure~ the protocol await~ a re ponse from ~he ~pplicatior program ~o the cotnsnand. ~Ithough this - is ~hown a5 a discret~ step, it is not necessarily the c~e that the protocol will su~pend all operations while awaiting the reply. It ~tu~d be posc;i~le to employ an operating systetn and protocol ~on~-tructc, that permit the prt3tocol to ct~nduct other processes ~Ihile the application program is respondino to the transmitted command. Whate~er message passing paradigtr, is employed by the operating system, when the application prc~gram response -tt3 the transmitted command is recei~ed, the protocol ~ill underta~e to have t~e spre~dsheet di~play changed to reflect the ~esponse ~5tep ~4).
~t this point in the procedure of Figure 4, the actions .25 ~emaining to complete the ENTE~ or kETU~N branch o~ the procedure are identical to those taken in response to a ~:~ystrD~:e code indicating a oommand. The~e step~ are indicated by reference numerals ~ and ~7.
In pro~edure step ~ entry of a ~:eybDard command~ or ~mpletion of an event initiated by application program computati~n first invol~es selecting and displaying a new se~ of prompts 'tD the u5er in ~ command area of the ~pread~eet display~ This is a conventi~nal reaction of an in~ractiv~ application program to a user-initiate~d action that cause~ a change of state in the system~ Se~e the Foley DIJCI`;El- NO. S~91341~11 CI~ PR.D2~

and Van Dam reference at pp~ ~7-~0 Following the interactive reaction of the program~ ~he dialog statLts ~machine stctte) code ~ill be changed to control the protocol response to future input ~rom the mouse or ~eyboard. After this~ the pro~ocol e~:its and wait for another input.
The third type of action function recogni~ed by the pratocol is ta~en in respQnse to ~eystroke.s which modiFy ~r supplement te~:t displayed in the spreadsheet or the associated command and status areas~ In thi5 regard~ wt-en the mouse cursor is lt~cated in a spread~heet cell~ the EDIT
function recpond- to keystro~e code paramett~rs provided by the keyboard driver ~y changing information in the cell or aresa. Thus~ in the EDIT ~ranch ~f the procedure~ each time a l~e~tro'~e codes i5 receive~ the code is collected in a huffer in step 7~1 and the l~ey code is echoed to the dispIcty ccreen in step 7~. Finally~ the fourth ~unctior involv~ss keybo~rd cursor commands ~Ihich move the cursor controlled by the l;eyboard. It will t~e evident that the ~ey~oard cursor i5 distinct and dif~srent from the mous~ cursor and i5 U5ed primarily ~or data entry and editing. The ke~30ar-d cursor command protocol function path requi~es that the protocol respond to k~yboard cursor input paramet~rs ~y updati~g the locati~n information e~tablishin~ the point at which th~
~:eyboard curc - or i 5 di 'pl ayed and then echoing th~ new cursor position by changing the position o~ the ~eyt30ard cursor on the spreadsheet di 5pl ay. These two steps are denoted by re~erence numerals 7~ and 74 in Figure 4.
It ~hould be noted that mouse curst3r c~mmands received ~rom the ~ousts driver 4B will a}50 be echoed ~y the applitation pratocol in a pr~3cedure virtually id~ntital ~ith the CU~SU~ t~O~lMAND branch o~ Fioure 4~ In this regard~ the ~pplication protocol 52 receives input~5 from the mouC~e driver ~ determine5 the acti~3n tn take in responL3e to the mQuse input~ based on the current machine state and then sel~cts the mouse cursor action~ For mouse cursor DOt~;E~ NQ. ~84~'11 CI~Ml~ PA.D~

36~

movements~ the application protocol L~pd~tes the cur~or location and echoe~ the new cursor l~cation b~f moving ~he cursor. I~ the cursor has mo~ed to a new cell location~ the protocol obtains the dat~ ~s-ociate~ with the new cell, ~ormats the d~t~ for displa~f in the cell and status area1 and ~choes the ne~ c-~rsor position. For a ne~ cell location~ the mouse cursor echoing ~15D invol~es highlighting the new cell corresponding to the updated mouse cursor position, unhighlighting the old cell ~Ihence the mouse cursor ~Ja~ mo~ed~ and displaying the ne~ cell infrrmation.
As sho~n in FigurE 4, the third an~ ~ourth keyboard code action ~unctions and the mouse cur~or ~unction ~ollo~
time-critical ~ata paths in the ~pplicatior) protocQl~ Since the application protocol has been located pra~:imate to the ir.put devices and the output de~icey the ap~rent time response o~ the application prograa, in reacting to these user-initiated ~ction ~unctions is lecs than that ~Ihich wc~ld be evident if the res~onse was undertaken by the remotely-locat~d ~pplication program. Echoing of functions e>:tracted from the application program and locali~ed at the ork~s~ation in the form o~ the application protocol 52 will . . ~
involve a data routing path having three distinct time interval~. When ~ne ~f the input de~ices is operated to ~25 produce a time-critical action~ the k~eystrol~e code parametQr will be passed ~rom the input drive to the application - protocQl in ~ first time interval. Receipt of the paramet~r - will cause e~:~cution of ~he applicati~n protocol by conventional means in the w~rkstation operating system. In 3~ a ~econd time intervaly the application protoc~l discriminates the keyctroke code or the mouse cursor parametcr ~nd e~:~cutes the appropriate function pattl in the procedure illu~trated in Figure 4. In the third time inter~al~ th~ appliation protocQl will ser)d one ore ~nore DUC~ET N~. S~9~ CI~ t~A.D~
- , . . :: . ... ~

con-~ands to the di 5pl ay ser~ice to c~mplete the echo respon~e to the user action by changing the di~pl~y.
Fig~re 5 illustrates ~he data hnd processin~ structural relationships necessary to support the operatior7s of the application prot~col 5~ in executiry the prucedure uf Figure 4 throu~h the peci~ic procedural emh~diment contained i~
~he ta~les below. ~c sho~m in Figure 5~ the uperations o~
the application protocol S~' are syrchronized ~ith the processing operati~ns of the dri~ers 4b and 49~ the displa~J
servic~ 5~ and the applic~tion program ~; through the ~acilities of the message ser~ice 8~ 5 is .known~ the mes~age service ~orms a specific process in the wor~station operating s~Jstem 4i~ Alttough a ~ariet~ of message passing facilitie~ hr~ commercially available~ one paradigm i~
em~odied in the ~D~ ~.ende2~0us technique described in the volume by H~ ~. Deitel~ entitled "An Introduction To Oper~ting Systems~" AD~ is a re~istered trademar~ of the United State~ Government~
In addition~ the app~ication protocol S~ requires acces~ to specific data structures held in the torage facility ~8 of the ~orl~stati~n lb~ The data structures-include a li~t o~ commands ~ LIST) ~2 that i~ stared in c~n~entional lool-up table ~rmat in which each valid c~mmand has associated with it a unique command inde~:. Q
command ~uf~er ~CMD ~UFF~ 8~ i5 provided into which command char~cters entered on the keyboard are held. Data is placed in the command buf~er 84 when the machine -tate indicator i~dicates a comrrand ig being entered and the user enter~ a comm~nr~ n-remDnic ~ic~ the keyboard. A command cr~un~ fieid ~;
C~D) ~5 I:eeps tr~c~ o4 ~he nurnber of comrnands un the command I i st ~2 th~t crJrrespond to the command mn~mortic repre~ented by th~ r.~ar,~ct.e~ stPing held in the command buffer Q4~ The list ~ comrnand indice~ carrespondi ng to the character ~trirl~ in tll~ command buf ~er i~- kept in C~D NQS ~1.
.

DOCI~El N~. SA~4~ 1 [I~ PA.D~3]

7~

With rega~-d to the spread~heet di~play data st~ucture~
the application prt~tocol 52 has acces~ to a spt~eadsheet ~SFDSHT~ cell ntap 87 which ca~ compt-ise a cortventional tattLll~rized data 5tructure containing the value and ~orm~lla 5 ass~ciated with each non-empty cell in the displayed spreadsheet. The cpreadsheet cell m~p i~5 constructed to be inde>:ed by the position of each c011 in the ~pread~heet displa~. Thus~ the table entry for any particL~lar cell i5 accessed by its display cQordinates and containC the data, parameter v~lue5 and the fDrmula for the cell. The identi~ication of the currently-highlighted sFtreadsheet cell is held in ~ data field labelled ~ELL ID~ which i5 indicated by re~erence nu~eral 8~. The data content= ~ the cell denoted by the en~ry in the CELL ID parameter ~Q are held in I5 the data ~ield la~elled D~TA VAL and indicated ~y re~erence numeral ~. The position of the key~o~rd cur~or ~CH~t~ IN~
is in the ~ield indicated by 91~ The ~.ouse ~ursor poeitiDn X-Y coordinate~ are in data field ~2. Finally~ the identificati~n of the cell to ~shich the mouse cursor has jL~t been mo~ed ~NEW CFLL ID~ is in data field ~4.
The app3i~ation protocol 5~ accesses the dat~
st~uctures illustrated in Fi~ure 5 by con~enti~r.al data res~urce ~anagement means in the ~or~ing ctation opera~ing system.
.25 ~ speci~ic ~ode implementation o~ the application protocol 5~ illustrated ir Figures ~-5 is gi~en in Tables throuch i~. Tables I through I~ constitute ~Ll ~ode li~tir~g~ that will be underst~od by those in the art ~5 ~e~ining specific protedures that e~body the application protocol ~ o~ Figure 4.

Dl:IC~;E.l- NO. 5~ t~PA. ~2 , ~7~

T Q~LE I
J* E~ample Application Protocol Procedure ~or Spreadshee~ *~
DCL applic_id FIXED ~IN (~l); J* identifier of application process *J
DCL ap_id FrXED ~IN ~ J* id of application protocol test *~
kbd_id FIXED E~IN ~1), /* identifi~r of ke~oard task *J
mouse_i~ FI~ED E~IN ~ J* identifier of mouce ta~lt-~
msg_id FIXFD E~IN ~_~1), J* identi~ier ~f recei~JerJ ~ne~sage *J
sender_id FI~ED EIIN (Y~ J* identifier of message ender *J
msg_ptr POINTER~ /* pointer to message te~t ~J
dial_state FIJED ~IN (~ J~ 1 - command~ ~ - cell data ertry ~J
cmd_list ~ ) CHA~ JhR~
J* list of pOc i~le command~ ~rom a~rev */
cmd_buf CH~R ~2~ V~
J* current commar~ input characters *J
k_cmd FIXED ~IN (1 ),;* number o~ cmds i~l cmd_li~t *J
cn\d_nos ; 2) FIXED RIN ~
J* inoices of cmdc in cmd_list ~J
app_msg id FI~E~ BIN ~31~,J* id of message to application *J J
cel}_i~ FI~E~) ~IN ~1), J* identifier of spreadsheet crll *~
data_val CH~R ~ ) VA~
J* da~a contents ~ ~readsheet cell ~J
char ind FIXE~ ~IN ~
~* text cursr~r position in cell *J
current-~ FI~ED ~IN (15), /* mouse cursor pocition on the screen *J
current_y FIXE~ ~IN ~lC)~
J* muuc~e cursor posi~ion on th~ screen *J
new_c~ll_i~ FIJED BIN ~
~* id Q~ cell c~rsor iust movr~d to ~J
l applic_msg ~SED, J* structure o~ meC~sage ~om applic~tion *J
2 appl ic_cocle FIXED ~ 15) ~ ./* me~sage code 3~J
1 I:bd_m~g EIASEI:)~ i* structure of me~sar~e ,f~rsrr~ keyboa~d task *i~
:2 ~:~d char CHAF: ~1 ), J* ke~f~lr~ard ~ode *~
m~se m~g E~SED~ J* strL~ct~e of message ~rorr~ mouse ta~;k *J
~ mouse_button_l EIIT ~ J* 'ii)çl~ B -- no button chang~ */
mouse_buttor_:2 BIT~ y J* '~tl~R -- up tranitior~ ~l mouse_button~ IT(~) ~ J~ dc~wn transition *J
mouse_~: FIJEO F~ 15) ~ ~* delta ~
~7 msL~e_y FIXFD E~IN ~15~ ~ J~ delta y *J
1 ~pp cmd_m~gy J~ structure of ~pplication cornmar)d ~ app_cmd CHAF;~ AF~, /~ commar)d 5tri ng *~
1 app_data_m~ J~ str-~ctL~re of appli~ation data rr~g ~pp_,data_id FIXED E~IN ~l ), J~ id of ~preadsheet cel 1 *~ tem :2 app_c:lata_val CHAr~ 1) VAF:~ J~ c:el1 ~e):t ~

I:AI L l`l`fID~pp_id~ i J* 5y5tem furlctiQn returr)s id ~f this process ~f C:ALL SYSI1~ E YE~U~RD~ bd i ri~

~CIC~E 1' N~:l . SAY~4 ~1 ~ C I E~M 1 ~ P~ ~ Dr ~i~

~ * e;ystem ~unction returns name o~ ke~board ta~ *~
CALL 5Y51D ( M~USE~ ~ouse_id);
f~ ~ystem function returns name ~f mou5e task *~
dial_stat~ ~ l; ~ initially command input */
current~ Ç ~* initial mouse cLlrsor position ~t origin current_y ~ ~;
S
~ eferrir)g now to Table I~ a series of declaration statements ~DCL) establish ~ari~ble5 in data structures and ~et ~Ip the structural conte):t for the messelyes passed an~
received by the application protocol. Thus~ identifier-s are established For- the application proyr~m ~ the application protocol 5~ the ~:eyboard driver 4h~ the moue driver 4~
~or received messa~es~ and for a ~essage sende~. For the sal~e of the ~pre~dshe~t applicatior, e>:ample~ asumed that the mes~a~e servi ce ~ queues i ncoming and outgoing me~ages in con~entional linked-list form~t in whish a message pointer Imsg ptr) points to the locatian o~ the identified message. The di~l_tate structure 3ndicates that the wor~st~tion l~ is in a com~and mode when the ~alue l is tored~ and denotes non-command status hy the value ~ The command list ~ command b~ er 84~ and command counter 85 are all declared in T~ble I. The indices oF the commands in the cQmme~nd list 8~ have a ~eclared data structure ~cmd_no~ esages transfe~re~ to the application program hy the e~plicati~n protocol have ar iden~ifier ~app_msg_id).
The cell ~pace ID 8~q~ data cpace ~L q~l~ CHAR IND ~l, mouse cursor ~? ~c~rrent sp~ce ~:~ Llrrent space y) and NEW CELL I~
~4 data structures are all declared in Table I. ttess~ge struct~r~s and codes ~or application~ k~yboardl mouse~
application command~ snd appli~ation data messages are all defined in T~ble I~ Finall~ the applicati~n protocol 5X is initiali~ed by obthining it own identification and iderltific~ions for the t~eybo~rd and moLIse drivers from the system ~C~LL ~I~ID~ C~LL SYSID ~ I~EYE~O~D~)~ C~LL SYSID
~ MOU5E~)). Th~ di~l state is initiali~ed to 1~ :implying that the ap~lication protocol 5? will initially e):pe~t DC~t;Er N~ B~ CI~ lt~;FA.D~

~t~23~

keyc~tro~es to be command inputs. The :initial position ~f the mouse cursor is placed at the lower left hand corner o~
the display s~reen~ that is~ at the two-dimensionhl origin ~f the spreadsheet di 5pl ~y.
In the tables which ~oll~w~ the application protoco~
e~:chanyes messages with the device handler~.~ the display service~ and the applicat30n pro~ram. Me~sages are transferred by the ~ollowing called functions: GETMSG, ACC~lSG~ REJ~lSG, and SENDMSG. The GET~1S~ routine will obtain a me~sage from a queLIe of input messages~ while the ~CCI'1SG
will provide a handshaking ackn~wledgment to the transmitter of the obtained message i~ the message is accepted~ I~ the message i5 rej~cted~ the application protocol ~Jill call ~E~1SG to p~ovide a negati~e acl.n~wledgment ~f ~es~age receipt. For transferring messages tD ti-,e displ~y ser~ e or applicati~n program~ the application prot~c~l will call the SEN~SG function to h~ve the mes~age ser~ice ~.end the message to an i~entified process. For the purposes of echuin~ to a user the user~s input actions, the applicati~n protocol will call specific functions that ~re executable by the display service 5i;l These functions includ

Claims (6)

The embodiments of the invention in which an exclusive property or privilege is claimed are defined as follows:
1. A method for controlling the echo of an application process to user-initiated actions at a man-machine interface in a distributed computational system having indeterminate length message passing delays, the user-initiated actions requiring a directs, user-discernible response from the system within bounded response times, comprising the steps of:
extracting from said application process processes requiring user-discernible responses within bounded response times from their counterpart application process;
locating the extracted processes in proximity to event registration and display support facilities of the system;
ascertaining the echo response by the extracted processes to input parameters within a second interval;
passing other parameters from the extracted processes to the display support facilities for echo resolution within a third interval; and passing parameters from the extracted processes to the remaining application processes.
2. A system for controlling the echo response of an application process to user-initiated action at man-machine interface in a geographically distributed computational construct in which the application process is separated from the interface by a message pathway imposing indeterminate length message passing delays between the application process and the interface, comprising:
a visual display for registering responsive by an application program to user actions;
a display service means responsive to application program response parameters for operating said display;
one or more input means for providing application program input parameters in response to user actions;

DOCKET NO. SA984010 34 [IMB10KPA. D23]

application protocol means proximate to said display service means and said input means and said program exchange means for extracting, from input parameters provided by said input means input parameters indicative of user action requiring user-discernible system response within bounded response times, translating said extracted input parameters into echo response parameters, and passing said echo response parameters to said display service, said application protocol means including processes extracted from said application process and requiring user-discernible responses to user actions within a bounded response times
3. The system of Claim 2 further including program communication means for transferring application program parameters between said application protocol means and said application process.
4. The system of Claim 2 further including message passing means connected between said application protocol means, said display service means, and said input means for passing messages containing said input parameters from said input means to said protocol means and for passing messages containing said translated input parameters from said protocol means to said display service means.
5. The system of Claim 4 further including program communication means for transferring application program parameters between said application protocol means and said application process.
6. The system of Claim 5 wherein said message passing means is further connected between said protocol means and said communication means for passing messages containing input parameters indicative of user actions requiring DOCKET NO. SA984010 35 [IBM10KPA.D23]

application process computation from said protocol means to said program communication means.

DOCKET NO. SA984010 36 [IBM10KPA.D23]
CA000532020A 1986-04-30 1987-03-13 Method for application software control of graphical interaction techniques Expired - Fee Related CA1272300A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/858,470 US4901223A (en) 1986-04-30 1986-04-30 Method and apparatus for application software control of echo response
US858,470 1986-04-30

Publications (1)

Publication Number Publication Date
CA1272300A true CA1272300A (en) 1990-07-31

Family

ID=25328382

Family Applications (1)

Application Number Title Priority Date Filing Date
CA000532020A Expired - Fee Related CA1272300A (en) 1986-04-30 1987-03-13 Method for application software control of graphical interaction techniques

Country Status (5)

Country Link
US (1) US4901223A (en)
EP (1) EP0247329B1 (en)
JP (1) JPS62257564A (en)
CA (1) CA1272300A (en)
DE (1) DE3788748T2 (en)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5418965A (en) * 1988-06-24 1995-05-23 Mahar; Robert C. Subroutine-type computer program for enhancing the speed of data processing in data management programs systems
JPH0227468A (en) * 1988-07-15 1990-01-30 Brother Ind Ltd Document preparing device
US5287450A (en) * 1988-09-29 1994-02-15 Mitsubishi Denki Kabushiki Kaisha Video signal brancher
US5034916A (en) * 1988-10-24 1991-07-23 Reuters Limited Fast contact conversational video system
JPH0743683B2 (en) * 1989-02-13 1995-05-15 日本電気株式会社 Protocol machine
US5179660A (en) * 1989-05-15 1993-01-12 International Business Machines Incorporated System for reducing communications overhead in distributed database transactions by serializing in order related requests into single transmission message and receiving transmission response
US5799320A (en) * 1989-08-23 1998-08-25 John R. Klug Remote multiple-user editing system and method
US5708810A (en) * 1989-10-10 1998-01-13 Unisys Corporation Image-based document processing system having a platform architecture
US5553223A (en) * 1990-04-03 1996-09-03 U S West Advanced Technologies, Inc. Method and system of selectively transmitting display formats and data between a host computer and an intelligent terminal
US5396587A (en) * 1990-04-11 1995-03-07 501 Lotus Development Corp. Asynchronous, minimal update display system
EP0553285B1 (en) * 1990-10-16 2000-03-01 Consilium, Inc. Object-oriented architecture for factory floor management
TW198107B (en) * 1991-02-28 1993-01-11 Ibm
US5265239A (en) * 1991-04-08 1993-11-23 Ardolino Anthony A Method for remotely accessing service programs of a local processing system supporting multiple protocol stacks and multiple device drivers
US5437014A (en) * 1991-12-31 1995-07-25 International Business Machines Corporation System for supporting mouse button events of dependent workstation terminals connected to main processor executing multiple application programs
US5528490A (en) * 1992-04-10 1996-06-18 Charles E. Hill & Associates, Inc. Electronic catalog system and method
US5471616A (en) * 1992-05-01 1995-11-28 International Business Machines Corporation Method of and apparatus for providing existential presence acknowledgement
US5513328A (en) * 1992-10-05 1996-04-30 Christofferson; James F. Apparatus for inter-process/device communication for multiple systems of asynchronous devices
US20020091850A1 (en) * 1992-10-23 2002-07-11 Cybex Corporation System and method for remote monitoring and operation of personal computers
US7064749B1 (en) * 1992-11-09 2006-06-20 Adc Technology Inc. Portable communicator
US5617542A (en) * 1993-09-10 1997-04-01 British Telecommunications Public Limited Company Keyboard terminal with rapid keyed character local display that is altered if character transmitted to host is not timely acknowledged
WO1995010085A1 (en) * 1993-10-06 1995-04-13 Christofferson James F Apparatus for inter-process/device communication for multiple systems of asynchronous devices
US5771354A (en) 1993-11-04 1998-06-23 Crawford; Christopher M. Internet online backup system provides remote storage for customers using IDs and passwords which were interactively established when signing up for backup services
US7080051B1 (en) 1993-11-04 2006-07-18 Crawford Christopher M Internet download systems and methods providing software to internet computer users for local execution
US5546538A (en) * 1993-12-14 1996-08-13 Intel Corporation System for processing handwriting written by user of portable computer by server or processing by the computer when the computer no longer communicate with server
US5742845A (en) 1995-06-22 1998-04-21 Datascape, Inc. System for extending present open network communication protocols to communicate with non-standard I/O devices directly coupled to an open network
US5732283A (en) * 1995-10-24 1998-03-24 International Business Machines Corporation System and method of providing universal support for multiple pointing devices
IL126142A0 (en) 1996-03-15 1999-05-09 Zapa Digital Art Ltd Programmable computer graphic objects
US5768133A (en) * 1996-03-19 1998-06-16 Taiwan Semiconductor Manufacturing Company, Ltd. WIP/move management tool for semiconductor manufacturing plant and method of operation thereof
US5970471A (en) 1996-03-22 1999-10-19 Charles E. Hill & Associates, Inc. Virtual catalog and product presentation method and apparatus
US7509420B2 (en) 2000-02-18 2009-03-24 Emc Corporation System and method for intelligent, globally distributed network storage
US7194504B2 (en) * 2000-02-18 2007-03-20 Avamar Technologies, Inc. System and method for representing and maintaining redundant data sets utilizing DNA transmission and transcription techniques
US6826711B2 (en) 2000-02-18 2004-11-30 Avamar Technologies, Inc. System and method for data protection with multidimensional parity
US6704730B2 (en) 2000-02-18 2004-03-09 Avamar Technologies, Inc. Hash file system and method for use in a commonality factoring system
US7062648B2 (en) * 2000-02-18 2006-06-13 Avamar Technologies, Inc. System and method for redundant array network storage
US6810398B2 (en) * 2000-11-06 2004-10-26 Avamar Technologies, Inc. System and method for unorchestrated determination of data sequences using sticky byte factoring to determine breakpoints in digital sequences
US20030115269A1 (en) * 2001-12-14 2003-06-19 Klug John R. Computer file editing system
US7434059B2 (en) * 2001-12-21 2008-10-07 Searete Llc Interactive, performance based authentication
US8489742B2 (en) 2002-10-10 2013-07-16 Convergys Information Management Group, Inc. System and method for work management
US8577795B2 (en) 2002-10-10 2013-11-05 Convergys Information Management Group, Inc. System and method for revenue and authorization management
US7668093B1 (en) 2004-08-05 2010-02-23 Convergys Information Management Group, Inc. Architecture for balancing workload
US7590980B1 (en) 2004-06-14 2009-09-15 Convergys Cmg Utah, Inc. System and method for a functional extensibility framework
US7395082B2 (en) * 2004-06-23 2008-07-01 Broadcom Corporation Method and system for handling events in an application framework for a wireless device
US8595687B2 (en) * 2004-06-23 2013-11-26 Broadcom Corporation Method and system for providing text information in an application framework for a wireless device
US7702781B2 (en) * 2006-03-03 2010-04-20 Teoco Corporation System and method of storing data files at a remote storage facility
WO2007131190A2 (en) 2006-05-05 2007-11-15 Hybir Inc. Group based complete and incremental computer file backup system, process and apparatus
US20110283212A1 (en) * 2010-05-13 2011-11-17 Nokia Corporation User Interface
US9594735B2 (en) * 2011-09-12 2017-03-14 Microsoft Technology Licensing, Llc Automatic highlighting of formula parameters for limited display devices

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4078249A (en) * 1976-06-01 1978-03-07 Raytheon Company Digital display composition system
US4114027A (en) * 1976-09-13 1978-09-12 The Mosler Safe Company On-line/off-line automated banking system
US4460960A (en) * 1979-02-02 1984-07-17 International Business Machines Corporation Transaction execution system having keyboard and message customization, improved key function versatility and message segmentation
US4394649A (en) * 1980-07-28 1983-07-19 I/O Corporation Communication terminal providing user communication of high comprehension
JPS5757368A (en) * 1980-09-24 1982-04-06 Omron Tateisi Electronics Co Transfer processing method in transaction processing device
US4410940A (en) * 1980-12-05 1983-10-18 International Business Machines Corporation Transfer of control method and means among hierarchical cooperating sequential processes
DE3174925D1 (en) * 1981-04-08 1986-08-21 Ibm Text processing apparatus with two-stage formatting of text
EP0082225B1 (en) * 1981-12-23 1987-05-06 International Business Machines Corporation Business system
JPS5971562A (en) * 1982-10-18 1984-04-23 Hitachi Ltd Control system of time division computer system
JPS5999484A (en) * 1982-11-29 1984-06-08 横河・ヒユ−レツト・パツカ−ド株式会社 Character input display system
US4633430A (en) * 1983-10-03 1986-12-30 Wang Laboratories, Inc. Control structure for a document processing system
US4589068A (en) * 1983-10-03 1986-05-13 Digital Equipment Corporation Segmented debugger
US4649533A (en) * 1983-10-25 1987-03-10 Keycom Electronic Publishing Method and apparatus for retrieving remotely located information
US4586035A (en) * 1984-02-29 1986-04-29 International Business Machines Corporation Display terminal with a cursor responsive virtual distributed menu
JPS60231250A (en) * 1984-05-02 1985-11-16 Hitachi Ltd Function dispersing information processing system

Also Published As

Publication number Publication date
DE3788748T2 (en) 1994-06-23
US4901223A (en) 1990-02-13
EP0247329B1 (en) 1994-01-12
DE3788748D1 (en) 1994-02-24
EP0247329A3 (en) 1991-12-11
EP0247329A2 (en) 1987-12-02
JPS62257564A (en) 1987-11-10

Similar Documents

Publication Publication Date Title
CA1272300A (en) Method for application software control of graphical interaction techniques
US5283861A (en) Remote control of a local processor console
US5901313A (en) Application management system
JP2662157B2 (en) Host access table construction method and data processing subsystem
EP0546663B1 (en) Computer system
EP0477124B1 (en) Method and apparatus for distributed processing of display panel information
WO2001050712A2 (en) Script based interfaces for mobile phones
JP2002516006A (en) Method and apparatus for generating and using a runtime generated stub that references an object in an object oriented system
US5557775A (en) Expert system for designing computer networks
CA2251362A1 (en) Apparatus for and method of acquiring, processing and routing data contained in a gui window
JPH04657A (en) Controller of flow of interaction for transaction processor
US5819090A (en) Application control module for common user access interface
EP1342157B1 (en) An auto-generated task sequence
US6782540B1 (en) COBOL/natural copybook to Java conversion Wizard
KR20210105316A (en) A transaction processing method, a device, an equipment, a program and a medium of ethereum virtual machine
US20240104503A1 (en) Method for generating a project flow, electronic device, and storage medium
CN101256483B (en) The method and apparatus of persistent tool object
US5095524A (en) On-line system which mainly executes regular jobs including apparatus for efficiently executing both regular jobs and irregular jobs
CN102455905B (en) Method and system for establishing main panel interface, main panel and main panel interface system
CN109901822B (en) Object conversion method and device, storage medium and server
CN111522933A (en) Conversation process control method, device, equipment and medium
CN106302125A (en) A kind of solicited message is responded method, Apparatus and system
US6211857B1 (en) Interaction support system and method
KR20210105317A (en) A transaction processing method, a device, an equipment, a program and a medium of ethereum virtual machine
CN109614656B (en) TLM (transport layer management Module) system for OpenGL (open graphics library) display list calling

Legal Events

Date Code Title Description
MKLA Lapsed