- From: Champion, Mike <Mike.Champion@SoftwareAG-USA.com>
- Date: Tue, 16 Jul 2002 13:45:03 -0600
- To: www-ws-arch@w3.org
More on the goals whose resolution I'm championing "D-AC002 provides modularity of Web Services components, allowing for a level of granularity sufficient to meet business goals" I think the intent here is to promote modularity as a "best practice" in design, and to note that the best "granularity" of the modules is a challenge we must face. The balloting on this wording was 9 Y / 4 L / 2 D, so there is rough consensus that it is a good idea but not a supermajority favoring the current wording. The comments generally reflect a desire for a more clear/concise statement, not actual disagreement. I don't see any e-mail discussion. Wordsmithing based on the comments, how about "provides for modular web services architecture components, with each at a level of granularity appropriate to meet the other goals." Hmm, this may be a bit "motherhood and apple pie". Anyway, it needs some discussion. "D-AC002.1 - Provide conceptual clarity to allow developers to share ideas and code". I think the idea here is that roughly the same as that F.P. Brooks' famous (at least to us ol' farts) notion of "conceptual integrity" espoused in the MYTHICAL MAN MONTH: "The most important attribute of a successful architecture is Conceptual Integrity. It is crucial that the system embody a unified theme and not a hodge-podge of, perhaps creative but, disjoint ideas and features. If conceptual integrity is achieved then it automatically follows that: The system will appear simple and straightforward The system will be easy to use" (quote is actually from http://www.esat.kuleuven.ac.be/~targetjr/GE_mirror/manuals/LargeCppClass/Myt hicalManMonth/myth-man-month.html but definitely captures the flavor of Brooks even if not a quote from him). The balloting on this was 8/3/4/0. The comments seem to be about the wordsmithing, not objections to the basic idea. I'd propose for discussion "provides conceptual integrity, i.e. a unified theme rather than a set of disjoint ideas, which generally characterizes designs that are easy to understand and implement." "D-AC002.1.2 - Ease development, testing, and maintenance by providing a logical, easy to understand, and consistent organization" The balloting was 7/3/5/0. Comments all referred to confusion as to whether we're talking about the organization of the WSA document or the WSA itself. I'd propose for discussion "Eases development and maintenance of implementations of the architecture by defining architectural components that are logical, consistent, and thus easy to understand." "D-AC002.1.3 - Allow the creation of generic rules, methods, and procedures to aid in consistent development practices." The balloting on this was 2/4/4/4 with the comments indicating that many simply don't understand what it means, or how it relates to the goal/ I'd suggest invoking the "when in doubt, throw it out" rule and moving on. "D-AC002.2 - Support object-oriented design principles by encouraging encapsulation and information hiding by components of the architecture" The balloting on this was 7/1/6/1. [Disclaimer -- I was the "out of scope" vote] Comments reflected a discomfort with adopting OO principles wholesale for a distributed object application, and others reflected a discomfort with treating all web services as distributed object applications. I suspect that by the time we wordsmith it to make it generally acceptable, it will end up sounding like "motherhood and apple pie". Others are welcome to offer alternate wording for discussion. "D-AC002.2.1 - Encourage reuse by creating well-defined modules that perform a particular task" The balloting on this was 7/4/4/0, comments tended to agree with the sentiment but not the wording. How about "Encourages reuse of components by using widely accepted design principles such as having each module focus on performing one function well, abstraction in the definition of modules, encapsulation of the details of their implementation, and loosely coupled relationships among modules." That gets at some of the themes implied by the "OO" requirement I'd like to remove but appeals to more universal principles. "D-AC002.2.2 - Allow the creation and deployment of configurable objects that the end user can tailor for different purposes in a standard way." The balloting was 6/1/6/2. Comments reflected general confusion as to what this really means, although there wasn't disagreement on the basic idea. I think the goal is adequately covered by my proposed restatement of 2.1.1, and by the requirement that the WSA be "declarative" implied by D-AR003.2. I'd suggest removing it. "D-AC002.3 - Provide for Increased flexibility and maintainability because single components can be upgraded or replaced independently of others" The balloting on this was 8/2/6/0. Comments were all over the map, from "who let Marketing write a CSF?" to "what does this mean" to a sense that other requirements cover this. I'd agree with the latter sentiment and suggest that we remove it. Or, basically, suggest that we make sure that 2.2.1's wording cover the well-understood advantages of modular design: specialization (each module does one thing well), reusability, abstraction/encapsulation, loose coupling, customization/configurability, and the ability to replace/upgrade one component at a time. Summary of my suggested dispostion: D-AC002 - Discuss suggested rewording D-AC002.1 - Discuss suggested rewording D-AC002.1.2 - Discuss suggested rewording D-AC002.1.3 - Remove D-AC002.2 Consolodate into a single CSF that refers to the D-AC002.2.1 well-understood advantages of modular, loosely D-AC002.2.2 coupled software architectures for promoting D-AC002.2.3 reusability
Received on Tuesday, 16 July 2002 15:47:32 UTC