5.5 Summary

Ru-Brd

Traditional software development techniques that statically link and configure a networked application's services together can be limiting. For example, the effort and time needed to rebuild an entire program for each new or modified service increases development and maintenance costs substantially. Moreover, making these changes in the field is inefficient and error prone, and can cause support costs to soar and customer satisfaction to plummet.

This chapter described the ACE Service Configurator framework, which implements the Component Configurator pattern [POSA2] to provide a portable way to statically and/or dynamically link services and then initiate, suspend, resume, and shut them down dynamically at run time. This framework helps to improve the extensibility of networked software by allowing applications to defer the selection of a particular service implementation until late in the software life cycle ”as late as installation time or even run time. This flexibility yields the following important advantages:

  • Applications can be composed and (re)configured at run time using mix-and-match, independently developed services.

  • Developers can concentrate on a service's functionality and other key design dimensions without committing prematurely to a particular service configuration.

  • Applications are composed of multiple services that are developed independently, so they don't require advanced global knowledge of each other, yet can still collaborate.

This chapter explained the origin and usage of each of the ACE Service Configurator framework's classes and helper macros. We also used these capabilities to separate parts of the previous chapter's logging servers into independently linkable and configurable services. The result was a networked logging service that can be configured and deployed in various ways. The extensibility afforded by the ACE Service Configurator framework allows operators and administrators to select the features and alternative implementation strategies that make the most sense in a particular context, as well as make localized decisions on how best to initialize and evolve them.

Ru-Brd


C++ Network Programming
C++ Network Programming, Volume I: Mastering Complexity with ACE and Patterns
ISBN: 0201604647
EAN: 2147483647
Year: 2002
Pages: 65

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net