4. Sub-systems characteristics
Could be one or many implementations
Every one have to conform a clearly defined interface (or
more than one)
The implemented interfaces must be explicitly declared
Any implementation must also declare this dependencies
(by the interfaces of his requeriments)
5. The whole System
Is just a composite system
Given a desired installation (a set of modules to install) just
register the required sub-systems implementations on the
composite
This composition is dynamic (can be changed on the fly)
Sub-systems collaboration is done by asking the composite
system the subsystem implementing the required interface
(never with some specific implementation)
6. Some clever things to do!!
We are explicitly declaring the implemented interfaces and
dependencies so....
Verify that if a system declares to implement some interface
has an implementation for every required method
The same tests (over a sub-system) can be run with every
implementation
Verify the installation consistency (all required
dependencies must be present)
... and of course do this automatically (the metamodel is your
friend here!)
9. A short case study
For many years nothing new was needed in this respect... but
then we started to talk with several Holdings.
And they have some new use cases:
Every company employee in the holding should have
access using the system only to his company information
But some information must be shared
Some employees are managers, and managers wants to
see the holding information aggregated
and of course.... everything must be integrated
11. Multiple systems running togheter
"Just start a new system instance for every company and
provide different entry points to every employee"
Company information is never mixed up by mistake
No need to change the sub-systems implementations
12. Information Sharing
"Register the same sub-system implementation (who manages
the information to share) in all the composite system instances"
14. Thanks!
Hernán Wilkinson and Luciano Romeo (authors of the
original sub-systems design)
The whole XTrade team (for taking this ideas an doing the
hard work)
All the Mercap Software people for the support
Everybody in this room for give me your time!