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

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

Appendix B. CORBA Resources

B.1 World Wide Web

There are a number of useful Web sites where you can find more information on all aspects of CORBA.

OMG Web site: <http://www.omg.org>

This is the number one place to turn to for information. You can download electronic copies of the adopted specifications and see the work in progress on new technologies and revisions of the standards. The site also contains a wealth of other information, such as CORBA success stories, press releases, latest news, overview material on CORBA, links to other CORBA-related sites, a "CORBA for Beginners" section, and so on.

Douglas Schmidt's Home Page: <http://www.cs.wustl.edu/~schmidt>

A very informative site with research papers, tutorials, links to CORBA-related information and products, and a host of other material. Of particular interest are papers related to ORB performance and real-time CORBA.

Cetus Links on Objects and Components: <http://www.cetus-links.org>

A jump site with thousands of links to information on all aspects of object-oriented computing, spanning various engineering disciplines, technologies, and programming languages.

B.2 Newsgroups

There are several newsgroups relevant to CORBA programming.

comp.object.corba

The main CORBA discussion group. Topics range from the simple to the highly advanced and span all aspects of CORBA. Even though the number of articles per day has been steadily rising, the signal-to-noise ratio is still good. Often, this group is the best available resource when you are stuck on a specific programming problem. comp.lang.java.corba

Mainly for discussion of Java-related aspects of CORBA. However, discussions often cover topics that apply more generally.

comp.object

A general discussion group for object-oriented topics, not limited to CORBA. comp.lang.c++.moderated

877

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

The newsgroup to read if you are interested in C++. Not many topics are directly related to CORBA; instead, the discussions cover every imaginable aspect of general C++ programming. The group is moderated, and discussions are usually relevant and on topic, despite the high volume.

B.3 Mailing Lists

You can subscribe to a number of mailing lists relevant to CORBA.

Alan Pope's CORBA Mailing List: <corba-dev@randomwalk.com> Wide-ranging discussions on all aspects of CORBA. Moderated, low-volume, highquality list. To subscribe, e-mail <majordomo@randomwalk.com> with "subscribe corba-dev" in the message body.

Ron Resnick's Distributed Objects Mailing List: <distobj@distributedcoalition.org>

High-quality list on all aspects of distributed computing with excellent signal-to-noise ratio. Subscription is moderated. For information on how to subscribe, see < http://www.distributedcoalition.org/mailing_lists/dist-obj.

Vendor-specific lists

Almost all ORB vendors run mailing lists for discussions specific to their product lines. Typically, this is the place to learn about the latest patch or product release as well as to get tips that are specific to a particular product. Check the vendors' Web sites for information on how to subscribe.

OMG mailing lists

If your company is an OMG member, you can subscribe to a large number of technical mailing lists hosted by the OMG. These mailing lists are where much of the work of creating new specifications is done. The lists are an excellent source of information if you want to keep your finger on the pulse of CORBA. You can find more information for these lists and instructions for how to subscribe at <http://www.omg. org/members/mailinglists.html. (You must be an OMG member to access this page.)

B.4 Magazines

We recommend that you read the following magazines.

C++ Report. New York: SIGS Publications: <http://www.creport.com>

The best magazine on C++ programming on the market. Contains articles on every aspect of C++ programming, including columns specifically devoted to CORBA. Ten issues per year, all of which should be mandatory reading for every C++ programmer.

878

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

Journal of Object-Oriented Programming (JOOP). New York: SIGS Publications: <http://www.joopmag.com>

A magazine devoted to general topics relating to object-oriented programming. Covers many different programming languages, modeling and design techniques, patterns, and more. Well worth reading.

879

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

Bibliography

References

Booch, G., et al. 1998. Unified Modeling Language User Guide. Reading, MA: Addison-Wesley. A tutorial for UML with lots of examples. Butenhof, D. R. 1997. Programming with Posix Threads. Reading, MA: Addison-Wesley. A good introduction to programming with threads. The book uses the C language for its code examples but you should have no problem translating examples into C++.

European Computer Manufacturers Association. 1997. Portable Common Tool Environment (PCTE): Abstract Specification. Geneva: European Computer Manufacturers Association.

Gamma, E., et al. 1994. Design Patterns. Reading, MA: AddisonWesley. The canonical book on patterns, containing a host of solutions to common programming problems. Mandatory reading for every OO programmer.

Gray, J., and A. Reuter. 1993. Transaction Processing: Concepts and Techniques. San Francisco: Morgan Kaufmann. A very detailed and thorough treatment of transaction processing. Not for the faint-hearted. Hofstadter, D. R. 1999. Gödel, Escher, Bach: An Eternal Golden Braid.

New York: Basic Books. A fascinating treatise on the nature of thought, computability, and recursion. The book transcends the disciplines of art and science and contains many thought-provoking ideas bordering on the metaphysical. Well worth reading.

Institute of Electrical and Electronics Engineers. 1985. IEEE 754-1985 Standard for Binary Floating-Point Arithmetic. Piscataway, NJ: Institute of Electrical and Electronics Engineers.

International Organization for Standardization. 1998. ISO/IEC 8859-1 Information Technology—8-bit Single-Byte Coded Graphic Character Sets —Part 1: Latin Alphabet No. 1. Geneva: International Organization for Standardization.

International Organization for Standardization. 1998. ISO/IEC 14882 Standard for the C++ Programming Language. Geneva: International Organization for Standardization. The official specification of the C++ programming language. Not easy to read and of interest mainly to compiler implementers. However, if you have a question about a finer point of C++ syntax or semantics, you can find the answer in this document.

Kleiman, S., et al. 1995. Programming With Threads. Englewood, NJ: Prentice Hall. A good introduction to programming with threads using C. Covers both POSIX and UI threads.

880

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

Lakos, J. 1996. Large-Scale C++ Software Design. Reading, MA: Addison-Wesley. An excellent book on how to design the physical structure of large C++ software such that the resulting system is efficient, comprehensible, and maintainable. Mandatory reading if you are involved in C++ development requiring more than two or three programmers.

Lewis, B., and D. J. Berg. 1995. Threads Primer: A Guide to Multithreaded Programming. Englewood, NJ: Prentice Hall. Another good introduction to programming with threads.

McKusick, M. K., et al. 1996. The Design and Implementation of the 4.4BSD Operating System. Reading, MA: Addison-Wesley. Describes the internals of the 4.4BSD implementation of UNIX. While not directly relevant to CORBA or C++, many of the design ideas described in this book apply to programming in general.

Musser, D. R., and A. Saini. 1996. STL Tutorial and Reference Guide.

Reading, MA: Addison-Wesley. An excellent introduction and reference to the Standard Template Library. Mandatory reading for every C++ programmer.

Meyers, S. 1998. Effective C++. 2nd Ed. Reading, MA: Addison-Wesley. Fifty solid pieces of advice for how to write clean and comprehensible C++ code. Very well written in a down-to-earth style.

Meyers, S. 1996. More Effective C++. Reading, MA: Addison-Wesley. Another thirty-five solid pieces of advice. Just as good as Effective C++.

Norman, D. A. 1989. The Design of Everyday Things. New York: Doubleday. A fascinating book on human-machine interfaces, with examples from many design disciplines, including computing. Every software engineer should read this book.

Object Management Group. 1999. C++ Language Mapping Specification. ftp://ftp.omg. org/pub/docs/formal/99-07-41.pdf. Framingham, MA: Object Management Group. The complete C++ language mapping specification.

Object Management Group. 1999. The Common Object Request Broker: Architecture and Specification. Revision 2.3. ftp://ftp.omg. org/pub/docs/formal/98-12-01.pdf. Framingham, MA: Object Management Group. The official CORBA specification. Of interest mainly to ORB implementers and not for the faint-hearted. If you have questions on details of CORBA, the answers should be in this document.

Object Management Group. 1998. CORBA/Firewall Security. Revised Submission. ftp://ftp.omg. org/pub/docs/orbos/98-05-04.pdf. Framingham, MA: Object Management Group.

881

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

Object Management Group. 1998. CORBA Messaging. Revised Submission. ftp://ftp.omg. org/pub/docs/orbos/98-05-06.pdf. Framingham, MA: Object Management Group.

Object Management Group. 1997. CORBAservices: Common Object Services Specification. ftp://ftp.omg. org/pub/docs/formal/98-07- 05.pdf. Framingham, MA: Object Management Group. A collection of specifications for the various CORBA services. A good place to look for clarification if your vendor's documentation is inadequate.

Object Management Group. 1998. Fault-Tolerant CORBA Using Entity Redundancy. RFP. ftp://ftp.omg. org/pub/docs/formal/98-04-10.pdf. Framingham, MA: Object Management Group.

Object Management Group. 1997. Garbage Collection of CORBA Objects. Draft RFP. ftp://ftp.omg. org/pub/docs/orbos/97-08-08.pdf. Framingham, MA: Object Management Group.

Object Management Group. 1998. JIDM Interaction Translation. ftp://ftp.omg. org/pub/docs/telecom/98-10-10.pdf. Framingham, MA: Object Management Group.

Object Management Group. 1997. Meta-Object Facility (MOF) Specification. ftp://ftp.omg. org/pub/docs/ad/97-08-14.pdf. Framingham, MA: Object Management Group.

Object Management Group. 1998. Notification Service. Revised Submission. ftp://ftp.omg. org/pub/docs/telecom/98-09-04.pdf. Framingham, MA: Object Management Group.

Object Management Group. 1995. ORB Portability Enhancement RFP. ftp://ftp.omg. org/pub/docs/1995/95-06-26.pdf. Framingham, MA: Object Management Group.

Object Management Group. 1997. Person Identification Service.

Revised Submission. ftp://ftp.omg. org/pub/docs/corbamed/97-11- 01.pdf. Framingham, MA: Object Management Group.

The Open Group. 1997. DCE 1.1: Remote Procedure Call. Technical Standard C706. http://www. opengroup.org/publications/catalog/c706.htm. Cambridge, MA: The Open Group.

The Open Group. 1997. Inter-Domain Management: Specification Translation. Preliminary Specification P509. http://www. opengroup.org/publications/catalog/p509.htm. Cambridge, MA: The Open Group.

Pope, A. 1997. The CORBA Reference Guide. Reading, MA: AddisonWesley. A high-level overview of CORBA. Explains the OMG technology adoption process and contains an overview of the CORBA object model and architectural components. Briefly explains each of the CORBA services.

882

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

Rumbaugh, J., et al. 1998. Unified Modeling Language Reference Manual. Reading, MA: Addison-Wesley. The complete definition of the syntax and semantics of UML.

Schmidt, D. C. 1993. "The ADAPTIVE Communication Environment: Object-Oriented Network Programming Components for Developing Client/Server Applications." In Proceedings of the 11th Annual Sun Users Group Conference. San Jose, CA: SUG, 214–225.

Schmidt, D. C. 1995. "Reactor: An Object Behavioral Pattern for Concurrent Event Demultiplexing and Event Handler Dispatching." In Pattern Languages of Program Design, ed. James O. Coplien and Douglas C. Schmidt. Reading, MA: Addison-Wesley.

Schmidt, D. C., and S. Vinoski. 1996. "Comparing Alternative Programming Techniques for Multi-threaded Servers." C++ Report 8 (2): 50–59.

Schmidt, D. C., and S. Vinoski. 1996. "Comparing Alternative Programming Techniques for Multi-threaded Servers-The Thread-Pool Concurrency Model." C++ Report 8 (4): 56–66.

Schmidt, D. C., and S. Vinoski. 1996. "Comparing Alternative Programming Techniques for Multi-threaded Servers-The Thread-per- Session Concurrency Model." C++ Report 8 (7): 47–56.

Schmidt, D. C. 1998. "Evaluating Architectures for Multithreaded Object Request Brokers." Communications of the ACM 41 (10): 54–60. Stroustrup, B. 1997. The C++ Programming Language. 3rd Ed. Reading, MA: Addison-Wesley. The C++ bible. Even if you know C++ already, this book is worth reading. Also useful as a more approachable reference than the C++ Standard.

Tanenbaum, A. S. 1994. Distributed Operating Systems. Englewood, NJ: Prentice Hall. Even though this book is specific to distributed operating systems, many of the ideas presented apply to distributed systems in general. A fertile source of design advice for your own distributed applications.

Recommended Reading

This section lists a number of books we did not explicitly refer to in the text but that are well worth reading nevertheless.

C++

• Austern, M. H. 1998. Generic Programming and the STL. Reading, MA: Addison-Wesley. An excellent companion to [\TEMP\WW538403.TMP]. It explains much of the inner workings of the STL and shows how to seamlessly extend it with your own data types and algorithms.

883

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

Cargill, T. 1992. C++ Programming Style. Reading, MA: AddisonWesley. A fertile source of design and programming advice from one of the experts in the field.

Coplien, J. O. 1991. Advanced C++ Programming Styles and Idioms.

Reading, MA: Addison-Wesley. The book that used programming patterns before the term was even coined. Highly recommended.

Ellis, M. A., and M. D. Carroll. 1995. Designing and Coding Reusable C++. Reading, MA: Addison-Wesley. Provides practical advice on designing, implementing, and deploying reusable C++ classes and libraries.

Lippman, S. and J. Lajoie. 1998. C++ Primer. 3rd Ed. Reading, MA: Addison-Wesley. An outstanding book on C++, somewhat more approachable than Stroustrup's book.

Murray, R. B. 1993. C++ Strategies and Tactics. Reading, MA: Addison-Wesley. Lots of practical advice on how to write C++ code that works.

Stroustrup, B. 1994. The Design and Evolution of C++. Reading, MA: Addison-Wesley. Provides an interesting behind-the-scenes look at the design decisions that shaped C++. Highly recommended reading, especially if you sometimes wonder why a particular language feature works the way it does.

Object-Oriented Design

Booch, G. 1994. Object-Oriented Design with Applications. 2nd Ed. Reading, MA: Addison-Wesley. Solid advice on how (and how not) to design object-oriented systems.

Jacobson, I., G. Booch, and J. Rumbaugh. 1998. The Unified Software Development Process. Reading, MA: Addison-Wesley. Written by three apostles of object-oriented design. Uses the Unified Modeling Language, which is set to become a universal standard for describing object-oriented systems.

General Computer Science

Cormen, T., C. Leiserson, and R. Rivest. 1990. Introduction to Algorithms. Cambridge, MA: MIT Press. A very comprehensive (despite its title) reference on data structures and algorithms. Not for beginners.

Harel, D. 1992. Algorithmics: The Spirit of Computing. 2nd Ed. Reading, MA: Addison-Wesley. An excellent overview of the foundations of computer science. Fun to read even if you have been a computer professional for years.

Knuth, D. E. 1997. The Art of Computer Programming, Volume 1: Fundamental Algorithms. 3rd Ed. Reading, MA: Addison-Wesley.

884

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

Knuth, D. E. 1998. The Art of Computer Programming, Volume 2: Seminumerical Algorithms. 3rd Ed. Reading, MA: Addison-Wesley.

Knuth, D. E. 1998. The Art of Computer Programming, Volume 3: Sorting and Searching. 2nd Ed. Reading, MA: Addison-Wesley. Donald Knuth's books are considered bibles of computer science. They offer the most complete treatment of data structures and algorithms in existence. Not for the casual reader.

Project Management

Booch, G. 1996. Object Solutions: Managing the Object-Oriented Project. Reading, MA: Addison-Wesley. Good advice on how to keep object-oriented development on track.

Brooks, F. 1995. The Mythical Man-Month. Anniversary Ed. Reading, MA: Addison-Wesley. One of the first (and best) books on the complexities of managing software projects. First published twenty years ago, it is still as relevant today as it was then. A classic.

Gabriel, R. P. 1996. Patterns of Software: Tales from the Software Community. Oxford, United Kingdom: Oxford University Press. A very interesting collection of essays on project management, programmer psychology, patterns, and the quest for the Right Thing.

Liberty, J. 1997. Clouds to Code. Birmingham, United Kingdom: Wrox Press. A rare inside look at an industrial software project, providing an excellent analysis of the reasons for successes and failures.

Yourdon, E., and P. Becker, ed. 1997. Death March: The Complete Software Developer's Guide to Surviving 'Mission Impossible' Projects.

Englewood, NJ: Prentice Hall. A good study of why software projects go wrong and sound advice on how to save yourself if you end up on a death march project.

885