Greetings,
A topic of discussion has come up on a project I am working on. It
concerns subsystem component
architecture, and subsystem interfaces. In discussing this topic,
we discovered all of us have
widely differing perspectives and experiences :-)
Background: We are trying to come up with a solid architecture for
a fairly large system.
The system is a web-based system implemented in J2EE. We want to
create a component-based
architecture. The system has ten separate business areas that will
be designed and built over the
next 4 years. The ten business areas will utilize the shared
services of several components
that we refer to as "common components". The controversy involves
the definition of the interfaces
to these common components. The questions are:
1) How many interfaces (JAVA) should a shared common component have?
In UML, subsystems are usually represented with one interface class
and one proxy class that implements the interface and then delegates
functionality to other hidden classes within the component/subsystem. In our
case, the clients may ask for component functionality particular to them.
2) Does this warrant a separate interface for each different client
therefore hiding the functionality not relevant to them?
3) If so, should the interfaces all have separate proxy classes?
Another scenario is that the client asks for a particular object
from the component, and then performs operations on it before giving it back
to the component to store to the database.
3) Should the client be given the object, a separate interface to
operate on that object, or not be given the object at all and always be
working through one standard interface?
4) If the client is given the interface, should this interface also
have a proxy class inside the component that implements it?
5) If the client is not given the object, could there be performance
issues related to not having the object locally?
6) Who owns the interfaces - the client developers developing
against them or the component developers implementing them?
Comments? Advice/suggestions?
Thanks for any help
Dennis
************************************************************************
* Rose Forum is a public venue for ideas and discussions.
* For technical support, visit http://www.rational.com/support
*
* Admin.Subscription Requests: [EMAIL PROTECTED]
* Archive of messages: http://www.rational.com/support/usergroups/rose/rose_forum.jsp
* Other Requests: [EMAIL PROTECTED]
*
* To unsubscribe from the list, please send email
*
* To: [EMAIL PROTECTED]
* Subject:<BLANK>
* Body: unsubscribe rose_forum
*
*************************************************************************