Java Reference
In-Depth Information
Idiom
Cooperative frameworks
Context
There are several interdependent features that ought to
be developed in a general way as reusable frameworks.
Problem
How to structure the multiple frameworks that address a
possibly wide range of features while maintaining
generality and extensibility?
Forces or tradeoffs
The features implemented in the frameworks are
interdependent.
The frameworks must be flexible and extensible.
The merging of the features into a single framework
reduces flexibility.
A complete separation of the frameworks makes them too
complex.
Solution
It is possible to identify a chain of dependency between
the features that can be repeated in the frameworks.
Therefore we create several layers that correspond to the
frameworks; each framework can be extended individually,
maintaining flexibility. The upper layers make use of the
lower layers, reducing the complexity of the corresponding
frameworks.
Examples
The negotiation framework and the booking framework of
this prototype are an example of this pattern.
Force resolution
The interdependency is unavoidable but is limited to a
chain of dependency instead of a web.
The framework layers are largely independent and can be
extended separately.
Design rationale
The basic idea is to simplify the dependency graph and
keep the frameworks as independent as possible.
20.9
References
Brugali, D. and Sycara, K. (1999) “A Model for Reusable Agent Systems”, in
Implementing Application Frameworks: Object Oriented Frameworks at Work ,
Fayad, M.E., Johnson, R.E. and Schmidt, D. (eds), John Wiley & Sons. 155 - 169.
Huhns, M.N. and Malhotra, A.K. (1999) “Negotiating for Goods and Services”, IEEE
Internet Computing , Vol. 3, No. 4, 97 - 99.
Triantaphyllou, E. and Shu, B. (2001) “On the Maximum Number of Feasible
Ranking Sequences in Multi-criteria Decision Making Problems”, European
Journal of Operational Research , No. 130, 665 - 678.
 
Search WWH ::




Custom Search