Component Design Patterns
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.
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.
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:
All Rights Reserved.
Note: PLoP is a trademark of The Hillside Group, Inc.