throbber
Thomas J. Mowbray 0 Ron Zahavi
`
`Systéms Integration Using
`Distributed Objects
`
`SAP 1009 (Part 1 of 3)
`CBM ofU.S. Patent No. 8,037,158
`
`1
`
`

`
`
`
`The Essential CORBA:
`Systems Integration
` Using Distributed Objects
`
`
`
`
`2
`
`

`
`The Essential CORBA:
`
`Systems Integration
`
`Using Distributed Objects
`
`Thomas J. Mowbray, PhD
`
`Ron Zahavi
`
`John Wiley & Sons, Inc.
`
`New York - Chichester - Brisbane ° Toronto ~ Singapore
`
`-
`
`3
`
`

`
`Publisher: Katherine Schowalter
`
`Editor: Robert Elliott
`
`Managing Editor: Micheline Frederick
`
`Text Design & Composition: Integre Technical Publishing Co., Inc.
`
`Figures 6.1- 6.4 are reprinted courtesy of Microsoft Press from Inside OLE2 by Kraig
`Brockschmidt, © 1994, Microsoft Press, Redmond, WA.
`
`Figure 9.1 appears courtesy of IEEE. IEEE Micro, Vol. 13, No. 6 Camp Development:
`The Art ofBuilding a Market Through Standards by Chris Halliwell, 1993.
`
`Designations used by companies to distinguish their products are often claimed as
`trademarks. In all instances where John Wiley & Sons, Inc. is aware of a claim,
`the product names appear in initial capital or all capital letters. Readers, however,
`should contact the appropriate companies for more complete information regarding
`trademarks and registration.
`
`This text is printed on acid-free paper.
`
`Copyright © 1995 by John Wiley & Sons, Inc.
`
`All rights reserved. Published simultaneously in Canada.
`
`This publication is designed to provide accurate and authoritative information in
`regard to the subject matter covered. It is sold with the understanding that the
`publisher is not engaged in rendering legal, accounting, or other professional service.
`If legal advice or other expert assistance is required, the services of a competent
`professional person should be sought.
`’
`
`Reproduction or translation of any part of this work beyond that permitted by section
`107 or 108 of the 1976 United States Copyright Act without the permission of the
`copyright owner is unlawful. Requests for permission or further information should
`be addressed to the Permissions Department, John Wiley & Sons, Inc.
`
`ISBN 0-471-10611-9
`
`Printed in the United States of America
`
`109876
`
`4
`
`

`
`This book is dedicated to our
`
`lovely Wives and lifelong friends:
`Susan Zahavi and Kate Mowbray, C.P.A.
`
`Let us raise a standard to which the honest and brave will repair.
`—George Washington
`
`5
`
`

`
`6
`
`

`
`
`
`Preface
`
`Both of us have had a number of systems integration experiences before we
`started working together on a project called DISCUS (Data Interchange and
`Synergistic Collateral Usage Study) at The MITRE Corporation. We had the
`good fortune of working for a program management team that gave us the
`freedom to draw on our past experiences and develop a well thought out
`"approach to a challenging problem: general application interoperability.
`These ideas were based on the need for a carefully designed,_ well-
`documented software architecture, one that was designed with simplicity,
`extensibility, and cost implications in mind. We discovered through talking
`to our colleagues that these ideas, which seemed obvious to us, were not part
`oftheir training or backgrounds. In fact, these approaches are not adequately
`covered in the literature and not generally understood, even by experienced
`computer scientists. To transfer this knowledge, we put together this book,
`including a full coverage of the required background material, design ap-
`proach, and implementation techniques.
`Our approach builds on the standards foundations created by the Object
`Management Group (OMG). Our technical goals and the OMG goals are very
`much in sync. The OMG has made truly remarkable progress in generating
`vii
`
`7
`
`

`
`viii
`
`PREFACE
`
`quality standards and cultivating acceptance for its standards across indus-
`try, standards groups, and consortia. We want to see this vision realized even
`faster; hence, this book transfers our knowledge and approach for successful
`systems integration.
`
`T.J.M.
`R.Z.
`
`McLean, Virginia
`January 1995
`
`8
`
`

`
`Acknowledgments T
`
`Although this book was written on our own time, we must thank our project
`management for their visionary support, in particular: Webster Anderson,
`Dwight Brown, Steve Brown, Tim Daniel, Jeff Fleisher, Dolly Greenwood,
`Diane Haberstich, Gene Jarboe, Geoff Lipsey, John Polger, John Robusto,
`and Bill Ruh.
`
`We sincerely appreciate the help and contributions provided by our
`friends and colleagues, including: Howard Cohen, Donna Cornwell, Jonathan
`Doughty, Ray Emami, Julie Gravalesse, ’I‘om Herron, Michael Josephs, Mel-
`ony Katz, Paul Klinker, Dr. Fred Kuhl, Raphael Malveau, Emanuel Mamatas, John
`Marsh, Diane Mularz, Chibuike Nwaeze, Craig Prall, Bill Quigley, Andy Reho, Jeff
`Rogers, Hank Seebeck, Lisa Strader, Shel Sutton, John Tisaranni, Doug
`Vandermade, Sheryl Veazy-Rudy, and Kendall White.
`The Object Management Group has been essential to the publication
`of this work, thanks to Cheryl Bissonnette, Bill Hoffman, Kelly Kassa, Jon
`Siegel, John Slitz, Dr. Richard Soley, Geoff Speare, Chris Stone, and Lydia
`Thomas.
`-
`
`Special thanks to Steve Black, Mark Bramhall, David Chappell, Reg-
`gie Counts, Joe Croghan, John Eaton, Norman Eko, Alan Ewald, Charlie
`Green, Jim Green, Jed Harris, Jack Hassall, Ellis Horowitz, Andrew Hutt,
`Ole Jacobsen, Neil Jacobson, I-Iuet Landry, Eric Leach, John Leary, Marie
`Lenzi, Jacob Levy, Geoff Lewis, Denise Lynch, Cliff Mauton, Todd Pelfrey,
`ix
`
`9
`
`

`
`ACKNOWLEDGMENTS
`
`Marty Polluconi, Michael Powell, Richard Probst, Yllona Richardson, Bob
`' Rockwell, Mark Roy, Mark Ryland, John Rymer, Dave Seres, Cathy Sloan,
`Craig Thompson, Fred Waskhewicz, Andrew Watson, Dave Zenie, and all
`the others who helped us in our quest for understanding. These people gave
`us inspiration, motivation, and important ideas.
`'
`-
`Finally, We wish to thank our Wives and families for their patience, love,
`and unconditional support While writing this book.
`
`10
`
`10
`
`

`
`Con
`
`tents
`
`Executive Summary .
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`Prob1emDefinition
`CORBA—The Basis for a Solution .
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`Systems Integration Using CORBA—The Opportunity .
`A Framework for Change .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Synopsis of the Book .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`1
`
`1
`2
`
`2
`2
`3
`
`.
`
`.
`.
`.
`
`PART I THE PRINCIPLES OF SYSTEMS INTEGRATION
`
`1
`
`Introduction .
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`7
`
`Issues in Computing: Technology, Market,
`9
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`and Organizations .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`9
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Stovepipe Systems .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`. 11
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Proprietary Lock—In .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Inconsistencies between Design and Implementation . 13
`Standards Issues .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`. 16
`
`Lack of Tools for Creating Effective Abstractions .
`Lack of Security Facilities .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Heterogeneous Systems Integration .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Vision for Systems Integration .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`
`.
`.
`.
`.
`
`. 17
`. 18
`. 18
`. 19
`
`xi
`
`11
`
`11
`
`

`
`xii
`
`CONTENTS
`
`The Role of CORBA .
`Comments .
`.
`.
`.
`.
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`Standards Strategy .
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`.
`.
`Standards Background .
`Benefits of Standardization .
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`
`.
`.
`
`.
`.
`
`.
`
`.
`.
`
`.
`.
`
`.
`
`.
`.
`
`.
`.
`
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`Selecting a Standards Strategy .
`Standards Reference Models and Profiles .
`
`.
`.
`
`.
`
`.
`.
`
`.
`
`.
`.
`
`.
`.
`
`.
`
`.
`.
`
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`. 21
`.
`‘23
`
`.
`
`.
`
`.
`
`. 25
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`. 26
`. 28
`
`. 29
`. 31
`
`. 32
`. 34
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`Implementing a Standards Strategy .
`Comments .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`An Introduction to CORBA .
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`.
`.
`.
`.
`.
`.
`Object Management Architecture .
`. f .
`.
`.
`.
`.
`Object Request Broker .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Interface Definition Language .
`.
`Implementing OMG IDL Specifications .
`.
`Dynamic Invocation Interface .
`.
`.
`.
`.
`.
`.
`.
`.
`ObjectAdapters .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`CORBA Acceptance .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Product Availability .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Underlying CORBA .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`CORBA 2.0 .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Object Services .
`.
`.
`.
`Object Naming Service .
`.
`.
`.
`Object Event Service .
`.
`.
`Object Relationship Service .
`Common Facilities .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Comments .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`Software Architecture Design .
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`.
`.
`.
`.
`Establishing Architectural Vision .
`Role of CORBA in Software Architecture .
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`.
`
`Architecture Process Compared to Methodology .
`Integration Capability Maturity Model .
`.
`.
`.
`.
`.
`.
`Software Architecture Design Process .
`.
`.
`.
`.
`.
`.
`The Mining Process .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`The Farming Process .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Composing and Refinement
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Prototyping and Lessons Learned .
`.
`.
`.
`.'
`.
`L
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`
`.
`
`. 35
`
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`. 36
`. 37
`. 37
`. 40
`. 42
`. 43
`. 44
`. 44
`. 45
`. 45
`
`. 47
`. 48
`. 50
`. 51
`. 51
`. 53
`
`.
`
`.
`
`.
`
`.
`
`55
`
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`. 57
`. 57
`
`. 61
`. 61
`., 64
`. 66
`. 69
`. 70
`. 71
`
`12
`
`12
`
`

`
`CONTENTS
`
`xiii
`
`Interface Design Trade—ofi"s Using OMG IDL .
`Software Achitecture Design Principles .
`.
`.
`.
`Abstraction/ Simplicity .
`.
`.
`.
`.
`.
`.
`.
`.» .
`.
`.
`.
`Interoperability versus Extensibility .
`.
`.
`.
`Symmetry .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Component Isolation .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Metadata .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`. .. .
`Separation of Hierarchies
`Software Architecture Patterns .
`.
`Basic Architecture Patterns .
`.
`
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`
`Advanced Architecture Pattern: Separation
`of Facilities .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`._
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Other Architecture Patterns .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Comments .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`
`Security .
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`The Need for Security .
`.
`.
`.
`.
`.
`.
`.
`.
`Security Issues .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Basic Security Terminology .
`.
`.
`.
`.
`.
`.
`.
`Data Confidentiality .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Data Integrity .
`.
`.
`.
`.
`.
`.
`Identification and Authentication .
`Access Control
`.
`.‘
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`I
`.
`
`. 72
`. 75
`. 76
`. 77
`. 81
`. 83
`. 83
`
`. 86
`. 86
`. 87
`
`. .100
`.
`. 103
`. .106
`
`.
`
`.
`
`.
`
`. 109
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`:
`.
`.
`
`. 110
`.
`. 111
`.
`. 112
`.
`. 112
`.
`. .113
`.
`. 113
`. .113
`
`. .113
`. .113
`.
`. 114
`. .114
`. .114
`
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Auditing .
`Communication Security .
`Security Administration .
`Non-Repudiation .
`.
`.
`.
`.
`.
`Assurance .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Security Policies .
`.
`.
`.
`.
`.
`.
`Survey of Related Standards .
`ISO 7498-2 Security Architecture .
`TCSEC .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Other Criteria Initiatives .
`.
`.
`.
`.
`.
`.
`
`Survey of Related Technologies .
`Kerberos .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`Trusted Computing .
`GSS-API .
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`
`.
`.
`
`.
`
`Security in the CORBA Environment .
`Comments .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`
`.'
`.
`
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`. .114
`.
`. 115
`.
`. 115
`. .115
`.
`. 116
`
`. 117
`.
`. .117
`
`. .118
`. .121
`
`. 128
`.
`. .126
`
`13
`
`13
`
`

`
`xiv
`
`CONTENTS
`
`PART II THE PRACTICE OF SYSTEMS INTEGRATION
`
`6
`
`Framework Examples .
`
`.
`
`.
`
`.
`
`.
`
`.
`
`Fresco .
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`.
`.
`Object Linking and Embedding (OLE2)
`.
`.
`.
`.
`Technical Description of OLE2 .
`.
`.
`Comparison of OLE/ COM and CORBA .
`The OpenDoc Framework .
`.
`.
`.
`.
`.
`.
`._ .
`.
`.
`.
`.
`OpenDoc User Interface .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`OpenDoc Technology and CI Labs .
`.
`.
`.
`.
`The OpenDoc Architecture .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Autonomous Land Vehicle
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Comments .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`
`. 131
`
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`. .132
`
`. 135
`.
`. 136
`.
`. 139
`.
`. .150
`. .151
`.
`. 154
`.
`. 156
`.
`. 162
`. .164
`
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`.
`.
`.
`.
`.'
`.
`
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`In-Depth Example: The DISCUS Framework .
`
`.
`
`.
`
`.
`
`. 167
`
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Framework Concepts .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Application Objects .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`The Core Framework Operations .
`OMG IDL Specifications for Application Objects .
`« Data and Table Objects
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Data Objects .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`OMG IDL Specifications for Data Objects .
`.
`.
`.
`.
`.
`.
`.
`Data Object Properties .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Table Objects .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Factory Object
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Factory Concept .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`OMG IDL Specifications for Factory Objects .
`.
`.
`.
`Managing Data and Table Objects .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Framework Services .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`The Trader Service and Metadata Objects .
`Conversion Service .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Public Folder .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Object Gateway .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`DISCUS Implementation .
`Clients and Object Implementations .
`Exceptions .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`CORBA Compliance .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Asynchronous Support .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Convenience Functions .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`. 168
`.
`. 172
`.
`. 172
`.
`. 175
`.
`. 188
`.
`. .188
`.
`. 191
`.
`. 195
`.
`i 196
`. .201
`. .201
`.
`. 203
`. .205
`.
`. 206
`
`. .206
`. .208
`.
`. 210
`
`. .211
`. .212
`. .212
`. .214
`. .214
`. .215
`. .220
`
`14
`
`14
`
`

`
`CONTENTS
`
`xv
`
`DISCUS Issues and Futures .
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`Specializations of the Framework .
`Scalability .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Security .
`.
`.
`.
`.
`.
`.
`- .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`DISCUS Futures .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Comments .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`.
`.
`
`Object Wrapper Techniques .
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`.
`.
`.
`.
`
`.
`
`.
`
`.
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`.
`.
`
`. .225
`
`. .225
`. .226
`. .227
`. .228
`.
`. 228
`
`.
`
`.
`
`.
`
`.
`
`. 231
`
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Integrating Legacy Systems .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Types of Wrapping .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`I.
`.
`.
`.
`.
`.
`Wrapping Examples .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Wrapping with Remote Procedure Calls .
`.
`.
`.
`.
`Wrapping with Files .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`V.
`.
`.
`.
`Wrapping with Sockets
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Wrapping with a C API .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Integration with Common Lisp .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Integration with Smalltalk .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Wrapping with Scripts .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Wrapping with Events .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Wrapping with Shared Memory .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Wrapping with Dynamic Queries .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Wrapping with IPC .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Wrapping with Macros
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Wrapping with Header Files .
`.
`.
`.
`.
`.
`.
`.
`.
`Implementation Trade-Offs for Object Wrapping .
`Comments .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`«.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`. .232
`.
`. 232
`. .238
`. .241
`. .244
`. .246
`. .249
`. .252
`. .253
`.
`. 253
`. .254
`.
`. 254
`. .258
`. .259
`.
`. 259
`. .261
`. .262
`.
`. 265
`
`.
`
`.
`
`.
`
`. 269
`
`Systems Integration Guidance .
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`The Importance of Software Architecture .
`Architecture Relation to Cost
`.
`.
`.7 .
`.
`.
`.
`CORBA Relation to Architecture .
`.
`.
`.
`.
`
`.
`.
`.
`.
`CORBA Reengineering Process .
`Market and Standards-Based Decisions .
`
`.
`.
`.
`Making Objective Decisions .
`Standards and Technology Cycle .
`Leading Edge Awareness .
`.
`.
`.
`.
`.
`Mainstream Awareness .
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`
`Impacting the Standards Process .
`
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`.
`
`.
`
`.
`.
`
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`
`.
`.
`
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`
`.
`.
`
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`
`.
`.
`
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`
`.
`.
`
`.
`.
`.
`.
`
`.
`
`.
`_ .
`.
`
`.
`.
`
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`
`.
`.
`
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`
`.
`.
`
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`
`.
`.
`
`.
`.
`.
`.
`
`.
`
`. .269
`. .271
`.
`. 271
`
`. 271
`.
`. .272
`
`. 272
`.
`. .272
`.
`. 274
`. .276
`
`. .276
`
`15
`
`15
`
`

`
`xvi
`
`CONTENTS
`
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Product Independence .
`.
`How to Depend on the Standard .
`.
`Using OMG IDL .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Quality Software Architecture .
`.
`.
`.
`.
`Key Architecture Qualities: Stability
`and Cost Minimization .
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`Iterative Design .
`Systems Integration Priorities .
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`
`.
`.
`.
`.
`
`.
`
`.
`.
`
`.
`.
`.
`.
`
`.
`
`.
`.
`
`.
`.
`.
`.
`
`.
`
`.
`.
`
`.
`.
`.
`.
`
`.
`
`.
`.
`
`.
`.
`.
`.
`
`.
`
`.
`.
`
`.
`.
`.
`.
`
`.
`
`.
`.
`
`.
`.
`.
`.
`
`.
`
`.
`.
`
`.
`
`.
`
`.
`
`.
`.
`.
`.
`
`.
`
`.
`.
`
`.
`
`.
`.
`.
`.
`
`.
`
`.
`.
`
`.
`.
`.
`.
`
`.
`
`.
`
`.
`.
`.
`.
`
`.
`
`.
`
`. .278
`. .278
`.
`. 278
`. .279
`
`. .280
`
`. .281
`.
`. 281
`
`.
`
`.
`
`.
`
`.
`
`. 283
`
`Acronyms .
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`. 285
`
`Appendix: ORB Products .
`
`.
`
`.
`
`.
`
`.
`
`SunSoft Distributed Objects Everywhere (DOE)
`Static Interfaces .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Fine-Grain Objects .
`.
`.
`.
`.’
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Threads .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`Object Services .
`.
`.
`.
`.
`Digital Equipment ObjectBroker .
`Experience with DEC ObjectBroker .
`IONA Technologies’ Orbix .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`IBM System Object Model (SOM)
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`. .287
`. .288
`. .289
`. .291
`
`. .292
`.
`. 293
`.
`. 293
`. .295
`.
`. 296
`
`.
`
`.
`
`.
`
`.
`
`. 305
`
`Bibliography .
`
`Index .
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`.
`
`. 309
`
`16
`
`16
`
`

`
`Executive Summary
`
`In this book, we introduce the theory and practice of systems integration us-
`ing standard object technology, Common Object Request Broker Architecture
`(CORBA). The purpose of systems integration is to provide interoperability
`between software components and to provide for system adaptability as the
`system evolves. This book goes beyond the basics of systems integration and
`CORBA to show readers how to maximize the benefits of these technologies
`and practices throughout the system life cycle.
`
`PROBLEM DEFINITION
`
`Today’s software systems comprise islands of automation. Each software
`component performs some limited range of useful functions, but components
`T do not interoperate effectively. The integration that exists is insufficient and
`does not evolve gracefully with the component technologies. The scale of this
`problem ranges from the the user’s desktop, to interuser, interdepartment,
`and interorganizational levels. Key consequences of poor systems integration
`include:
`
`0
`
`Stovepipe systems. These systems are poorly integrated systems that
`have ad hoc or proprietary integration solutions. Poorly integrated sys-
`tems have high maintenance costs, resist adaptation to changing user
`requirements, and cannot evolve with commercial technology.
`0 Organizational productivity impacts. Poor integration leads to substan-
`tial organizational inefficiencies, such as redundant data entry, mul-
`tistep data conversion, and ad hoc file transfers. These processes are
`
`1
`
`17,
`
`17
`
`

`
`2
`
`EXECUTIVE SUMMARY
`
`costly, time consuming, and error prone. Poor systems integration re-
`quires users to be knowledgeable about multiple disparate applications.
`Users trained on one system cannot transfer skills to other systems.
`
`CORBA — THE BASIS FOR A SOLUTION
`
`CORBA is an industry standard technology infrastructure for systems inte-
`gration. Some of its key benefits include:
`
`1. CORBA simplifies distributed computing and application integration. It
`is easier to use than other distributed computing and integration mech-
`anisms; therefore, it saves time and reduces software costs. CORBA also
`provides many useful new flexibilities compared to other mechanisms.
`2. CORBA is object oriented. This means that architects and developers
`can improve their software structure, make their software more flexi-
`ble, reuse software, seamlessly integrate legacy software, and develop
`new capabilities rapidly. CORBA provides a uniform layer encapsulating
`other forms of distributed computing and integration mechanisms.
`3. CORBA is a stable technology supported by a growing coalition of com-
`mercial software vendors. CORBA is a standard from the world’s largest
`software consortium, the Object Management Group (OMG), and sup-
`ported by X/Open, the Open Software Foundation (OSF), the Common
`Open Software Environment (COSE), CI Labs, X/Consortium, and oth-
`ers. The core elements of CORBA have been stable since 1991. With
`
`CORBA, OMG has reengineered the standards process to allow suppli-
`ers and end users to create new standards for interoperability efficiently.
`
`SYSTEMS INTEGRATION USING CORBA — THE OPPORTUNITY
`
`CORBA is an enabling technology. Bad systems integration practices can
`lead to stovepipe systems regardless of whether CORBA is used. This book
`is a guide on how to follow good architecture principles that utilize CORBA
`for maximum benefits.
`
`Key benefits of our approach to CORBA-based systems integration in-
`clude: faster system delivery, enhanced software reuse, increased system
`adaptability, reduced maintenance costs, focused research activities, en-
`hanced system interoperability, enterprise systems integration, andother
`benefits.
`
`A FRAMEWORK FOR CHANGE
`
`In Chapter 4 we define an integration capability model, which enables orga-
`nizations to assess their current systems integration practices. This model
`allows organizations to discover the substantial benefits of improved sys-
`
`18
`
`18
`
`

`
`SYNOPSIS OF THE BOOK
`
`3
`
`tems integration compared to current practices. The integration capability
`model includes the following levels:
`
`Level 6. Standard Architectures
`Level 5. Frameworks
`
`Level 4. Distributed Objects (CORBA)
`Level 3. Mature Remote Procedure Calls (OSF DCE)
`Level 2. Miscellaneous Mechanisms
`Level 1. Commercial Off-the-Shelf Solutions
`
`The capabilities range from organizations that do no value-added inte-
`gration (level 1) to organizations that drive industry standards (level 6). Most
`organizations today practice systems integration at levels 2 and 3. When an
`organization first adopts CORBA, it begins at level 4. Substantial benefits
`result from level 5 practices, and technology leadership is demonstrated at
`level 6. This book teaches readers how to perform systems integration in
`order to achieve level 5 and 6 benefits. The capability model is described in
`detail in Chapter
`
`SYNOPSIS OF THE BOOK
`
`Chapter 1, “Introduction,” introduces the paradigm shift that motivates the
`increasing role of systems integration. It provides a detailed introduction to
`systems integration problems including commercial technology integration,
`legacy systems integration, and other key issues. It establishes a vision for
`the organizational use of good systems integration practices and CORBA.
`Chapter 2, “Standards Strategy,” defines what standards mean and how
`they are used effectively. It provides guidance for understanding and ex-
`ploiting available standards and shows how an organization can leverage
`the work of government organizations and standards groups to define a
`comprehensive standards strategy.
`Chapter 3, “An Introduction to CORBA,” provides essential tutorial in-
`formation about OMG standards: CORBA, OMG’s Interface Definition Lan-
`‘ guage (OMG IDL), CORBAservices (Common Object Service Specifications),
`and CORBAfacilities (OMG Common Facilities).
`Chapter 4, “Software Architecture Design,” includes the foundational
`theories of systems integration. It describes the integration capability model
`and defines architecture and framework concepts. It establishes an inte-
`grated software architecture design process and defines details of how to
`use OMG IDL for controlling design trade-offs. It also compares the archi-
`tectural patterns that support the theory and shows the quantitative impact
`of each architectural approach.
`Chapter 5, “Security,” discusses one of the most challenging aspects of
`systems integration. This chapter surveys key security technologies that
`
`19
`
`19
`
`

`
`EXECUTIVE SUMMARY
`
`contribute to an overall security solution and establishes a vision for how
`they will interact in future systems constructed with OMG standards.
`Chapter 6, “Framework Examples,” describes Microsoft Object Linking
`and Embedding (OLE), OpenDoc, and X11R6 Fresco. These are some of
`the key commercial software architectures that will impact future systems
`integration.
`.
`Chapter 7, “ln—Depth Example: The DISCUS Framework,” discusses
`DISCUS, one of the most mature CORBA~based application architectures.
`It is presented here as a detailed example of systems integration practices.
`DISCUS incorporates many useful design examples, techniques, and lessons
`that can be transferred to new system designs and implementations.
`Chapter 8, “Object Wrapper Techniques,” discusses object wrapping, the
`core competency in systems integration for developers. This chapter is an
`essential tutorial about wrapping techniques for architects and developers.
`The chapter gives examples of object wrapping for the most commonly oc-
`curring integration challenges.
`Chapter 9, “Systems Integration Guidance,” summarizes the whole book
`in terms of six key guidelines.
`Appendix, “ORB Products,” contains product overviews of some of the
`major CORBA Object Request Brokers: Digital Equipment Corporation’s
`ObjectBroker, SunSoft’s DOE, IONA’s Orbix, and IBM’s System Object Model
`(SOM).
`
`20
`
`20
`
`

`
`THE PRINCIPLES
`OF SYSTEMS
`
`INTEGRATION
`
`21
`
`21
`
`

`
`22
`
`

`
`Introduction
`
`i
`
`In this introductory chapter, we identify the key issues that motivate this
`book. In particular, we wish to heighten the contradictions in current sys-
`tems integration practice. In this Way, We can summarize all of the key
`technical and related nontechnical issues. In the balance of the book, we
`Will explain Object Management Group (OMG) standards and other key
`concepts needed for successful systems integration. OMG’s core standard,
`the Common Object Request Broker Architecture (CORBA), provides many
`technical benefits. We provide added value by addressing howto use the
`OMG standards effectively in systems integration. This chapter focuses on
`systems integration issues prior to the adoption of CORBA and prior to the
`application of the techniques presented in this book.
`While most of the book focuses on the technical issues, this chapter will
`identify some of the factors outside the technical realm that influence sys-
`tems integration. For example, software architectures often mirror our or-
`ganizational structures, and systems integration success is dependent upon
`organizational support for the architects and developers.
`Not long ago, a stand-alone program comprising a command-line inter-
`face and a few specialized functions Was sufficient for a successful software
`application. Since then, end users’ expectations have changed dramatically;
`the scope of requirements also has changed. Today it is expected that soft-
`ware systems will have graphical user interfaces; software systems will
`incorporate complex data types such as imagery, graphics, and multimedia;
`and software systems will have integrated database capabilities. Hetero-
`geneous computing environments are a reality in most organizations where
`differences between platforms reinforce the need for rnultivendor integration
`solutions.
`
`23
`
`23
`
`

`
`8
`
`INTRODUCTION
`
`Systems integration requirements will become even more challenging in
`the near future. For example, universal data interchange between applica-
`tions will be expected; applications will need to support computer-assisted
`human collaboration, and these capabilities will be needed in mobile dis-
`tributed environments, supported on a wide range of platforms and net-
`works. Standards support will be a key software product discriminator for
`end users; however these standards might not guarantee interoperability.
`For most organizations, it is not feasible to build systems of this scope
`using custom software. As a result, the practice of building systems has
`changed from custom programming to systems integration from preexisting
`components. Custom applications have a role in meeting highly specialized
`needs, such as organization-specific user interfaces. As the diversity and
`capabilities of commercial software increase, the need for custom software
`decreases. For complex functions, it is usually more cost effective to reuse
`existing software than to create custom software. The majority of software
`in future systems will be preexisting, obtained from commercial vendors and
`other sources. Systems integration has a role in providing interapplication
`interoperability and system customization beyond the off-the-shelf capabil-
`ities; design and development of this custom software is a key focus of this
`book.
`
`The growing supply of preexisting software is displacing the need for
`custom software. Preexisting software sources include in-house software,
`commercial software, public domain software, freeware, and shareware. In-
`house software can include legacy systems software, prototype software, and
`software designed for in-house reuse, such as class libraries. Commercial
`software is available directly from suppliers, retail outlets, industry confer-
`ences, and other advertising events and media. Public domain software is
`freely available software that is not copyrighted and can be used without
`restrictions. Freeware is similar, except that it carries a copyright notice.
`Shareware is software that is available for a nominal fee and also carries a
`
`copyright. Copyright can restrict the reselling of freeware and shareware,
`but the copyrights generally allow the usage of the software in end-user sys-
`tems. Public domain, freeware, and shareware can be obtained from users’
`groups, from vendors, and from public networks (including the Internet and
`commercial computer networks).
`The practice of systems integration can range from informal ad hoc
`programming to formal structured methodologies. In many organizations
`these practices coexist: the formal practices creating the documentation and
`the informal practices creating the working system.
`The difficulties of integrating preexisting components create a need for
`highly creative programmers. Many successful programmers are masters of
`scrounging software components and integrating components in ingenious
`Ways. These skills are essential to virtually every software engineering ac-
`tivity; ad hoc integration is expedient and leads to demonstrable results.
`
`24
`
`24
`
`

`
`ISSUES IN COMPUTING
`
`9
`
`Often these integration solutions are brilliant, but these achievements are
`seldom sustainable. Ad hoc integration usually produces undocumented brit-
`tle syst

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket