PUBLISHED BY Microsoft Press A Division of Microsoft Corporation One Microsoft Way Redmond, Washington 98052-6399 Copyright © 2003 by Scott McLean, James Naftel, and Kim Williams All rights reserved. No part of the contents of this book may be reproduced or transmitted in any form or by any means without the written permission of the publisher. Library of Congress Cataloging-in-Publication Data pending. Printed and bound in the United States of America. 1 2 3 4 5 6 7 8 9 QWE 7 6 5 4 3 2 Distributed in Canada by H.B. Fenn and Company Ltd. A CIP catalogue record for this book is available from the British Library. Microsoft Press books are available through booksellers and distributors worldwide. For further information about international editions, contact your local Microsoft Corporation office or contact Microsoft Press International directly at fax (425) 936-7329. Visit our Web site at www.microsoft.com/mspress. Send comments to firstname.lastname@example.org. Microsoft, Microsoft Press, Visual Basic, Visual Studio, Windows, and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. Other product and company names mentioned herein may be the trademarks of their respective owners. The example companies, organizations, products, domain names, e-mail addresses, logos, people, places, and events depicted herein are fictitious. No association with any real company, organization, product, domain name, e-mail address, logo, person, place, or event is intended or should be inferred. Acquisitions Editor: Danielle Bird Project Editor: Kathleen Atkins Technical Editor: Dail Magee, Jr. Body Part No. X08-81840
Understanding Distributed Application Development
Distributed application technologies such as DCOM, Java RMI, and CORBA have evolved over many years to keep up with the constantly increasing requirements of the enterprise. In today’s environment, a distributed application technology should be efficient, be extensible, support transactions, interoperate with different technologies, be highly configurable, work over the Internet, and more. But not all applications are large enough in scope to require all this support. To support smaller systems, a distributed application technology needs to provide common default behavior and be simple to configure so that distributing these systems is as easy as possible. It might seem impossible for a single remoting technology to meet this entire list of requirements. In fact, most of today’s distributed application technologies began with a more modest list of requirements and then acquired support for other requirements over many years.
Every so often, it’s better to wipe the slate clean and start over. This was the approach taken with the design of .NET Remoting. .NET Remoting provides a cohesive object model with extensibility hooks to support the kinds of systems developers have built until now by using DCOM. The designers of .NET Remoting had the advantage of taking into account the recent technology requirements that were initially unknown to DCOM’s designers.
Although this chapter is not intended to help you decide which distributed application technology to use, .NET Remoting offers clear advantages. .NET Remoting is probably the best choice if you’re doing all new development in .NET and you implement both client and server by using the .NET Framework. On the other hand, if your existing distributed application is implemented with a non-.NET remoting technology, the .NET Framework provides an unprecedented level of interoperability with legacy technologies:
If your existing system is COM/DCOM, the .NET Framework’s .NET-to-COM interoperability layer is full-featured and easy to use. This layer allows flexible, incremental migration to .NET Remoting over time.
If your existing system is based on a non-Microsoft distributed technology such as Java Remote Method Invocation (RMI) or Common Object Request Broker Architecture (CORBA), there’s still good news. .NET Remoting’s support for open standards such as XML and Simple Object Access Protocol (SOAP) makes it possible to communicate with multivendor, multiplatform environments as these open standards are adopted by other vendors At present, a number of Java-based SOAP toolkits are available. Although CORBA’s SOAP support is lagging, the Object Management Group (OMG) is currently working on an official CORBA/SOAP standard.