WO2001056356A2 - Method for inter-component communication - Google Patents
Method for inter-component communication Download PDFInfo
- Publication number
- WO2001056356A2 WO2001056356A2 PCT/US2001/003560 US0103560W WO0156356A2 WO 2001056356 A2 WO2001056356 A2 WO 2001056356A2 US 0103560 W US0103560 W US 0103560W WO 0156356 A2 WO0156356 A2 WO 0156356A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- communication
- components
- component
- act
- communications
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
Definitions
- This invention relates generally to computer program construction and, more particularly, to the way meanings arc communicated between independent software components when such components work together.
- components are all referred to herein as “components.” They may vary in granularity and in their degree of operational independence from each other. In terms of granularity, they may be identified as “objects,” “functions,” “procedures,” “components,” “servers” or “applications.” In terms of operational independence, they may compiled into the same program, linked into a single executable image, operate in separate virtual address spaces, or on different computers in distant locations from each other. But, in all cases each such component typically has two distinct aspects: an internal, private processing capability, expressed in individual lines of programming code, and an external, public interface, enabling other components to obtain services from the component, expressed in terms of a "signature,” “message format,” or in some "interface definition language.”
- the present invention relates to a generic process for defining the public interfaces between components, and also a standard method lor processing communications received acioss public lntcildccs. independent ol the granularity of the components
- the overall syntactic structure ol the public interlaces between components is determined by the implementation technology ol the programs in question
- a programming language such as in a C++ program
- objects communicate with each other via messages and through the technique of throwing and catching errors
- Other such means exist in other programming languages
- components operating at diltcrcnl locations on a network may utilize an interoperability standard such as remote procedure calls, or remote object mvocations supported by a commercial implementation ol the Common Object Request Broker Architecture (CORBATM) standard
- the present mvention is not dependent on any particular syntactic structure, nor is it the definition ol a new language Instead, this mvention us directed to a method and system ol rigorously organizmg the communications between components, iegardlcss of the syntax ol the language in which the communications s carried out, or the technology in which the communications us implemented
- the mvention could also be used to construct a new programming language or interoperability standard that explicitly provides lor or enforces the programming process and method ol the invention, much as object-oriented languages explicitly provide tor and/or cnlorcc object- oriented design methods, which can also be applied when using non-objcct-orientcd programming languages
- FIGURE 2 A Prior Art Processes and Algorithms tor Semantic Analysis
- the management of meaning in mtcrcomponent communications generally occurs at two points in the technology utilization hie cycle These points arc illustrated in FIGURE 2.
- the first point is al the very beginning of this cycle, when a new programming language or other intercomponcnt communications standard, such as CORBATM or COMTM is designed and implemented.
- CORBATM or COMTM intercomponcnt communications standard
- COMTM intercomponcnt communications standard
- the second point is at the very end of the design process, when the particular meanings to be communicated between components are determined by the designer or programmer of each individual system component, as part of the problem solution. This process also determines, completely independently for each type of communications the component is capable of receiving, precisely how the component will respond to the communication. These are the algorithms according to which the component responds to each individual communication it receives. Thus, in the prior art, no general technologies apply to semantics after the design of the programming language. This language design is the very earliest phase in the life cycle. As will be discussed below, the present invention provides generally apphcable technologies for managing meanings, which apply later in the technology apphcation life cycle.
- multi-lateral communications standards developed, such as the S.W.I.F.T., and more recently the FIX set of message formats for financial communications.
- these standards controlled not only the format, but also very strictly limited the content of what could be communicated. They could do so because they were focusscd on a single, tightly defined domain of business activity.
- businesses have attempted to integrate applications that cross business domain boundaries - personnel management and payroll processing, sales and service, etc.
- more generic "interoperability" software called “middleware” has been provided by vendors, enabling real-time communications between different sorts of applications.
- XML a standard syntax for expressing information, has begun to be adopted. This has resulted in greater interoperability between different middleware products because it enables the data communicated to carry with it a description of its meaning.
- a securities portfoho record keeping and valuation system might be constructed using a pre-built component that manages information about financial parties, another pre-built component that manages information about securities terms and conditions, another that manages information concerning securities prices, and a single special-purpose built component for actually creating and maintaining the securities accounts and positions. Smaller components, such as ones designed to manage business dates, may also be employed in this construction.
- the structure of the semantics communicated is today determined entirely by the programming language chosen (where we include other more specialized intcr- component communications languages, such as CORBATM and COMTM, and SWIFT), and the algorithms for interpreting communications are correspondingly tied to the particular language chosen.
- the general nature of such algorithms Is that the structure supplied by the language Is divided into two parts, as illustrated in FIGURE 5. The first part of the provided structure Is used to choose which algorithm is to be executed, and the second part, to supply information to the algorithm chosen. In this model, the part of the work done by the programming language itself is minimal, and almost all the semantics is added by the component designer and programmer.
- Programming Paradigms A "programming paradigm" is a description of the general kinds of things that arc expressed in a computer programming language. Today, there are only three such paradigms: the (most common) procedural paradigm, exemplified by the languages used in the vast majority of commercial programs, such as Cobol, Fortran, C, and C++; the (very specialized) functional paradigm, exemplified by LISP, and the (growing in importance) declarative paradigm, exemplified by PROLOG.
- a complete expression in a programming language is an "instruction,” which tells the computer what to do.
- the expression x 4+y tells the computer to add 4 to whatever the value of y is, and store the resulting value in the memory location named by x.
- a complete expression in a programming language tells the computer what is true.
- the computer will automatically use a set of true statements provided to it to produce other true statements that follow from the set that was provided.
- the computer will then remember this fact and combine it with any other facts that are related, to produce new facts.
- One object of this invention to provide a computerized method for enabling components that have not been designed together to communicate easily with each other do so.
- Another object of this invention to allow integrators to construct systems from components, and programmers to create programs, that will be easier to understand, and in such a way that changes in one part of the component system or program will not require changes in other parts.
- the method for structuring the communications includes providing a set of predefined communication acts, each representing one type of action and classified according to its expected effect on a recipient component.
- a communication act is selected that represents the need from the set of predefined communication acts.
- the communication is constructed to include the selected communication act and an argument defining a subject of the communication act-
- the software component or components to which the communication should be addressed to is determined, and the communication is directed to that software component or components.
- the method of responding to the communication includes interpreting the communication to determine what action a recipient software component is to perform in response to the communication.
- Interpreting the communication includes identifying the communication act, determining a standard set of responses associated with the communication act, and selecting a correct response from the standard set based on the context of the communication.
- FIGURE 1 is a block diagram generally illustrating communications between components in accordance with the invention
- FIGURE 2 is a flow chart illustrating the management of meaning in inter-component communications in accordance with the prior art
- FIGURE 3 is a flow chart generally illustrating the speech act analysis process and the speech act interpretation framework aspects of the invention.
- FIGURE 4 is a flow chart illustrating meanings analysis in accordance with the invention.
- FIGURE 5 is a block diagram illustrating interpretation of a communications act in accordance with the prior art
- FIGURE 6 is a block diagram illustrating the speech act interpretation framework in accordance with the invention
- FIGURE 7 is a block diagram illustrating the context of speech act interpretation in accordance with the invention.
- FIGURE 8 is a block diagram of the speech act interpreter in accordance with the invention.
- FIGURE 9 is a block diagram of an alternative speech act interpreter in accordance with the invention.
- the present invention us dacctcd to a computci progiamming design process and a programmmg method lor controlling communications between separate soltwarc components, enabling the components to lunction with maximum mdcpcndcncc ol each other, while simultaneously not duplicating ctlort between them
- the mvention there are two generally distinct but related aspects ol the mvention: ( 1) the design process tor analysis ol a programmmg problem in terms ol speech acts ("the speech act analysis process” 10), and (2) the programming method, in the lorm of a framework for a set ol algorithms, to mterpret speech acts received by one component from another (“the speech act interpretation lramcwork" 20).
- communications arc classified accordmg to the type ol cllcct they arc intended to have on the state ol the environment in which they occur - a classification accordmg to "action mode" - what would be called in human hnguustics the "speech act.”
- the design process 10 results in each separate communication between components expressing a single action mode, so that the total communications needs between components us therefore accomphshcd by a number ol separate speech acts, each isolating only a single responsibility ol the performer of the act.
- the programmmg method 20 us a method lor interpreting and responding to communications so designed
- the Speech Act Analysis Process 10 generally includes:
- the Speech Act Interpretation Framework 20 includes a set of types of objects and a pattern for their use, with which the recipient of a speech act may handle each type.
- the underlying programming language communication paradigm can be left unchanged from previous standard processes. However, this paradigm is used only in a later implementation phase, which is now separated from the design phase, and whose standard programming techniques are not the topic of this invention.
- the design phase in turn is divided into two parts:
- the Speech Act Analysis Process 10 can be apphed cither both to work done gencricaUy for a particular business domain or to work done in the analysis of a single business problem-
- the Speech Act Interpretation Framework 20 is used in the component design process to construct the algorithms for interpreting and responding to speech acts.
- the semantics of a response to a communication was generally determined entirely by the designer of an individual component.
- the Speech Act Interpretation Framework provides a generic structure that every response takes. Typically, only the details are filled in by the designer of the component- This framework (which contrasts with that of the prior art shown in FIGURE 5) is illustrated in FIGURE 6.
- the first layer involves the standard engineering problem of dealing with a form of expression dictated by some programming language, in which is now embedded an identification of a speech act type.
- the general interpretation algorithm which in the standard model, looks first at the operator to choose an algorithm, now looks first at the speech act type, and then at the propositional content to which the act is apphed.
- This semantics identifies the subject of all communications as concerning software entities, which may be software objects representing machine manifestations of behavior, such as windows, software surrogates for domain entities such as customers, airplanes, or patents, or software or hardware objects themselves, such as executing processes.
- software entities may or may not be implemented in object oriented languages, they are referenced to herein with the more neutral word "entity.”
- a communicator is itself such an entity, but some entities may not be communicators, but under the control of a communication entity.
- a securities pricing component will contain securities price entities, but if only the whole component has a pubhc interface, then only the component, in this context, is a communicator, and the securities prices controlled by the component are not.
- This invention is indifferent to any other aspects of the communication, such as whether each communication results in an acknowledgement of receipt, whether communications is accomplished by asynchronous messaging or synchronous calls, etc.
- the communicated items are passed between software components as these are broadly defined above.
- the communicated items are individual lines of code in a programming language, and the communications are between the source code of the program and the computer on which the code is run, with a compiler or interpreter, acting as a translator between the two.
- the action based classification scheme defines each communication as having a specific purpose in its effect on its recipients.
- the classification scheme includes a set of mode classifiers. Each classifier has a definition that aUows one to determine whether a communication is properly described by that classifier.
- the modes identified in these schemes are not specific to a single business or other human entcrprusc, but apply to the most fundamental purposes of communications, common to aU human enterprises
- Exustence Announcement announcement of the existence ol an entity - when a new entity is introduced to a system or created by the system, it or its creator announces its exustence.
- Event Report report of the occurrence of an event — where an event us the change of state of one or more entities at a particular time.
- Legitimization a declaration of a state. This means that, merely by having emanated from a communicator serving an entity that has the proper authority, automatically means that some other entity has a certain attribute. For example, a security entity may declare that a ceildin user log-on has been authorized, (or is not authorized) which means that the user IS authorized (or is not) Legitimation differs lrom leporting of a description, because a description report may be false, while with legitimization, performing the legitimization communication makes the legitimization true For example, if an airplane entity reports that it contains a certain amount of luel. thus docs not automatically mean that this report is correct, whde if an air traffic control entity clears an airplane for landmg (a legitimization event) then the airplane automaticaUy has been cleared for landmg
- An action based classification scheme in accordance with the invention may have more or lewcr communications modes than the ones above, and they may be named diflerently, ol course
- a classification scheme is prelerably always based on the very generic mode of action expected on the communication recipients, is independent ol the business domain, and these modes, which are apphed here to sottware components, apply equaUy weU to human recipients of communications
- Any classification scheme that exhibits these properties and further aUows standard signatures for each kmd of communications is the equivalent of such an action based scheme, no matter what the scheme us actuaUy caUed
- a method for constructing such an action-based classification scheme can include the foUowing steps
- the software communication mechanism used is enhanced by a method of identifying each communicated item according to the action type communicated.
- a single mode communication mechanism in accordance with the prior art such as the remote procedure caU
- a properly purpose-built communications mechanism in accordance with the invention identifies the mode with the first element or otherwise most prominent element of the communicated item.
- no communications ⁇ re permitted in which multiple action types are embedded in the same individual communication item.
- multiple items may be concatenated together, and contained in a single physical message "package."
- most programming languages and interface specifications based on the procedural paradigm, always mix intentions- For example, an instruction to create a new customer record in a database (an execution instruction) will also contain, as part of itself, aU the attributes of the customer to be stored (a description).
- an instruction to create a new customer record in a database an execution instruction
- aU the attributes of the customer to be stored
- Each mode of communication includes a "signature," which means the entire structure of a communication in that mode. Since each communicated item represents a single mode or purpose, the permissible information passed along with each item is restricted to that required for the given purpose. So, each signature form designates exactly what pieces of information may be communicated. It may do so through a positional syntax, as the function calls in most programming languages do so, or through tagged syntax, as do S.W.I.F.T. messages, or through a combination of position and tags, as do XML and XSL syntax.
- the structure of the signature wiU generaUy always be the same, composed of the foUowing items.
- the order of these items is immaterial to the invention. But some means of determining which item is which Is of course necessary, such as order or tagging.
- Communication Act Type an identification of the type (and possible subtype, if one exists) of the act being performed.
- Logical Identifier of the Originator of the Act an identification of the creator o ⁇ the act. This is not a communications "address,” which would generaUy be handled by a lower level communications protocol, and is undoubtedly associated with each sender, but rather the unique name of the logical system component that performed the act and is responsible for issuing the communication.
- Timestamp of the Act (optional) - this timcstamp may include both a waU-clock time (and of course date) but also a Lamport time - i.e., a partiaUy ordered identifier of the act sequence relative to some series of related acts.
- the Lamport time Is the time on the distributed Lamport Clock, which coordinates business transactional order independently from possibly different waU clock times for different system components, e.g., the notification of the close of day for a transaction processing component, such as an FX trade booking system, may have a Lamport time of
- Action Adverb (optional) - the action adverb takes a value from a set of values that indicate the quality of service associated with the action. This set varies depending on the action. For example, an execution instruction may have an adverb of urgency (and consequently relative cost strategy for the executor to pursue) associated with it, while an asynchronous subscription dehvcry might instead have an adverb of actual cost incurred in delivering the subscribed item.
- Argument of Act - each communications act includes of a single argument, expressing the propositional content, or attributes and relationship between entities, being caUed to attention by the act.
- the nature of the argument varies only with the type of the act.
- the argument itseU " may be a complex structure, rather than a flat list, which permits the arguments of some kinds of acts to be infinitely varied.
- the argument of an execution instruction is an ordered pair with two elements: a description of the operation to be performed; and an identifier of the object on which the operation is to be performed
- an action authorization request may include: a. the business entity of whom the authorization is requested; b. the business entity requesting the authorization; c. a description of the action, which in turn comprises a quadruple: i. action type, ii. object on which the action Is to be performed, hi. action initiator description, and iv. parameters of the action; d. the state of an object on which it is to be performed; and c. the change of state that will occur if the action us taken (the effect on the object).
- the foUowing is an example of this structure: a. a banking relationship manager (the business entity of whom authorization is requested) may be b. requested by either the funds transfer operations department, in one case, or the director of the operations department, in another case (the business entity requesting the authorization - note that this is different from the logical systems component where the act was initiated, which is item 2 of the signature) c. to authorize (the action description) i. a cash withdrawal (the action type) ii. to account 123 (the identifier of the object on which the action is to be taken) hi. by a particular signator of the account (the action initiator description) iv. in the amount of 2.5MM with value date of today (the parameters of the action) d.
- a banking relationship manager the business entity of whom authorization is requested
- the action description i. a cash withdrawal (the action type) ii. to account 123 (the identifier of the object on which the action is to be taken)
- Each of the communications act types and subtypes has a shghtly different argument.
- the argument itself is constant in structure for aU acts of that type.
- the invention works through the process of pre-defining, for each such act type, it's unique argument.
- the method for identifying the argument for each type of communications act is as follows: 1. Consider a particular cxampl ; of an act ol ' the type, expressed not in machine language, but in a natural language, such a*- a pa' ticular command, e.g., "Drink Tea!
- signatures are defined specificaUy for each different capability - for example "drink(name of liquid)."
- signatures there are only two or three constant syntactic parts: a. the particular action to be performed by the communications recipient. In the standard prior art approach, this is always the primary controUer of the whole communications. For example, a single procedural function might be request_overdraft withdrawal_authorization.
- this function is preferably decomposed into three distinct parts that may be combined in different ways in each communications act:
- an authorization request may have only four possible responses: authorization granted, not authorized, placed on hold, or a response that the entity being requested to perform the authorization docs not have the authority to make such an authorization.
- authorization granted may have only four possible responses: authorization granted, not authorized, placed on hold, or a response that the entity being requested to perform the authorization docs not have the authority to make such an authorization.
- These four responses arc entirely independent of what Is being requested to be authorized and, like the rest of the invention's model, they are not designed by the programmer for a particular case, but rather the result of the designer of the entire aggregate system asking: "When you ask a person to authorize an action, what are the possible kinds of responses they can make?"
- the example invention signature has 5 major parts ( 1 to 5), the last of which has, for this communications act, 5 parts (1 to 5), and one of which has 4 subparts of its own or, for this particular type of communications act, 14 parts.
- the signature for an execution instruction is defined so that it contains only the identity of the entity on which the execution is to be performed, and the identity of entity ultimately responsible for making the request, and of course, the name of the instruction to be executed.
- the signatures for individual operations do not dhfer, but differ only among the pre-defined communication act types. In other words, there are only a finite and smaU number of different possible signatures, and these are aU predetermined by the communication act type.
- the outcome of the interprctatior of a speech act is the determination of what action the recipient component must perform in response.
- This response action may itself be another speech act, or some other kind of action.
- performance of this response action, and the algorithm by which it Is performed, are not part of this invention.
- the speech act interpreter 30 represented in FIGURE 7 is therefore the sub-component to which the algorithm framework apphes.
- the action executor 40 represents the ability to perform some internal action of the component, and therefore corresponds to what is pubhcly invoked in current inter-component communications.
- the speech act interpreter is, from this point of view, a new layer between internal actions and external invokers. Its general role is to remove the responsibUity for determining what action a component should take from any other component, and placing it within the component that wiU perform the action. In effect, it gives components the intelligence to decide for themselves what they need to do, based on what they hear going on around them, rather than being told by other components what they wiU do.
- the type of action that was performed results in a particular set of possible appropriate responses.
- This set of possible responses depends only on a completely generic model of the meanings of different kinds of communications actions. For example, an event notification may require the creation of an asynchronous subscription dehvery, the recording of the event in the information store, and the creation of an execution instruction, but it will not require a description request.
- the first step in the generic algorithm for interpreting speech acts Is to identify the nature of the act and determine what response or responses arc appropriate.
- the correct responses - the behavior expected as a result of a communications act — depends generaUy on three things: 1) the type of act performed; 2) the context of the action, which is determined by its originator, its timestamp, the action adverb, and the subject of the action; and 3) the propositional content of the action.
- the pattern for interpreting a communications act generaUy involves the work of three parts: an action type analyzer 60, a context analyzer 70, and an interpretation coordmator 80 (shown in FIGURE 8). These parts 60, 70, 80 optimaUy are invoked in sequence, (in order to minimize the search space) and which result in the creation of a list of consequent actions (represented in Action Stack 50 of figure 7) that must then be executed by the some other subcomponent, responsible for performing the response. As shown in FIGURE 8, the parts 60, 70, 80 each have responsibUity for a different steps in the interpretation process.
- the role of the Interpretation Coordinator 80 is simply to move tasks and information through the Speech Act Interpreter 30.
- an automated component signaling that an equity trade has occurred The type of act is an event announcement- The range of possible responses is: perform a state changing operation that affects one or more objects managed in the operational information resouicc, make an asynchronous subsciipfion delivery. send an execution request
- the tact that the event involves a security trade lor an account lor whom we perform settlement services means that not only is the state ol the trade changed, but also a settlement execution request is sent
- FIGURE 8 us, ol course, not the only structure capable ol accomphshing the four steps in the work ol the Speech Act Interpreter.
- work could also be accomphshcd by a soltwarc machine with no Interpretation Coordmator.
- an Action Type Analyzci 1 10 receives incoming speech acts directly, passes them when analyzed to a Context Analyzer 120, which in turn is directly responsible lor writing the response actions on the action stack 130.
- a communicator i.e., the component sending the communication
- a communicator can "publish" his speech act to an environment, in which each of the listeners (i.e., the recipient components) will decide lor itseU whether it must or wishes to take any action (Examples ol this situation arc an open biddmg market and the Ethernet protocol.)
- the act originator need only know that it must communicate the act to thus intermediary (Examples of this situation arc a traffic coordinator" in a television studio and message- routing middleware in a distributed computing system.)
- separately implemented components communicate with each other either through the intermediation of some business communications integration capability, or directly, using only middleware for such services as publish and subscribe or rehable message queuing.
- middleware for such services as publish and subscribe or rehable message queuing.
- the components themselves and the communications between them are organized and ordered in a specific manner in order to maximize their independence from each other and to ensure that there are no interdependencies between functions of components.
- the dependency relationship Is acychc. This is accomplished in several ways.
- the actual components provided are each partitioned into one or more logical components, each with a simply described single business purpose. This partitioning is done in conjunction with identifying the way in which the processes by which the business operates are reflected in the sequences of necessary communications between the components. This is done properly only when no components communicate in both directions with each other using the same mode of communications.
- An mteraction is an act of communication produced by one entity, and a response from a second entity, or a related sequence ol such productions and responses between multiple entities
- Action-oriented communications us a method lor designing the mteractions between automated components, and the soltwarc entities they contain, so that these mteractions foUow generaUy the same patterns lound in the mteractions among people engaged in weU-defined work
- WhUe AOC could be used to design new programmmg languages, it is itself not a language, but rather a an analysis process and response algorithm, which can be apphed in many existing programmmg languages, such as C++, or using exustmg ter-component communications mechanisms, such as various implementations of CORBATM.
- This example illustrates action-oriented communications by presenting a business scenario, then showing how that scenario is translated into component interactions according to traditional prior art methods, and finaUy contrasting how the scenario is to be translated using the action-oriented communications process-
- the scenario describes the introduction of a new trader into a foreign exchange trading room and his subsequent making a trade.
- emphasis is on a description of the non- automated parts of the work, to give a better sense of the nature of the interactions involved, even though only some of these wiU be translated into analogous automated work.
- the scenario also has particular inventive features, combining characteristics of various different kinds of trading where different rules and interactions apply, to Ulustrate various different aspects of action-oriented communications in a single example.
- the example then describes the types of software components necessary to support this scenario, and the general nature of the interactions between these components.
- Anish assigns Richard system identification and security features (a log-in and password), and also sets up a tradmg book tor Richard, identifying Richard as a Class Two Trader, with working capital in the Class two amount.
- Anish explains to Richard the restrictions on class two traders, how to use the systc m. and gives him a paper list of the counterparties with whom he can trade, their phone numbers, and a list of the salespeople from whom he can take orders.
- SaUy McCabe a salesperson, gives Richard an order for EU5MM. He calls a counterparty at Chase, and requests a spot quote on Euros. Chase recognizes his bonafides, and provides him a quote for both Bid and Ask. Richard makes a counteroffer on Chase's asking price for Euros, which Chase in turn accepts. Richard then enters the deal in his trading book: bot EU5MM for USD20MM spot from Chase.
- the system determines that this trade is within the range Richard is aUowed, and that the counterparty Is vahd, and so tells him the deal has been accepted.
- the system shows him his new positions.
- the system also sends updated contingent liability and asset positions to the general ledger, and initiates its confirmation process.
- a software surrogate for each person who works with the system such as a surrogate for A-nlsh Mathai, the trading room operations head, and the management of this set of surrogates.
- the responsibUity of each surrogate is (1) to ensure that the person on whose behalf it operates is authenticaUy that person, identified with any required personal attributes; (2) to associate thus user with one ol the particular roles the user can play with respect to the system, and to establish and to identify any ol the attributes associated with that role; and
- suirogalc manager The responsibility of the suirogalc manager s to enable disable, and modify surrogates
- This component us responsible for ensuring that a trade as described by a trader is a vahd trade, containing complete and acceptable intormation
- soltware might ol course not be organized accordmg to this scheme, but even so, the responsibilities of the components wiU be represented in some form or another, and these logical components must mteract with each other, using some communications mechanism and a corresponding communications paradigm.
- Capability Control provides RHUS with the things he is able to do.
- RHUS indicates that he wants to enter a trade.
- Capability Control enables this function to be performed by Trade Entry for RHUS.
- a single communications interaction paradigm is used to realize aU intercomponcnt interactions.
- the most common of these is the function (or method) invocation, expressed in languages in which aU communications are imperatives, in which the initiator of the communication is always presenting the recipient with a "machine" instruction for the recipient to execute. Further, it is the responsibUity of the initiator to provide the recipient with the aU information required to carry out the instruction, in the form of "parameters" of the function.
- the design process is one in which the actual human purpose or intention behind each step in the business scenario is ignored, and the corresponding responsibilities of the sending components, and replaced with an instruction from the sender to the receiver initiating some responsibUity of the receiver, rather than the sender. This means that the sender must "know" what the receiver is responsible for doing.
- the machine instruction paradigm is illustrated here. It is illustrated by means of a set of some of the function calls or method invocations, which would correspond to the nine interactions described above, and the nature of the responses to these. These instructions are expressed in a self-explanatory pseudo-code.
- the description of the design process sometimes personhies the component to ha ⁇ e the goals of its designer.
- OveraU the process of designing soltware components to do this work using this paradigm is analogous to imagining that people were doing the work but could only communicate with each other by giving each other exphcit commands to do certain precise pieces of work. And the algorithm for responding to a communications is designed independently, for each individual instruction.
- Capability Control provides RHUS with the things he is able to do.
- a function caU from RHUS to CC sendCapabihtyList(RHidentity, RHrole) the CC executes an algorithm to find the items in this list, based on the RHrole, and returns the hst to RHUS as a response to the function caU.
- RHUS indicates that he wants to enter a buy trade.
- a function caU from RHUS to CC initiateBuyTradeEntry(RHidenity, RHrole) in order to execute this instruction, CC determines again, by looking at a hst, that RHrole is permitted to do this function, and, if so
- Capability Control enables this function to be performed by Trade Entry for RHUS.
- a function caU from CC to Trade Entry (TE) prepareBuyTradeEntry(RHidentity, RHrole, tradingRoomldentity) causing TE to prepare according to some algorithm to receive a trade entry request from RHUS, returning the form for RHUS to fill in, and likely a set of "defaults" for the entry, based on the RHrole, already on the form- In typical designs, thus loi m will hkcly be passed through CC to RHUS, lor display to Richard Harkness by RHUS, as the return lrom mitiatcTradeEntry.
- CC would return only a "done" response to that mitiatcTradeEntry invocation, and TE will now assume control of the mteraction, by a lunction caU lrom TE to RHUS bcg ⁇ nBuyTradcEntry(tradcEntryForm, deiaultValuesList).
- TE executes an algorithm that causes it to look at the parameter values of the trade and determme whether: each field has a value it is generaUy permitted to have, the values of the trade correspond to the values permitted to RHrole the tradmg book has sufficient aUowed positions to accommodate the trade
- Trade Entry gets Trade Booking (TB) to book the trade to the RHUS book.
- a function caU from TE to TB bookBuyTrade(trade parameters) causing TB to execute an algorithm, which records the trade and updates the positions in RH's book, and cascading this update to financial accounting.
- TB wUl be responsible for determining the contingent asset and liability postings associated with the trade execution, and make at least two function caU from TB to FA post (financialAccountID, amount, direction, transaction reference, transaction description, other parameters required by financial accounting) financial accounting then passively makes the debit and credit entries in the appropriate accounts.
- a sample (partial) list ol such different kmds of actions is as foUows.
- Capability Request - an entity requests a description of what us to be pcrlormcd for some othci entity
- Authorization an entity authorizes another entity to perform certain functions.
- Legitimizing Introduction an first trusted entity mtroduces a third entity to a second, with the stipulation that the thud is to be permitted to perlorm some function.
- Execution Request - an entity ind cates that it wants another entity to pcilorm some operation Instruction Guide - an entity cxp.ains what it needs to know to execute an instiuction
- a smgle signature is defined, so that mstead of defining signatures lor each individual thing that must be said, a common signature is used tor aU thmgs that represent the same kmd of action
- a "propositional content” us an expression ol a relationship between objects and between their attributes, mdependent ol how that expression is bemg used to perlorm an act
- propositional content may be used tor different purposes diflcrcnt speech act types, where the speech act type provides the context for interpreting the intention ol the act
- the expression ' execute, Richard , buyTradel23" (Richard executes buyTradel23) is a smgle propositional content which might occur in the following ddlerent contexts, translated lrom a lormal language to Enghsh
- the algorithm for responding to a speech act has the foUowing general structure:
- This method of communication is more interactive than any single-paradigm method, so to save space, only part of the trade execution example is covered-
- CC must trust this announcement, so that RHUS must have been introduced by a trusted source, namely the surrogate management component. This is analogous to the introduction of Richard (the trader) to Anish (the operations manager) by Harry (the head trader).
- Capability Control provides RHUS with the things he is able to do.
- capability control a. registers the existence of the entity RHidentity in its internaUy accessible memory, creating the capability to deal with this entity b- finds out from RHUS entity what type of entity R-H is: informationRequest (RHidentity) "Who are you?" c- receives in return, the response informationAnswer(RHtype, RHattributeStructure) "I am a trader, level 2, working in New York Trading Room, trading Euros.” d. determines what RHUS can do, by executing the same algorithm as in the instruction example, and tells RHUS what it can do authorization(RHcapabilityList)
- RHUS does not need to know that it is CC's job to teU him what he is aUowed to do. He finds that out, just as Richard does, when he is told. RHUS may indeed be waiting to find this out, or doing something else in the meantime, but in any case need not know from where the information wiU come.
- RHUS indicates that he wants to enter a buy trade an execution instruction from RHUS to CC: executionRequest( buyTrade) "I want to execute a trade"
- CC determines again, by looking at a hst, that RHrole ;s permitted to do this function, and, i ⁇ so (The capitahzed "buyTrade” in the request indicates that the Type of the action is specified in this request.)
- capabUityRequest buyTrade
- objectAttributeStructure objectAttributeStructure
- RHUS provides the "defaults" for his own trade, rather than vice versa.
- TE then provides the foUowing communication to RHUS instructionGuide(transactionID, tradeEntryForm) ("here is the reference number for the trade we wiU be doing, and here is what you need to teU me about the trade")
- RHUS then uses this guide to prepare the information that describes the trade, and when complete, finaUy sends and instruction to TE.
- wiU aU uses ol a action-oriented communications design procedures and processing methods, there us generally much more mteraction, and so there are many more communications between components But each such communication is simpler and more standard m nature, so that the responses to it arc correspondingly simpler and more standard.
- a The communication from one component to another has only one of the 1 1 predefined grammatical ior s, based on the 1 1 ddlerent speech acts ldcntdicd lor thus example problem
- the structure ol the signature us part ol thus form, so that there arc only 1 1 predefined signatures for aU communications
- mstead ol their bemg a special mstruction, such as "acccptBuyTradcEntry(.
- the strict control of meaning for communications is used to enable more flexible use of multiple procedures or rules. This is necessary, for instance, to accomplish "mass customization,” in which different customers are offered different terms and conditions involving the same product.
- the rules or procedures foUowed vary from entity to entity.
- the information that Is required to apply the rule also varies, depending on which rule in fact apphes.
- This apphcation therefore involves making execution requests from a main processing component to an independent component whenever such a variable rule is executed.
- This request does not, conforming to the communications model, contain any descriptive information concerning the entity to which the procedure must be apphed, but only the identity of the entity.
- the receiving rule management component has two parts. First, a rule selection algorithm that determines which rule to apply to the given entity.
- the component makes an information request to the communicator, which serves the entity, (which may or may not be the same as the main processing component), for the necessary information.
- the main processing component does not need to have pre-programmed what kind of information is necessary to determine which rule will apply.
- the component again invokes the rule, passing only the identity of the entity or entities to which the rule is apphed.
- the rule algorithm has its rule management component send a number of other requests for descriptions to the entity to which the rule apphes, or to other entities it has, by previous work, discovered arc in some relationship to that one.
- the rules for determining insurability vary from state to state in the U.S.
- the rule selection algorithm wiU cause a query to the individual being tested to determine his state of domicUe, and select a rule based on the result.
- the rule so selected wills the further query the individual for the information it needs. In one state, this information may include the age of the individual, and in another, the gross income.
- the agent Using partitioned, multi-mode communications, the agent would make a request for a price quotation with no parameters except the identity of the entity from whom the quotation is intended. The quotation service would then query the agent concerning the information about that entity which it needed.
Abstract
Description
Claims
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2001233287A AU2001233287A1 (en) | 2000-02-03 | 2001-02-02 | Method for inter-component communication |
EP01905405A EP1196076A2 (en) | 2000-02-03 | 2001-02-02 | Method for inter-component communication |
JP2001556068A JP2003521770A (en) | 2000-02-03 | 2001-02-02 | How to communicate between components |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US49729100A | 2000-02-03 | 2000-02-03 | |
US90/497,291 | 2000-02-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2001056356A2 true WO2001056356A2 (en) | 2001-08-09 |
WO2001056356A3 WO2001056356A3 (en) | 2002-02-21 |
Family
ID=23976247
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2001/003560 WO2001056356A2 (en) | 2000-02-03 | 2001-02-02 | Method for inter-component communication |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP1196076A2 (en) |
JP (1) | JP2003521770A (en) |
AU (1) | AU2001233287A1 (en) |
WO (1) | WO2001056356A2 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0412232A2 (en) * | 1989-07-27 | 1991-02-13 | Teknekron Software Systems, Inc. | Apparatus and method for providing high performance communication between software processes |
US5452433A (en) * | 1990-06-28 | 1995-09-19 | Digital Equipment Corporation | Common agent computer management system and method |
EP0854419A2 (en) * | 1997-01-16 | 1998-07-22 | International Business Machines Corporation | Access mode objects |
US5787251A (en) * | 1992-12-21 | 1998-07-28 | Sun Microsystems, Inc. | Method and apparatus for subcontracts in distributed processing systems |
-
2001
- 2001-02-02 AU AU2001233287A patent/AU2001233287A1/en not_active Abandoned
- 2001-02-02 EP EP01905405A patent/EP1196076A2/en not_active Withdrawn
- 2001-02-02 WO PCT/US2001/003560 patent/WO2001056356A2/en not_active Application Discontinuation
- 2001-02-02 JP JP2001556068A patent/JP2003521770A/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0412232A2 (en) * | 1989-07-27 | 1991-02-13 | Teknekron Software Systems, Inc. | Apparatus and method for providing high performance communication between software processes |
US5452433A (en) * | 1990-06-28 | 1995-09-19 | Digital Equipment Corporation | Common agent computer management system and method |
US5787251A (en) * | 1992-12-21 | 1998-07-28 | Sun Microsystems, Inc. | Method and apparatus for subcontracts in distributed processing systems |
EP0854419A2 (en) * | 1997-01-16 | 1998-07-22 | International Business Machines Corporation | Access mode objects |
Also Published As
Publication number | Publication date |
---|---|
WO2001056356A3 (en) | 2002-02-21 |
JP2003521770A (en) | 2003-07-15 |
EP1196076A2 (en) | 2002-04-17 |
AU2001233287A1 (en) | 2001-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7415715B2 (en) | Transaction execution system interface and enterprise system architecture thereof | |
US6789252B1 (en) | Building business objects and business software applications using dynamic object definitions of ingrediential objects | |
US5734837A (en) | Method and apparatus for building business process applications in terms of its workflows | |
US8321832B2 (en) | Composite application modeling | |
US10095486B2 (en) | Software application development tool | |
US20050096959A1 (en) | Rule engine method and system | |
EP1857930A2 (en) | System, method, and apparatus to allow for a design, administration, and presentation of computer software applications | |
US7360215B2 (en) | Application interface for analytical tasks | |
WO2006124135A2 (en) | Centralized payment processing system | |
US20040267627A1 (en) | Method and apparatus for client-in-charge business transaction processing | |
Andrade | The Tuxedo System: Software for Constructing and Managing Distributed Business Applications | |
WO1994020912A1 (en) | An object-oriented system for creating, structuring, manipulating and evaluating a financial instrument | |
Petrie et al. | Adding AI to web services | |
US7694307B2 (en) | Analytical task invocation | |
WO2001056356A2 (en) | Method for inter-component communication | |
Moulton et al. | An active conceptual model for fixed income securities analysis for multiple financial institutions | |
Kuznetsova et al. | Serverless and Containerization Models and Methods in Challenger Banks Software | |
Evans | Getting from use cases to code Part 1: Use-Case Analysis | |
Liegl et al. | A UML profile and add-in for UN/CEFACT's modeling methodology | |
Hong | Web service interfaces design for e-business applications | |
Ulmer | Architectural solutions to agent-enabling e-commerce portals with pull/push abilities | |
Soley et al. | Object Management Architecture Guide | |
Szekely et al. | DEALMAKER: An Agent for Selecting Sources of Supply To Fill Orders | |
Araujo | A Design Process based on patterns and non-functional requirements | |
Gravesande et al. | The Essentials of BPEL |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
ENP | Entry into the national phase in: |
Ref country code: JP Ref document number: 2001 556068 Kind code of ref document: A Format of ref document f/p: F |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2001905405 Country of ref document: EP |
|
AK | Designated states |
Kind code of ref document: A3 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A3 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
WWP | Wipo information: published in national office |
Ref document number: 2001905405 Country of ref document: EP |
|
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 2001905405 Country of ref document: EP |