Component Design Patterns
A ChiliPLoP 2000 Hot Topic
Author: Philip Eskelin
philip.eskelin@acm.org
Introduction
Many projects today use a component-based approach to developing software. Component-Based Development (CBD) stresses language and platform interoperability, and separation of interface from implementation. Existing and newly constructed components are being deployed to clients and servers to build flexible, reusable solutions.

On the client, Java applets, JavaBeans, HTML, JavaScript, and ActiveX controls are being used to express rich content. On the server, we see Java Servlets, Enterprise JavaBeans, Java Server Pages, Active Server Pages using Microsoft Transaction Server with COM objects, and EJB implementations such as IBM WebSphere and BEA WebLogic are providing industrial-strength solutions for cross-platform component-based development. And component frameworks are being developed that can be extended into the business domain via components.

Component Design Patterns: A Pattern Language for Component-Based Development is a book currently being written, authored by Philip Eskelin, which will be published by Addison-Wesley Longman in 2000. The book serves as a snapshot of an ongoing pattern language project by Philip Eskelin, with Kyle Brown and Nat Pryce on the Wiki Wiki Web. The purpose of the language is to write down some of the recurring themes and best practices in CBD that lead to winning software projects. And the purpose of doing a ChiliPLoP Hot Topic is to help evolve the language in a community-driven manner, and to get together with a group of capable and interested folks to discuss component-based development in general.

Topic Overview
In our work as software developers, we struggle with problems that we imagine must have known solutions. For some of these problems, we find answers in books containing algorithms or sample code, in reused code and components, or from discussions with fellow colleagues.

For other problems, such as those involving design, organizational structure, change management, and development practices, the answers are typically much harder to find. Many of the answers are not written down, but rather, if we are lucky, passed on from person to person, or rediscovered by each individual through trial and error.

Regardless of the platform or programming language, developers in different situations tend to come up with solutions to some of those problems that have very similar themes. Writing these experiences down so others can benefit from them is what patterns are all about.

Nevertheless, we are after beauty, not expert knowledge . Our focus is not upon publishing a catalogue of principles and best practices. Moreover, it’s not programming for dummies. Instead, we’re publishing a snapshot of a project that is attempting to document several interrelated patterns centered on component-based development.

Because of these interrelationships, we’ve structured the patterns in the form of a pattern language that we hope, as a whole, helps software developers increase the beauty and wholeness of the software they build.

Based on the pervasive nature of component technology and a pattern language's ability to effectively document recurring themes, the focus of this Hot Topic is to explore pattterns in component-based development and make progress in evolving the work that has been currently done in the Component Design Patterns project.

The patterns that will be used for the Hot Topic will be a core subset of the overall language. The intention is to limit the amount of material that participants are required to read for preparation. We will explore the most mature parts of the language as full content, and will leave the rest of the patterns as "stubs". We hope to get good feedback on existing patterns, that focus topics uncover new patterns, to define or invalidate existing "stubs", and that more positions are submitted due to less burdensome reading requirements.

Topic Plan
The following proposed will serve as the basis for establishing group consensus on a plan that will best fit the group:

Pre-Workshop Preparation
  • Candidates read the current version of the Component Design Patterns language.
  • Candidates submit 2-3 page position papers in response to the CFP and review material submitted by others.
  • E-mail discussion to set the context and determine topic focus.
Workshop Day One
  • Opening session for introduction, description of format, and workshop goals.
  • Group experiences of projects using the patterns in the language.
  • First breakout session on patterns and focus topic content.
Workshop Day Two
  • Discuss the structure of the pattern language.
  • Second breakout session on patterns and focus topic content.
Workshop Day Three
  • Workshop the materials developed in the preceding two days for all focus topics.
  • Postmortem (or meta-workshop) to summarize findings, questions, issues, and next steps.
Participant Information
We hope to attract 4-6 highly motivated and experienced pattern users, pattern writers, and software developers to participate in this hot topic. Specifically, people who are experienced developing solutions in C/C++, Java, JavaBeans, EJB, XML, CORBA, COM/ActiveX, Visual Basic, and other technologies that lend themselves to a component-based approach to development are invited to submit requests to participate.

Submit a request to participate by e-mail to the workshop organizer on or before Friday, March 3rd, 2000. You may submit ASCII text, HTML, or a URL where we can find your submission. Your proposal should be one to three pages long and should include things like:

  • A description of a project you have been involved with that uses one or more of the existing patterns, or is a project that made use of components in one way or another (assembly and/or development).
  • A description of how you might apply the pattern language in your work and what other recurring themes you see that don't currently exist in the language.
  • A scenario where you would use the language for a system that you are functionally familiar with.
If you are invited to participate, you will be expected to:
  • Participate in e-mail discussion via mailing list. Upon acceptance , you will be added to the list. It's a private, moderated list used by participants in the pattern language project (including ChiliPLoP'00 participants).
  • Prepare for the workshop by reviewing pattern language material and other participants' submissions.
  • Come to ChiliPLoP prepared to participate, barbeque, and help accomplish workshop goals!

Important Dates
The following dates are important in the days leading to ChiliPLoP'00:
  • Friday, March 3rd, 2000 - Proposal submissions requesting to participate are due.
  • Ongoing until Monday, March 13th, 2000 - Notification will be sent out to applicants regarding acceptance. Participants will be added to the [cdp] mailing list and will work up to the start of the conference to discuss goals and agenda.
  • Ongoing until Monday, March 13th, 2000
  • Tuesday-Friday, March 14-17, 2000 - ChiliPLoP'00 gets underway at Wickenburg, Arizona in the context of 80-degree weather and ranch stuff like outside cookouts and trail rides!

Contact Information
Workshop Organizer Important Links
Philip Eskelin
Chief Technology Officer Electronic Commerce
Ernst & Young LLP
750 Seventh Avenue, 19th Floor
New York, NY 10019
- Component Design Patterns Home Page
- Brad Appleton's Component Technology Links


Copyright 1998-2000 by Kyle Brown, Philip Eskelin, and Nat Pryce. All Rights Reserved.
Contact Information: philip.eskelin@acm.org

Note: PLoP is a trademark of The Hillside Group, Inc.