Loading ...
Sorry, an error occurred while loading the content.

The Heart of the Conflict - Client/Service or Something Else

Expand Messages
  • John Carter
    I have been gently disagreeing with my colleagues about system architecture for awhile, and I have finally put my finger on the source. I do client / service
    Message 1 of 1 , Jan 8, 2007
    • 0 Attachment
      I have been gently disagreeing with my colleagues about system
      architecture for awhile, and I have finally put my finger on the
      source.

      I do client / service programming they do..., well I not quite sure
      what to call it!

      If I have two interacting modules, I _always_ explicitly elect one of
      them to be the service, and the other the client.

      I then allow my client to have knowledge of the servers interface, but
      explicitly forbid _any_ knowledge of the services implementation.

      I also write the program as a generic service, it does one task and
      does it well, but is absolutely ignorant of the client. Not so much as
      a single upward reference to the client.

      If the two modules are symmetric peers, I declare both peers to be
      services that are utterly ignorant of each other, and create a
      supervisor client program to wire them together.

      I would also typically make the peers implement a common abstract
      interface, and the supervisor would be manipulating that.

      So let me make explicit what I have seen other programmers do, yet
      strongly disagree with ...
      * Not designating either module as the service or the client.... or
      * ...worse.. switching labels depending on which direction
      is the current data/event flow..
      * the service having explicit upward references to symbols in the client.
      * the client have explicit references to symbols that are clearly part of
      the particular implementation of the service, not the interface.

      Question to the Group.....

      Do you do what I have call "client / service" programming or the Other
      Thing. If you do The Other Thing, why and what do you call it?

      John Carter Phone : (64)(3) 358 6639
      Tait Electronics Fax : (64)(3) 359 4632
      PO Box 1645 Christchurch Email : john.carter@...
      New Zealand
    Your message has been successfully submitted and would be delivered to recipients shortly.