The Half Call design pattern is described using a standard pattern definitiontemplate.
The actions involved in a call processing can be categorized in two halfcalls. One half of the call handles the signaling involved in the originatingend of the call. Other half call component handles the signaling involved in theterminating end of the call. This partitioning of a call in half call componentssimplifies the call design. Consider that a switch were to support N signalingsystems. If half call design pattern is not used, it would have to deal with N xN call types to support all the signaling interworking call scenarios. With halfcall design pattern, each signaling type maps to originating and terminatinghalf calls. Thus the number of call types to be supported is reduced to 2 xN.
Consider the case where a switch has to support the following signalingschemes:
If half call was not supported, the switch will have to support the followingcall types:
With half call design pattern, the switch will have to support only thefollowing call types:
Thus there is a major simplification in the design when half call designpattern is used.
This design pattern can be applied whenever a system needs to supportinterworking between different types of protocols. If the design models theinteractions between originating and terminating end points as a single entity,the interworking design would be complicated by the large number of entitytypes. Also, the design would scale very poorly when new protocol type needs tobe supported. In such cases, apply the half call design pattern. The originatingand the terminating protocol end points should be modeled as separate entities(half calls).
Instead of having a N x N mesh of protocol end point interactions, thisdesign pattern implements the system with 2 x N end points. For this designpattern to work, a standard protocol should be defined between a typicaloriginating and terminating end point protocol.
The originating and terminating protocol end points are the main actors inthis design pattern. In some scenarios, an intermediate broker object may haveto be designed to coordinate the interactions between originating andterminating end points.
The originating and terminating end point protocols use a standard protocolto communicate with each other. The originating and terminating ends are notaware of the type of the other end of the protocol.
The design becomes simple and it is fairly modular and can be easily scaledto introduce support for new protocols.
If the standard protocol between originating and terminating end points isnot defined properly, it would soon grow in complexity with the addition newprotocol types.
Coming up with this standard protocol is the most challenging part ofimplementing this design pattern. Sometimes the implementation of a brokerobject helps in simplifying the standard protocol into the incoming and outgoingprotocols.
Refer to the following links available in Xenon:
The half call design pattern has been in use in implementing telephoneswitching systems involving support for multiple signaling protocols.
None
联系客服