Patterns Working Group
(Rough) Notes from Ada Europe '96 Meeting
A first meeting of the (proposed) Patterns Working Group was held in conjunction with the Ada Europe conference on 10 June 1996. The original emphasis of the meeting was to be concurrent patterns and their Ada 95 implementation.
Present at the first meeting were: Mark Gerhardt, Ed Colbert, Brad Balfour, Patrick de Bondeli, Bo Sanden, Drasko Sotirovski, and Rich Hilliard (in spirit). Ed Colbert has volunteered to take the lead in organizing the group and chartering it as an official SIGAda Working Group.
A second meeting will be held at Tri-Ada '96 on Wednesday 4 December 1996 from 7:00-9:00PM in room 412. Additionally, members of this forming WG will address the Reuse Working Group about coordination issues and whether or not to become a subgroup of the ReuseWG.
About these notes:
These notes are a rough recollection of some of the more important points that were made. I didn't take very extensive notes, so these are mostly based on just topic headers, sentences or phrases, and partial diagrams. Others will, hopefully, add their notes to these.
Main goals & discussion areas:
It is worth noting that the discussion strayed far & wide from these two topics.
Lots of discussion focused on how patterns ought to communicate the temporal behavior the involve and/or how components ought to note this. The discussion also ranged into notation and naming. Two fundamental distinctions were noted:
During a discussion of concurrency, it was proposed that how concurrent components communicate is a fundamental architectural principle. This became the basis of a potential set of patterns. The group proposed several kinds of communication & attempted to name and define them:
An attempt was made to create a scale or graph:
The old Booch Actor/Agent/Server taxonomy was revisited. During this discussion, it was clarified among the group that an "actor" must have an active thread of control and must initiate communication. A "sever" was a reactor and does not initiate communication; it might have a thread of control, but did not have to. An "agent" was both an actor and server. It reacted to communication and also initiated communication. It might have a thread of control but need not.
From this discussion, it was proposed to rework the old Actor/Agent/Server taxonomy in light of the '90s. This would now become the Dilbert Taxonomy. Focusing on communication among objects, the taxonomy contains: CEO/Middle Manager/ Programmer.
Continuing the focus on terminology an attempt was made to diagram/illustrate the following three dimensions:
For some of the combinations of values, a short Ada 95 code pattern was given to illustrate the dimensions. The result was the following diagram:
A fourth dimension, Blocking vs. Non-Blocking was discussed but not
added to the diagram.