 |
Advanced Corba Programming with C++ Customer Reviews: 3 Average Customer Rating:      Write a Review and tell the world about this title! People who purchase this book frequently purchase: Books on similar topics, in best-seller order:Books from the same publisher, in best-seller order:
Here is the CORBA book that every C++ software engineer has been waiting for. Advanced CORBA® Programming with C++ provides designers and developers with the tools required to understand CORBA technology at the architectural, design, and source code levels. This book offers hands-on explanations for building efficient applications, as well as lucid examples that provide practical advice on avoiding costly mistakes. With this book as a guide, programmers will find the support they need to successfully undertake industrial-strength CORBA development projects.
The content is systematically arranged and presented so the book may be used as both a tutorial and a reference. The rich example programs in this definitive text show CORBA developers how to write clearer code that is more maintainable, portable, and efficient. The authors' detailed coverage of the IDL-to-C++ mapping moves beyond the mechanics of the APIs to discuss topics such as potential pitfalls and efficiency. An in-depth presentation of the new Portable Object Adapter (POA) explains how to take advantage of its numerous features to create scalable and high-performance servers. In addition, detailed discussion of advanced topics, such as garbage collection and multithreading, provides developers with the knowledge they need to write commercial applications.
Other highlights
- In-depth coverage of IDL, including common idioms and design trade-offs
- Complete and detailed explanations of the Life Cycle, Naming, Trading, and Event Services
- Discussion of IIOP and implementation repositories
- Insight into the dynamic aspects of CORBA, such as dynamic typing and the new DynAny interfaces
- Advice on selecting appropriate application architectures and designs
- Detailed, portable, and vendor-independent source code
Contents
Preface xvii
Chapter 1 Introduction 1
- 1.1 Introduction 1
- 1.2 Organization of the Book 3
- 1.3 CORBA Version 4
- 1.4 Typographical Conventions 5
- 1.5 Source Code Examples 5
- 1.6 Vendor Dependencies 6
- 1.7 Contacting the Authors 6
Part I Introduction to CORBA 7
Chapter 2 An Overview of CORBA 9
- 2.1 Introduction 9
- 2.2 The Object Management Group 11
- 2.3 Concepts and Terminology 14
- 2.4 CORBA Features 15
- 2.5 Request Invocation 23
- 2.6 General CORBA Application Development 33
- 2.7 Summary 35
Chapter 3 A Minimal CORBA Application 37
- 3.1 Chapter Overview 37
- 3.2 Writing and Compiling an IDL Definition 37
- 3.3 Writing and Compiling a Server 39
- 3.4 Writing and Compiling a Client 44
- 3.5 Running Client and Server 47
- 3.6 Summary 48
Part II Core CORBA 49
Chapter 4 The OMG Interface Definition Language 51
- 4.1 Chapter Overview 51
- 4.2 Introduction 51
- 4.3 Compilation 52
- 4.4 Source Files 56
- 4.5 Lexical Rules 57
- 4.6 Basic IDL Types 59
- 4.7 User-Defined Types 62
- 4.8 Interfaces and Operations 77
- 4.9 User Exceptions 88
- 4.10 System Exceptions 91
- 4.11 System Exceptions or User Exceptions? 94
- 4.12 Oneway Operations 95
- 4.13 Contexts 97
- 4.14 Attributes 98
- 4.15 Modules 100
- 4.16 Forward Declarations 102
- 4.17 Inheritance 103
- 4.18 Names and Scoping 112
- 4.19 Repository Identifiers and pragma Directives 116
- 4.20 Standard Include Files 120
- 4.21 Recent IDL Extensions 121
- 4.22 Summary 125
Chapter 5 IDL for a Climate Control System 127
- 5.1 Chapter Overview 127
- 5.2 The Climate Control System 127
- 5.3 IDL for the Climate Control System 130
- 5.4 The Complete Specification 136
Chapter 6 Basic IDL-to-C++ Mapping 139
- 6.1 Chapter Overview 139
- 6.2 Introduction 140
- 6.3 Mapping for Identifiers 141
- 6.4 Mapping for Modules 142
- 6.5 The CORBA Module 144
- 6.6 Mapping for Basic Types 144
- 6.7 Mapping for Constants 148
- 6.8 Mapping for Enumerated Types 150
- 6.9 Variable-Length Types and
_var Types 151
- 6.10 The
String_var Wrapper Class 156
- 6.11 Mapping for Wide Strings 169
- 6.12 Mapping for Fixed-Point Types 169
- 6.13 Mapping for Structures 173
- 6.14 Mapping for Sequences 179
- 6.15 Mapping for Arrays 198
- 6.16 Mapping for Unions 201
- 6.17 Mapping for Recursive Structures and Unions 209
- 6.18 Mapping for Type Definitions 210
- 6.19 User-Defined Types and
_var Classes 211
- 6.20 Summary 222
Chapter 7 Client-Side C++ Mapping 223
- 7.1 Chapter Overview 223
- 7.2 Introduction 223
- 7.3 Mapping for Interfaces 224
- 7.4 Object Reference Types 225
- 7.5 Life Cycle of Object References 227
- 7.6 Semantics of
_ptr References 234
- 7.7 Pseudo-Objects 241
- 7.8 ORB Initialization 242
- 7.9 Initial References 245
- 7.10 Stringified References 249
- 7.11 The Object Pseudo-Interface 251
- 7.12
_var References 259
- 7.13 Mapping for Operations and Attributes 271
- 7.14 Parameter Passing Rules 274
- 7.15 Mapping for Exceptions 307
- 7.16 Mapping for Contexts 322
- 7.17 Summary 323
Chapter 8 Developing a Client for the Climate Control System 325
- 8.1 Chapter Overview 325
- 8.2 Introduction 325
- 8.3 Overall Client Structure 326
- 8.4 Included Files 327
- 8.5 Helper Functions 328
- 8.6 The
main Program 333
- 8.7 The Complete Client Code 341
- 8.8 Summary 346
Chapter 9 Server-Side C++ Mapping 349
- 9.1 Chapter Overview 349
- 9.2 Introduction 349
- 9.3 Mapping for Interfaces 351
- 9.4 Servant Classes 353
- 9.5 Object Incarnation 355
- 9.6 Server
main 356
- 9.7 Parameter Passing Rules 358
- 9.8 Raising Exceptions 376
- 9.9 Tie Classes 382
- 9.10 Summary 387
Chapter 10 Developing a Server for the Climate Control System 389
- 10.1 Chapter Overview 389
- 10.2 Introduction 389
- 10.3 The Instrument Control Protocol API 390
- 10.4 Designing the Thermometer Servant Class 393
- 10.5 Implementing the Thermometer Servant Class 396
- 10.6 Designing the Thermostat Servant Class 399
- 10.7 Implementing the Thermostat Servant Class 402
- 10.8 Designing the Controller Servant Class 405
- 10.9 Implementing the Controller Servant Class 407
- 10.10 Implementing the Server main Function 413
- 10.11 The Complete Server Code 414
- 10.12 Summary 427
Chapter 11 The Portable Object Adapter 429
- 11.1 Chapter Overview 429
- 11.2 Introduction 430
- 11.3 POA Fundamentals 430
- 11.4 POA Policies 434
- 11.5 POA Creation 447
- 11.6 Servant IDL Type 451
- 11.7 Object Creation and Activation 455
- 11.8 Reference, ObjectId, and Servant 496
- 11.9 Object Deactivation 499
- 11.10 Request Flow Control 502
- 11.11 ORB Event Handling 506
- 11.12 POA Activation 514
- 11.13 POA Destruction 520
- 11.14 Applying POA Policies 522
- 11.15 Summary 531
Chapter 12 Object Life Cycle 533
- 12.1 Chapter Overview 533
- 12.2 Introduction 533
- 12.3 Object Factories 534
- 12.4 Destroying, Copying, and Moving Objects 548
- 12.5 A Critique of the Life Cycle Service 564
- 12.6 The Evictor Pattern 570
- 12.7 Garbage Collection of Servants 589
- 12.8 Garbage Collection of CORBA Objects 598
- 12.9 Summary 600
Part III CORBA Mechanisms 603
Chapter 13 GIOP, IIOP, and IORs 605
- 13.1 Chapter Overview 605
- 13.2 An Overview of GIOP 606
- 13.3 Common Data Representation 607
- 13.4 GIOP Message Formats 612
- 13.5 GIOP Connection Management 621
- 13.6 Detecting Disorderly Shutdown 623
- 13.7 An Overview of IIOP 624
- 13.8 Structure of an IOR 626
- 13.9 Bidirectional IIOP 629
- 13.10 Summary 630
Chapter 14 Implementation Repositories and Binding 631
- 14.1 Chapter Overview 631
- 14.2 Binding Modes 631
- 14.3 Direct Binding 632
- 14.4 Indirect Binding via an Implementation Repository 636
- 14.5 Migration, Reliability, Performance, and Scalability 648
- 14.6 Activation Modes 652
- 14.7 Race Conditions 653
- 14.8 Security Considerations 656
- 14.9 Summary 659
Part IV Dynamic CORBA 661
Chapter 15 C++ Mapping for Type any 663
- 15.1 Chapter Overview 663
- 15.2 Introduction 663
- 15.3 Type any C++ Mapping 667
- 15.4 Pitfalls in Type Definitions 689
- 15.5 Summary 690
Chapter 16 Type Codes 691
- 16.1 Chapter Overview 691
- 16.2 Introduction 692
- 16.3 The TypeCode Pseudo-Object 692
- 16.4 C++ Mapping for the TypeCode Pseudo-Object 703
- 16.5 Type Code Comparisons 715
- 16.6 Type Code Constants 721
- 16.7 Type Code Comparison for Type any 725
- 16.8 Creating Type Codes Dynamically 727
- 16.9 Summary 736
Chapter 17 Type DynAny 737
- 17.1 Chapter Overview 737
- 17.2 Introduction 737
- 17.3 The DynAny Interface 738
- 17.4 C++ Mapping for the DynAny Pseudo-Object 750
- 17.5 Using DynAny for Generic Display 763
- 17.6 Obtaining Type Information 766
- 17.7 Summary 768
Part V CORBAservices 769
Chapter 18 The OMG Naming Service 771
- 18.1 Chapter Overview 771
- 18.2 Introduction 771
- 18.3 Basic Concepts 772
- 18.4 Structure of the Naming Service IDL 774
- 18.5 Semantics of Names 775
- 18.6 Naming Context IDL 780
- 18.7 Iterators 800
- 18.8 Pitfalls in the Naming Service 808
- 18.9 The Names Library 810
- 18.10 Naming Service Tools 810
- 18.11 What to Advertise 811
- 18.12 When to Advertise 812
- 18.13 Federated Naming 813
- 18.14 Adding Naming to the Climate Control System 817
- 18.15 Summary 824
Chapter 19 The OMG Trading Service 827
- 19.1 Chapter Overview 827
- 19.2 Introduction 828
- 19.3 Trading Concepts and Terminology 828
- 19.4 IDL Overview 834
- 19.5 The Service Type Repository 835
- 19.6 The Trader Interfaces 854
- 19.7 Exporting Service Offers 860
- 19.8 Withdrawing Service Offers 866
- 19.9 Modifying Service Offers 867
- 19.10 The Trader Constraint Language 869
- 19.11 Importing Service Offers 873
- 19.12 Bulk Withdrawal 890
- 19.13 The Admin Interface 891
- 19.14 Inspecting Service Offers 894
- 19.15 Exporting Dynamic Properties 894
- 19.16 Trader Federation 898
- 19.17 Trader Tools 911
- 19.18 Architectural Considerations 911
- 19.19 What to Advertise 913
- 19.20 Avoiding Duplicate Service Offers 914
- 19.21 Adding Trading to the Climate Control System 915
- 19.22 Summary 920
Chapter 20 The OMG Event Service 923
- 20.1 Chapter Overview 923
- 20.2 Introduction 923
- 20.3 Distributed Callbacks 924
- 20.4 Event Service Basics 931
- 20.5 Event Service Interfaces 936
- 20.6 Implementing Consumers and Suppliers 945
- 20.7 Choosing an Event Model 958
- 20.8 Event Service Limitations 961
- 20.9 Summary 963
Part VI Power CORBA 965
Chapter 21 Multithreaded Applications 967
- 21.1 Chapter Overview 967
- 21.2 Introduction 967
- 21.3 Motivation for Multithreaded Programs 968
- 21.4 Fundamentals of Multithreaded Servers 972
- 21.5 Multithreading Strategies 980
- 21.6 Implementing a Multithreaded Server 981
- 21.7 Servant Activators and the Evictor Pattern 996
- 21.8 Summary 997
Chapter 22 Performance, Scalability, and Maintainability 999
- 22.1 Chapter Overview 999
- 22.2 Introduction 999
- 22.3 Reducing Messaging Overhead 1000
- 22.4 Optimizing Server Implementations 1011
- 22.5 Federating Services 1013
- 22.6 Improving Physical Design 1014
- 22.7 Summary 1017
Appendix A Source Code for the ICP Simulator 1019
- A.1 Overview 1019
- A.2 Transient Simulator Code 1019
- A.3 Persistent Simulator Code 1026
Appendix B CORBA Resources 1031
- B.1 World Wide Web 1031
- B.2 Newsgroups 1032
- B.3 Mailing Lists 1032
- B.4 Magazines 1033
Bibliography 1035
Index 1043
|
Customer Reviews
Customer Reviews: 3 Average Customer Rating:      Jul 23, 2000     Hongye from US Excellent book for Corba programmers If you are writting Corba program with C++, this is the right book for you. Don't waste your time in searching other Corba reference anymore. It's the best in today's market. This book + OMG reference are all you need for your Corba(C++) project.
I haven't finished the book yet. So far, so good.
Feb 9, 2000     jolson@atdsprint.com from Kansas City, KS Very well written This book is well written and clearly presents details of CORBA that are generally dry to read from OMG specs. The authors took pains to present the concepts in an incremental manner with a Climate Control System example and they explain the details very well. After reading the book, you can read the OMG specs or an ORB spec much easier. It puts the pieces of various C++ Report "Object Interconnection" articles by Douglas Schmidt and Steve Vinoski over the past 5 years into perspective. The text also explains the better known CORBA services including Naming, Event, and Trading Services.
Jun 30, 1999     Erik Johannes from Beaverton, OR Excellent book for both intro and as a reference I am an experienced programmer who is new to the Corba world. I have purchased several books on Corba to get up to speed and also to use as reference material during my development phase. This book has struck me as being outstanding because it not only brings one up to speed on Corba details but also makes an excellent reference once one is experienced with Corba. I have ordered 5 copies for my company.
|
 |