Because of the dual audience for this book, there are different prerequisites for each group:
The sections targeted at .NET developers assume an understanding of the development process for distributed applications and familiarity with the Microsoft Visual Studio .NET programming tools. The sample applications are in C# (C Sharp), so development experience in this language is essential. Experience with the .NET Framework SDK and the MSDN Library are also of benefit.
The sections targeted at Java developers assume a familiarity with Java programming methods and tools, in particular Enterprise Java Beans (EJB) and Java APIs such as Java Naming and Directory Interface (JNDI) and the Java Messaging Service (JMS).
Whether you are a .NET developer or a Java developer, an appreciation of the other platform would be beneficial so that you can understand the interoperability techniques between the two platforms.
Both audiences need to be familiar with cross-platform open standards, such as eXtensible Markup Language (XML) syntax and methods, SOAP, Web Services Description Language (WSDL) and TCP/IP. This book also assumes knowledge of distributed enterprise application concepts, such as multi-tiered architectures, caching, asynchronous messaging, request routing, and buffering. For .NET developers, you can find this information in Application Architecture for .NET: Designing Applications and Services on MSDN; and for Java developers, the equivalent information is available on the Sun Web Site. See the References section at the end of the chapter for further details.