“It’s a fact the .NET and Java platforms exist in the enterprise with many touch points. Developers are very eager for information and examples on how the two environments can coexist. This book reflects our interoperability collaboration with Sun and provides best practices for using Web services to bridge .NET and Java applications.”
Developer & Platform Evangelism, Microsoft Corp.
“This book is a developer handbook for implementing interoperable applications and services. It includes actionable strategies for developers and best practices from the field experience.”
chief technology officer, Sun Microsystems
“A comprehensive, practical guide to developing applications that cross the Java EE .NET boundary.”
director business alliances, Sun Microsystems
“Efficient, effective interoperability between Java EE and .NET is a crucial element in the IT architecture of large enterprises and is vital to running a successful business. This book takes interoperability to the next level, far beyond the cold coexistence of systems, by describing effective strategies that allow you to achieve true interoperability while reducing complexity in your applications and your data center. Additionally, it provides examples and practical advice on how to achieve this new level of interoperability and covers in depth all of the options available from bridging, to porting, to platform unification. The costs that this can save you, from management, maintenance and server consolidation are very significant.”
chief executive officer, Mainsoft
“A complete and up-to-date coverage of Java EE .NET security interoperability standards and related specifications.”
—HUBERT A. LE VAN GONG
architect, Sun Microsystems, and the
coauthor of “Web SSO MEX Specification”
Evolving Web services standards and technologies offer limited interoperability when it comes to security, management, and other important application characteristics. Successful interoperability solutions require comprehensive integration strategies that go beyond simple connections. The capability to mitigate security and reliability risks and transactional support is critical to interoperability.
Java EE and .NET Interoperability addresses issues encountered during the integration process, such as a diverse technology set, incompatible APIs, and disparate environment maintenance. The experienced authors outline strategies, approaches, and best practices, including messaging, Web services, and integration-related frameworks and patterns. The book also introduces readers to Service Oriented Architecture (SOA), the building block for scalable and reliable enterprise integration solutions.
This indispensable book provides the Java EE and .NET developer community with multiple strategies to integrate between Java EE and .NET platforms that save developers time and effort. Applying proven interoperability solutions significantly reduces the application development cycle. Coverage includes
· Effective Java EE–.NET integration strategies and best practices
· Detailed enterprise coverage, as well as standalone Java EE component integration with .NET
· SOA as a building block for Java EE–.NET interoperability
· Interoperability security issues and risk mitigation
· Managing reliability, availability, and scalability for Web services built on Java EE and .NET
· The latest interoperability standards and specifications, including Web SSO MEX and WS-Management
· Current interoperability technologies, such as Windows Communication Foundation, WSE 3.0, JAX-WS, and Enterprise Service Bus
"synopsis" may belong to another edition of this title.
MARINA FISHER is a staff engineer at Sun Microsystems. As a Sun Certified Enterprise Architect for Java EE, she provides Sun’s Fortune 500 customers with assistance in architecting, designing, implementing, and deploying large-scale enterprise applications. Her background spans across financial, retail, manufacturing, and other sectors, with emphasis on Service Oriented Architecture (SOA), interoperability, and application security.
RAY LAI, a principal engineer from Sun Microsystems Chief Technologist’s Office, specializes in financial services and SOA solutions. He has developed and architected enterprise applications for leading multinational companies around the globe. He is also the author of the book, J2EE Platform Web Services, and coauthored Core Security Patterns. His current technology focus includes application security and JSF/AJAX-style prototyping.
SONU SHARMA is an engagement manager with Client Solutions Organization at Sun Microsystems Inc. Sonu specializes in managing, architecting, and implementing scalable, reliable, and high-performance business critical enterprise applications using Java EE and XML Web Service technologies for Sun’s Fortune 500 customers. Prior to working at Sun, Sonu has worked on architecting, designing, and building enterprise solutions in the fields of e-commerce, banking, and insurance.
LAURENCE MORONEY is the director for technology evangelism for Mainsoft where he is responsible for sharing and shaping their unified .NET and Java EE architecture to enable and empower interoperability. Prior to Mainsoft he worked as a Senior Architect in the Reuters CTO office where he worked on research into Web Services Interoperability, Social Computing, and Trading Networks. Author of several books on Web Services and .NET, as well as dozens of technology articles, Laurence is based in Sammamish, Washington.
Excerpt. © Reprinted by permission. All rights reserved.:
Introduction: Achieving Interoperability
Introduction: Achieving Interoperability
It is a common trait for business to have large and diverse systems and a rare one for them to have unified systems. Be it through acquisitions, mergers, staff and policy turnover, or a hundred other reasons the fact remains—they have systems built in different languages, running on different software platforms, and targeting different hardware. Add on top of this the need for businesses to be increasingly more nimble—fueling a requirement for integrated, interoperating systems that can aggressively respond to business requirements coherently and quickly—and you have a major challenge facing businesses today.
A few years ago the typical business data system was a simple, monolithic affair with business assets in a mainframe that were accessible via a tightly coupled user interface. Transfer of assets between domains was usually manual—for example the transfer of an order from a sales-facing system to a realization and delivery system was typically done by an operator keying in details of a printout from one system to the other. The operator herself was the interoperability layer.
Over time as systems evolved, technologies evolved to allow networking and to automatically integrate across protocols such as CORBA. These, however, proved to be very difficult and expensive to develop and maintain.
Today's landscape sees the data center split into two main deployment types. On one side is the Microsoft stack of products, covering everything except the hardware, from the operating system through the software platform to the application, with the Windows Server family and the .NET framework and runtime. Developers have a host of tools that allow them to develop and target this platform and can receive exceptional time to market and cost of development metrics. On the other side is the open family of Java EE software frameworks, which can run on a variety of hardware platforms and that run applications written with the Java language. With this it has been shown that they offer exceptional runtime characteristics. Technologies such as Enterprise Java Beans (EJB) are designed with the characteristics of security, scalability, manageability, and performance in mind and are particularly useful in large-scale systems that serve large numbers of users.
However, getting an effective data center implementation of a product that utilizes these two sets of assets is a difficult process. Development management has often had to choose between the productivity of the .NET environment and the runtime characteristics of the Java EE platform. Having a "best of both worlds" solution was difficult given that there were few easy or cheap ways to get products running on these platforms to talk to each other effectively.
Consider the example of a company whose system is the result of several mergers and acquisitions and has an array of databases implemented on different technologies—diverse hardware for applications; different runtime platforms; and applications of varying architectures. Integrating this system would be a very challenging process indeed.
Enter Web services—abstract entities that encapsulate business processes and expose them via a standard interface. The underlying implementation doesn't matter! In the example just mentioned, each system's data retrieval layer can wrap itself in a Web service so that it exposes a standard interface. Then the development manager who wants to use his junior staff who are great at quickly putting together ASP.NET or JSP pages has an ideal opportunity to make the most of Web services technology and build a front end that can consume these Web services via proxies. It should be easy, but it isn't.
Why? Because while standards may be, well, standard—different implementers of software that uses these standards and allows you to build software that exposes these standards have done it in slightly different ways. These different ways mean that not everything that is wrapped with a Web service can talk cleanly to everything else that knows how to talk to a Web service. This interoperability is not as simple as it should be.
This, then, gives rise to a book such as this one in your hands. Armed with the knowledge that you'll gain from reading this book, you'll be able to go forth into your development team or data center and either solve interoperability problems you're having or, better still, design a system that doesn't suffer from interoperability problems.
Technology for Interoperability
There are several technology solutions for interoperability covered in this book. The first and most obvious one is Web services, whereby you can wrap your business entities in a standards-based layer so that their technology implementation is abstracted. Therefore, anything that interacts with this layer doesn't need to know about the technology that drives it and should interoperate cleanly. It's a powerful and compelling methodology, but it is not without its drawbacks. It is challenged in two main areas—diverse support for standards and performance. Strategies for handling these are used throughout the book.
A well-known and well-used methodology for integration and interoperability is the use of a messaging platform. This is where communication between layers is done through simple messages passed through managed queues. Technologies such as JMS, MQSeries, and MSMQ are examples of this. They can make for a very powerful and very performant interoperability layer, particularly where there are real-time requirements.
Another technology, platform unification, allows for clean interoperability between .NET and Java EE applications. With this concept the runtime layer is unified, and application developers for one language can deploy their applications to the runtime traditionally used by another. For example .NET developers can rehost their applications on Java EE. As such, the .NET and Java EE applications don't need to go through a separate layer to talk to each other—they are on the same platform and can talk cleanly. Interoperability doesn't just have to happen at the application layer; it can also take place on the resource tier. With new technologies allowing more and more business logic to be driven closer to the database, interoperability problems may also be solved. As the application layers get thinner, the easier it is for them to communicate with each other.
Structure of the Book
This book covers two main constituents of any Java EE–.NET integration. The first one pertains to the integration type such as synchronous or asynchronous, outlining how individual Java and .NET components can integrate using their diverse technology set. The second constituent relates to the quality of service requirements, such as security, reliability, and scalability, essential to meet a Service Level Agreement (SLA) across the heterogeneous enterprise environment. If you take a closer look at the book structure, you'll notice that the book represents a catalog of integration strategies that adheres to the following format:
Strategy Name The strategy has a unique name that reflects its objective.
Problem space Each strategy aims to address a specific Java EE–.NET interoperability problem. Asynchronous reliable integration is an example of such a problem.
Solution This part of the strategy details a strategy design and outlines technology choices.
Benefits and Limitations Any interoperability strategy has its pros and cons that are highlighted here. For example, ease of maintenance or scalability are common benefits of some of the strategies.
Related Patterns Industry patterns such as Core J2EE Patterns are used throughout this book to bring those that are familiar to you into the scope of Java EE–.NET integration. Are there similar resources in the .NET space?
Example Throughout the book, use cases from the WS-I Supply Chain Management Application (SCMA) are utilized to demonstrate how to implement a strategy. Most of the strategies have two sets of samples corresponding to the Java–.NET and .NET–Java communication.
The strategy catalog comprises the core of this book and can be used as a reference manual on Java EE–.NET interoperability. Before delving into the strategy discussion, it is helpful to review the fundamentals of the Java EE and .NET platforms. The emphasis in reviewing these platforms will focus on their interoperability characteristics. Both platforms expose APIs to develop component-based, loosely coupled integration points. The platform overview is followed by Part II, "Synchronous Integration Solutions," which discusses common business scenarios and reasons for synchronous integration. The de facto technology to integrate disparate applications is based on Web services. Chapter 4, "Web Services for Synchronous Integration," demonstrates how a .NET application can discover and access a Web service implemented in Java and vice versa. The synchronous integration discussion continues with the .NET Remoting technology that remains an alternative to Web services and is adopted by open source and various commercial solutions. The .NET Remoting is shipped as part of the Microsoft Indigo Services. Chapter 6, "Resource Tier Synchronous Integration," details database and legacy integration. It demonstrates a simple strategy to build a Data Access Layer to connect to heterogeneous RDMSs, such as MySql and SQL Server. All in all, synchronous integration strategies are useful if you have two systems with tight coupling or strong dependencies. The industry, however, is heavily leaning toward asynchronous application integration.
Asynchronous integrations between Java EE and .NET systems are easier to maintain, less brittle, and tend to be more scalable. Therefore, the majority of the strategies in this book fall under Part III, "Asynchronous Integration Solutions." The first two strategies, Automatic Callback and Response Polling, are based on Web services technologies. They fundamentally differ from the approach taken in the previous section. The main goal of these strategies is to factor out remote calls from the rest of the request processing. The response can be sent via the callback or polling technique. Chapter 9, "Messaging," unveils five distinct strategies that help to automate and streamline the Java EE and .NET system integration around MOM, SMTP, and Enterprise Service Bus technologies. Reliable message delivery is the key differentiator of these strategies. Similar to the previous section, Chapter 10, "Resource Tier Asynchronous Integration," shows how to asynchronously communicate with back-end resources.
Part IV of the book addresses "Quality of Services" for interoperability. It incorporates several chapters that discuss how to implement a secure, reliable, interoperable Java EE–.NET environment. This section encompasses distributed transactions and management of a heterogeneous environment, but most importantly it provides best practices on the enterprise architecture that mitigates security, manageability, availability, and reliability risks. The table here outlines strategies listed in this catalog.
Table 1-1: StrategiesCatalog
Synchronous Integration Strategies
Asynchronous Integration Strategies
Quality of Services Strategies
Java Web Service Accessed by .NET
Transaction Management with Messaging
.NET Web Service Accessed by Java
Web Services Transactions
.NET Remoting: IIOP.NET, iHUB, J-Integra, Nbridge
Secure Object Handler
Data Access Adapter
Web Services Messaging
Web Services Management
Enterprise Service Bus Indirect Data Access
Management with CORBA, Bridging/.NET
Distributed Mediator Data Access Proxy
Remoting and Mono Interoperability
Aside from the integration and systemic quality strategies, this book discusses how to deploy a .NET application under a Java EE application server and how to manually port a .NET application to Java. These strategies are included in Chapter 16, "Migrating .NET Applications to Java." Each chapter of this book intends to give the reader an overview of the technologies and concepts used by individual strategies. Messaging, resource pooling, threading, and asynchronous programming models differ under the Java EE and .NET platforms. Understanding these programming models under each platform enables the reader to effectively apply strategy within a specific domain.
What the Book Is and Is Not
This book is a collection of Java/.NET integration strategies and best practices. It categorizes the interoperability technologies architecturally into synchronous integration, asynchronous integration, bridge, and Quality of Services. Then different business scenarios (including WS-I interoperability scenarios) are used to put these interoperability technologies into context. Standards-based technology is explicitly introduced with examples of using different vendor products, thus enabling developers and architects to build vendor-agnostic interoperability solutions.
This book is not about interoperability design patterns. There are better and specialized design pattern books available that are related to integration and interoperability. This book uses a less formal language structure than design pattern when discussing Java/.NET interoperability, with the intent of making the contents easier to read.
This book is not a programmer's cookbook. A programmer's cookbook for Java/.NET interoperability usually includes a great deal of sample programs and intensive tutorial on the programmatic APIs to cover the full .NET and Java programming language features. The book does include, however, sample programs to illustrate how to craft a design strategy.
This book is not a summary of interoperability standard specifications. The goal was to keep the contents concise and short, so instead, URLs and references to interoperability literature and standards specification are included.
Who Should Read the Book
This book is targeted at novice, practicing .NET and Java developers. For novice developers, there are code samples for each integration and interoperability strategy, which are structured in the form of Problem/Solution/Example. This provides developers with a quick start for building interoperable solutions and allows for design reuse. For practicing developers, the "Best Practices and Pitfalls" sections ...
"About this title" may belong to another edition of this title.
Book Description Book Condition: Brand New. Book Condition: Brand New. Bookseller Inventory # 97801314722351.0
Book Description Prentice Hall. PAPERBACK. Book Condition: New. 0131472232 Brand new soft cover book. Soft cover books may show light shelf wear. Item ships within 24 hours with Free Tracking. Bookseller Inventory # 39352
Book Description Prentice Hall, 2006. Book Condition: New. Brand New, Unread Copy in Perfect Condition. A+ Customer Service! Summary: Foreword xxiiiAcknowledgments xxvAbout the Authors xxviiIntroduction xxix Part I: Java EE .NET Interoperability 1Chapter 1: Java EE Platform Interoperability Essentials 3Chapter 2: .NET Platform Interoperability Essentials 21 Part II: Synchronous Integration Solutions 39Chapter 3: Exploring Synchronous Integration 41Chapter 4: Web Services for Synchronous Integration 49Chapter 5: .NET Remoting for Synchronous Integration 93Chapter 6: Resource Tier Synchronous Integration 133 Part III: Asynchronous Integration Solutions 163Chapter 7: Exploring Asynchronous Integration 165Chapter 8: Asynchronous Web Services Integration 169Chapter 9: Messaging 247Chapter 10: Resource Tier Asynchronous Integration 323 Part IV: Addressing Quality of Service Requirements 353Chapter 11: Addressing Quality of Services 355Chapter 12: Managing Distributed Transactions 367Chapter 13: Java EE .NET Security Interoperability 403Chapter 14: Java EE .NET Reliability, Availability, and Scalability 485Chapter 15: Managing Java EE .NET Interoperability Applications 509 Part V: Implementation 555Chapter 16: Migrating .NET Applications to Java 557 Index 589. Bookseller Inventory # ABE_book_new_0131472232
Book Description Prentice Hall, 2006. Softcover. Book Condition: Neu. Gebraucht - Sehr gut Unbenutzt. Schnelle Lieferung, Kartonverpackung. Abzugsfähige Rechnung. Bei Mehrfachbestellung werden die Versandkosten anteilig erstattet. - Evolving Web services standards and technologies offer limited interoperability when it comes to security, management, and other important application characteristics. Successful interoperability solutions require comprehensive integration strategies that go beyond simple connections. The capability to mitigate security and reliability risks and transactional support is critical to interoperability. Java EE and .NET Interoperability addresses issues encountered during the integration process, such as a diverse technology set, incompatible APIs, and disparate environment maintenance. The experienced authors outline strategies, approaches, and best practices, including messaging, Web services, and integration-related frameworks and patterns. The book also introduces readers to Service Oriented Architecture (SOA), the building block for scalable and reliable enterprise integration solutions. 607 pp. Englisch. Bookseller Inventory # INF1000006814
Book Description Prentice Hall, 2006. Paperback. Book Condition: New. book. Bookseller Inventory # 0131472232