Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Advanced CORBA Programming wit C++ - M. Henning, S. Vinoski.pdf
Скачиваний:
65
Добавлен:
24.05.2014
Размер:
5 Mб
Скачать

IT-SC book: Advanced CORBA® Programming with C++

increase in memory footprint is usually insignificant compared with the total memory requirements.

The idea of a delegation layer is not new. A CORBA delegation layer is simply an application of the well-known Adapter pattern [4]. This pattern can be used in a variety of situations, such as the integration of legacy systems into CORBA. Whether the design we outline here is appropriate for you depends on your application. In some cases, the additional cost of delegation will be larger than you are willing to tolerate. In addition, the picture we have presented here is oversimplified. For example, if the core logic must make calls to other CORBA objects in turn, you must funnel such calls through a separate layer that takes care of sending invocations when the core logic acts as the client instead of the server. However, the effort you spend on implementing such a design is typically repaid many times over the lifetime of the system. We have successfully implemented this design for a number of different applications.

22.7 Summary

A number of approaches exist for making your CORBA applications scalable, portable, and maintainable without sacrificing performance. In evaluating these techniques, you will find that they often involve trade-offs, as in the case of interfaces that contain many operations that return small amounts of data versus interfaces that have fat operations and return data in bulk. Passing data around versus encapsulating it in objects is always a topic of heated debate among distributed system architects and designers. Other techniques you may want to consider include the optimization of server applications with respect to method invocation overhead and memory consumption by servants. Federation can be used to distribute server load across separate processes. Physical design also presents opportunities for reducing maintenance overhead and enhancing portability by isolating an application's business logic from its CORBA code.

We have kept the discussion in this chapter at a fairly high level and have kept our treatment of these topics light. Not only do we provide many related details throughout the rest of the book, but also there is no practical way to include all the necessary details concerning application performance, scalability, and maintainability in a single chapter. Nevertheless, exploring and experimenting with the ideas we present here will help you learn how to develop high-performance, scalable, and maintainable CORBA-based systems.

868