Component Design Patterns
Call for Participation

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 used on clients and servers to build flexible, reusable solutions.

Software is being built in the context of different scripting and programming environments used on different platforms with different programming languages. On many projects, components are purchased, developed, and assembled, thus an important distinction between component developer and component assembler has emerged.

For some time, component reuse in graphical user interfaces has been popular. More and more, packaged solutions and enterprise frameworks are being componentized. Business applications are being implemented on the world-wide web and in multi-tier enterprise architectures that are rich with components covering several integrated domains.

On the client, Java applets, JavaBeans, and ActiveX controls are being used reused. On the server, we see Java Servlets, Enterprise JavaBeans, Active Server Pages using Microsoft Transaction Server with COM objects, and CORBA implementations providing reliable 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 is a language currently under construction by Kyle Brown, Philip Eskelin, and Nat Pryce on the Wiki Wiki Web. The purpose of the pattern 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 organizing 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
Today, much of software development in information technology organizations is component-based. Given Microsoft's desktop dominance both in homes and in businesses of all sizes around the globe, and their committment to a component technology standard based on Microsoft's Component Object Model (COM), many developers can utilize different frameworks developed in COM and feel secure that their work will be compatible with hundreds of millions of personal computers around the world.

In addition to Microsoft's push for COM, Java and CORBA have rapidly emerged as industrial-strength, cross-platform object technology standards. To better facilitate design, development, and maintenance of enterprise-level solutions, JavaBeans and Enterprise JavaBeans have been introduced into the technology fold. OMG's Business Object Component Architecture (BOCA) illustrates OMG's committment to taking CBD more seriously. Microsoft, JavaSoft, and OMG efforts are all interoperable, proving that the industry is demonstrating a comprehensive and serious committment component technology.

Software developers struggle with problems that typically have known solutions. We talk to our peers and mentors, browse through reference books and the web, and look for overall design principles for guidance. Many times answers to problems are passed down by tradition, and people independently rediscover clever solutions without benefiting from similar solutions. Writing down these recurring themes for others to use is what patterns are about.

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 position papers in response to the CFP and review material submitted by others.
  • E-mail discussion to set the context and determine focus topics.
Workshop Day One
  • Opening session for introduction, description of format, and workshop goals.
  • Case study of project using several of the patterns in the language.
  • First breakout session on patterns and focus topic content.
Workshop Day Two
  • CRC card session to map out structure of 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 6-8 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 COM/ActiveX, C/C++, Visual Basic, Java, JavaBeans, EJB, CORBA, 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, January 8, 1999. 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 fictitious 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 of the invitation, you will be added to it. It's a private, moderated list used by participants in the pattern language project (including ChiliPLoP'99 participants).
  • Prepare for the workshop by reviewing other participants' resources.
  • Come to ChiliPLoP prepared to participate actively and help accomplish workshop goals.

Important Dates
The following dates are important in the days leading to ChiliPLoP'99:

  • Tuesday, March 2nd, 1999 — Proposal submissions requesting to participate are due.

  • Ongoing until Tuesday, March 9th, 1999 — 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 Tuesday, March 9th, 1999 — All resources submitted by the participants will be made available on the web for reading and discussion.

  • Tuesday-Friday, March 16-19, 1999 — ChiliPLoP'99 gets underway at Wickenburg, Arizona in the context of 70-degree weather and ranch stuff like outside cookouts and roping!

Contact Information
Workshop Organizer Important Links
Philip Eskelin
Fixed Income & Derivatives Services
Credit Suisse First Boston Corp.
Eleven Madison Avenue, 11th Floor
New York, NY 10010


Copyright 1998 by Kyle Brown, Philip Eskelin, and Nat Pryce.
All Rights Reserved.

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