首页>参考读物>计算机科学与技术>软件与程序设计

Java EE和.NET互操作性
作者 : Marina Fisher;Ray Lai;Sonu Sharma;Laurence Moroney
译者 : 赵睿 赵俊明 等
出版日期 : 2007-04-27
ISBN : 7-111-21069-6
定价 : 49.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 349
开本 : 16开
原书名 : Java EE and .NET Interoperability:Integration Strategies,Patterns,and Best Practices
原出版社: Prentice Hall
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

实现可互操作性的应用和服务的指导手册
  开发跨Java EE和.NET应用的最佳实践

  本书指出了集成过程中遇到的问题,例如多样的技术集、不兼容的API和完全不同的环境维护。富有经验的作者概括了策略、方法和最佳实践,包括消息传送、Web服务以及集成相关的框架和模式。本书还向读者介绍了面向服务的架构(SOA),可伸缩的和可靠的企业集成方案。
  本书为Java EE和.NET开发团体提供了多个集成Java EE和.NET平台的策略,以节省开发人员的时间和工作量。使用经过实践检验的互操作性解决方案可以有效地缩短应用程序开发周期。

  本书内容包括:
  ● 有效的Java EE和.NET集成策略和最佳实践。
  ● 作为Java EE和.NET互操作性的Building Block的SOA。
  ● 互操作性安全问题和风险缓解。
  ● 管理建立在Java EE和.NET上的Web服务的可靠性、可用性和可伸缩性。
  ● 最新的互操作性标准和规范,包括Web SSO MEX和WS-Management。
  ● 当前流行的互操作性技术,例如Windows通信基础库、WSE 3.0、JAX-WS和企业服务总线。

图书特色

图书前言

业务挑战
  对于企业而言,拥有大规模而且各不相同的系统是很普遍的现象,而拥有统一的系统却很少见。由于企业的收购和兼并、雇员的更替和政策的改变,以及许多其他的原因,这种现象一直存在:企业所拥有的系统用不同的语言建立,运行在不同的软件平台上,针对不同的硬件。在这样的基础上,企业需要的灵活性越来越大,这就产生了对集成的互操作性系统的需求,以便能够积极、连贯、快捷地响应业务需求——这是当今企业面临的一个重大挑战。
  几年前,典型的业务数据系统只是一个简单、单一的、带有企业资产数据的大型机,可以通过紧耦合的用户接口访问。各领域间的资产转移通常是通过手工来实现的。例如,一个订单从销售系统转移到实施配送系统,就是由操作员通过键盘输入详细内容,然后从一个系统打印输出到另一个系统。操作员本身就是互操作层。
  随着时间的推移,系统和技术的演进使得计算机能够互连,并通过诸如CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)等协议实现自动集成。然而,事实证明开发和维护这些系统是非常困难而且昂贵的。
  目前看来,数据中心可以分成两个主要的部署类型。一个是采用微软的产品,涵盖了除硬件以外的一切产品,从操作系统、软件平台到应用程序,包括Windows服务器家族、.NET框架和运行库。开发人员有一套开发和针对这个平台的工具,能够节省出更多的精力放在市场和开发成本上。另一个是采用Java EE软件架构的开放式产品,它们能够运行在多种硬件平台上,并运行用Java语言编写的应用程序。这说明它们提供了额外的运行时(runtime)的特性。而且像EJB(Enterprise Java Beans,企业级Java Bean)等技术都具有安全性、可伸缩性、可管理性等备受欢迎的特性。这些技术在大规模系统中起着显著的作用,为众多用户提供着服务。
  然而,一个同时使用这两套技术的产品却很难实现一个有效的数据中心。开发管理经常不得不在.NET环境的生产力和Java EE平台的运行时特性之间做出选择。很难给出一个两全其美的解决方案,几乎没有简单易行的方法能够使运行在两个平台上的产品可以有效地对话。
  看这样一个例子,有一个公司,它的系统是若干次的合并和并购后的结果。这样一个系统有一系列基于不同技术的数据库——针对不同应用程序的硬件,不同的运行环境平台,以及不同体系结构的应用程序。集成这样的系统毫无疑问是一个十分具有挑战性的过程。
  看看Web服务(Web services),它是封装了业务过程并提供一个可以访问这些过程的标准接口的抽象实体。后台是如何实现的并不重要!在刚刚提到的例子中,每个系统的数据检索层都能把自己封装在一个Web服务中,从而提供一个标准接口。于是,率领着一群善于快速整合ASP .NET 或者JSP页面的初级职员的开发经理,就有了一个理想的机会,利用大部分Web服务技术,开发能访问这些Web服务的代理(Proxies)的前端。这本应该很简单,但结果却并不如人所愿。
  为什么呢?因为就算是标准,不同的软件实现者在使用其创建自己的软件时,开发出来的软件总会有细微的差别。这些差别意味着,不是所有用Web服务封装了的技术都能和另外那些知道如何与Web服务对话的技术进行清楚的对话。因此,互操作性并不像想像的那么简单。
  于是有了本书。掌握本书中所讲的知识,在你的开发团队或者数据中心中,你将既能够解决所面临的互操作性问题,又能够更好地设计出不被互操作性问题困扰的系统。
  互操作性技术
  本书讲述了几种有关互操作性的技术解决方案。第一个最显而易见的就是Web服务,它可以将你的业务实体封装在标准层中,以便抽象它们的技术实现。因此,任何与这一层相互作用的东西都不需要知道驱动它的技术,就能和它完好地合作。虽然这是一个强大的、非常有说服力的方法,但是一样无法摆脱自身的缺陷。它在两个主要领域中面临着挑战——对标准和性能的不同支持。本书贯穿了处理这些问题的策略。
  另一个众所周知、广泛应用的集成和互操作性方法是运用消息平台(message platform)。在消息平台上,层与层之间的通信是通过消息队列传递简单消息来实现的。像JMS、MQSeries和MSMQ等技术都是这样的。它们能够构造一个十分有力的、可执行的互操作层,尤其是在对实时性有特别需求时。
  还有一种技术就是平台统一化(platform unification),用于实现.NET和Java EE应用之间彻底的互操作。从这个概念上讲,运行环境层是统一的,也就是说,使用一种语言的开发人员能够把他们的应用程序部署到使用另一种语言的运行环境上。比方说,.NET开发人员能够把应用程序部署在Java EE上。同样的,.NET和Java EE应用不需要通过分开的层来对话——它们在同一个平台上,可以清晰地对话。互操作性不是一定要在应用层实现,也可以实现在资源层。随着新技术的出现,使得越来越多的业务逻辑更加接近数据库,互操作性问题也能够得到解决。应用层越瘦,它们彼此间的对话越容易。
  本书结构
  本书通过两个主要部分来讲述Java EE和.NET集成。第1部分讲述集成类型方面的内容,例如同步和异步,概述了独立的Java和.NET组件是如何运用多种多样的技术集成在一起的。第2部分讲述与服务需求质量有关的内容,例如安全性、可靠性、可伸缩性,以及满足不同企业环境的服务水平协议(SLA,Service Level Agreement)的要素。如果你仔细看看本书的结构,你会注意到,本书按照以下形式讲述集成策略:
  策略名每个策略都有一个惟一的名字,以反映它的目的。
  适用范围每个策略都是针对某个特定的Java EE和.NET互操作性问题的。异步的可靠集成就是一个例子。
  解决方案这部分内容详细描述了策略设计,并概括了技术备选项。
  优势和局限任何互操作性策略都有优点和缺点,这里会突出强调。比方说,易于维护,或者可伸缩性是某些策略普遍具有的优点。
  相关模式像J2EE核心模式(Core J2EE Patterns)这样的企业模式贯穿本书,我们利用这些你所熟悉的模式深入到Java EE和.NET集成中。在.NET空间里有相似的资源吗?
  示例整本书中,利用Web服务互操作性组织(WS-I,Web Services Interoperability Organization)提出的供应链管理应用程序(SCMA,Supply Chain Management Application)的用例,来说明如何实现策略。大多数策略都有两套分别关于Java EE到.NET和.NET到Java EE通信的范例。
  我们对各个策略的列举说明构成了本书的核心内容,本书可作为Java EE和.NET互操作性的参考手册来使用。在钻研策略之前,回顾一下Java EE和.NET平台的基本原理是很有帮助的。本书中对这两个平台的回顾将围绕它们的互操作特性展开。两个平台都提供了开发基于组件的、松耦合的集成点的API。关于平台的综述在第2部分展开,这一部分讨论同步集成的共同的企业前景和原因。集成完全不同的应用的实际技术是基于Web服务的。第4章论述一个.NET应用程序如何发现和访问实现在Java内的Web服务,反之亦然。接下来关于同步集成的讨论将会围绕.NET Remoting(.NET远程处理)技术进行,.NET Remoting是Web服务的替代方案,并在开源及各种各样的商业解决方案中采用。.NET Remoting已经被纳入到微软的Indigo服务(Indigo Services)中,成为其中的一部分。第6章详细讲述数据库和遗留集成技术。这一章展示一个通过建立数据访问层(Data Access Layer)来连接不同种类的关系型数据库管理系统(RDMS,Relation Database Management System)的简单策略,例如MySql和SQL Server。总之,如果你有两个紧耦合的或是强依赖性的系统,同步集成策略会很有用。然而,异步应用集成正日益凸显。
  Java EE和.NET系统间的异步集成更容易维护、更牢靠,并且越来越具有伸缩性。因此,本书中的大多数策略集中在第3部分。头两个策略,自动回叫(Automatic Callback)和响应轮询(Response Polling),都是基于Web服务技术的。它们从根本上不同于上一部分中提到的方法。这些策略的主要目的是为了从请求处理的间歇分解出远程呼叫。能够通过回叫或者轮询技术发送响应。第9章介绍消息中间件(MOM,Message Oriented Middleware)、简单邮件传输协议(SMTP,Simple Mail Transfer Protocol)和企业服务总线(ESB,Enterprise Service Bus)等技术,展示了帮助Java EE和.NET系统集成实现自动化和流线化的5个不同的策略。可靠的消息传递方式是这些策略的关键特点。和上一部分内容类似,第10章说明如何与后端资源进行异步通信。
  本书的第4部分介绍互操作性的“服务质量”(QoS,Quality of Services)。其中的几章内容讨论了如何实现安全、可靠、互操作的Java EE和.NET环境。这一部分内容包括分布式事务处理和对一个混合环境的管理,但是最重要的是,提供了企业体系结构上的最佳实践,这些实践降低了安全性、可管理性、可用性和可靠性的风险。下表列出了这些策略。
  表I-1策略目录
  同步集成策略异步集成策略服务质量策略
  .NET访问的Java Web服务(Java Web Service Accessed by .NET)自动回叫(Automatic Callback)消息传送事务管理(Transaction Management with Messaging)Java访问的.NET Web服务(.NET Web Service Accessed by Java)响应轮询(Response Polling)Web服务事务(Web Services Transactions).NET Remoting(.NET远程处理):IIOP .NET、iHUB、J-Integra、Nbridge桥接(Bridging)安全对象处理器(Secure Object Handler)数据访问适配器(Data AccessAdapter).NET适配器(.NET Adapter)安全追踪器(Secure Tracer)
同步集成策略异步集成策略服务质量策略
遗留集成(Legacy Integration)
Web服务消息传送(Web Services Messaging)
因特网电子邮件(Internet Email)
企业服务总线(Enterprise Service Bus)
间接数据访问(Indirect Data Access)
分布式介体(Distributed Mediator)
数据访问代理(Data Access Proxy)
Web服务管理(Web Services Management)
平台统一化(Platform Unification)
用CORBA、桥接/.NET Remoting和Mono互操作性进行管理
除了集成和系统的质量策略以外,本书还讨论了如何在Java EE应用服务器上部署一个.NET应用程序,以及如何手动地把一个.NET应用程序嵌入到Java中。这些策略收录在第16章中。本书的每一章都想全面综述所述策略的技术和概念。消息传送(Messaging)、资源池化(Resource Pooling)、线程化(Threading)和异步编程(Asynchronous Programming)模型在Java EE和.NET平台上是不同的。如果读者理解了这些在每个平台上的编程模型,就能够有效地将这些策略应用到特定的领域当中。
本书包括什么,不包括什么
本书是Java和.NET集成策略和最佳实践的集合。这里在结构上将互操作性技术分成同步集成、异步集成、桥接和服务质量几个部分来介绍,并利用各种不同的业务场景(包括WS-I互操作性场景)将这些互操作性技术贯穿于上下文当中。用不同供应商的产品作为例子明确地介绍了标准技术,这样使开发人员和架构师能够建立与供应商无关的互操作性解决方案。
本书不介绍互操作性设计模式。有更好的专门介绍关于集成和互操作设计模式的书可供选择。正如市场的倾向,在讨论Java和.NET互操作性时,本书比起设计模式,所用的语言结构更加简单,内容更加容易读懂。
本书不是程序员的操作手册。关于Java和.NET互操作性的程序员手册通常包括大量的示例程序,还包括覆盖所有.NET和Java程序语言特性的API的详细指南。虽然本书也包含了一些示例程序,但是这些程序都是为了举例说明如何精确地制作一个设计策略。
本书不是互操作性标准规范的概览。为了尽量保证本书内容简明扼要,本书提供了大量URL和参考文献,它们涉及互操作性的文献和标准规范。
谁应该阅读本书
本书主要面向初学者和有一定.NET和Java开发经验的开发人员。对于初学者,本书针对每个集成和互操作性策略都有代码范例,以适用范围/解决方案/示例的形式介绍。这使开发人员可以很快地开始建立互操作性解决方案,并能顾及到设计重用的问题。对于有经验的开发人员,“最佳实践和隐患”部分强调了许多实践经验,有助于读者从以往的经验中吸取经验教训。
本书对于架构师和IT经理也是非常有用的。书中广泛地讨论了新兴的互操作性技术,并分析了它们目前的优势和局限。对于哪些互操作性技术与自己的操作环境有关,哪些对于自己的架构计划有帮助,架构师和工厂经理可以做到心里有数。
优点
本书具有以下优点,为读者提供更多的价值:
分析新兴的互操作性技术,而不是只给出简单的摘要。尤其是,本书讨论了互操作性技术能做什么,不能做什么,并且讨论了不同业务场景的技术的潜在用途。
供应商无关的解决方案。本书讨论标准的互操作性技术,并不强调任何具体供应商的设计或实现。供应商中立性有助于更好地实现集成和互操作性。
用集成/互操作策略和最佳实践讲解设计重用。在讲述互操作性问题及其相关解决方案时,使用的语言没有设计模式中那么正式。
综述
Java EE和.NET应用之间的互操作性就像跨平台集成中的“圣杯”。它非常复杂、耗时,而且实现起来很有可能存在着风险。很多集成和互操作性问题直到互操作解决方案开始执行时才能被发现。为了把握好互操作性,架构师和开发人员需要在实现之前就确定互操作技术存在的复杂的、技术上的问题。这往往是一个充满了许多次试验和失败的不断探索的过程。本书希望通过使用范例场景、描述最佳实践和强调隐患来讲述技术复杂性和问题所在,达到降低这些风险的目的。
随着新的互操作性技术越来越多,例如Web服务,你可以看到标准集成和互操作性技术已经变得越来越可行而且越来越重要。同步和异步Web服务已经成为首选的集成和互操作性技术。对比早期强调具体供应商技术(例如.NET Remoting和桥接)的文献,那些标准技术提供了更多的设计选项。
设计重用也成为开发人员和架构师首要考虑的问题。许多过去设计出来的一次性集成方案都是只能满足一个.NET应用与一个Java应用间的互操作。尤其是,当使用一个个性化的技术或一个高度用户化的解决方案时,开发人员将不能提供持续的维护和更进一步的支持。因此,本书十分注重讲述可重用的设计策略。
最后,互操作解决方案的服务质量(QoS)讲的是可靠性、可用性、可伸缩性、安全性和可管理性。传统上,应用程序开发重视的是编码和部署的复杂性。但是如今,随着可互操作的系统越来越复杂,部署后的阶段和QoS变得更加重要。QoS问题一般都根源于应用程序体系结构设计。服务质量是本书中的一个关键话题。
勘误表和示例代码下载
读者可以从Prentice Hall图书网站www.phptr.com和https://javanetinterop.dev.java.net查看更新、勘误和示例代码。
本书各章中标注的选择性的示例代码、脚本、摘录和新增版本从以上的URL中都可以下载得到。这些材料仅供讲解和演示使用,由于开源软件组件的软件版本常会变更,以及环境搭建中存在各种潜在问题,我们并不保证它们能够应用于每个操作系统环境中,只是把这些示例代码当作支持素材。

封底文字

实现可互操作性的应用和服务的指导手册 开发跨Java EE和.NET应用的最佳实践 本书指出了集成过程中遇到的问题,例如多样的技术集、不兼容的API和完全不同的环境维护。富有经验的作者概括了策略、方法和最佳实践,包括消息传送、Web服务以及集成相关的框架和模式。本书还向读者介绍了面向服务的架构(SOA),可伸缩的和可靠的企业集成方案。 本书为Java EE和.NET开发团体提供了多个集成Java EE和.NET平台的策略,以节省开发人员的时间和工作量。使用经过实践检验的互操作性解决方案可以有效地缩短应用程序开发周期。 本书内容包括: ● 有效的Java EE和.NET集成策略和最佳实践。 ● 作为Java EE和.NET互操作性的Building Block的SOA。 ● 互操作性安全问题和风险缓解。 ● 管理建立在Java EE和.NET上的Web服务的可靠性、可用性和可伸缩性。 ● 最新的互操作性标准和规范,包括Web SSO MEX和WS-Management。 ● 当前流行的互操作性技术,例如Windows通信基础库、WSE 3.0、JAX-WS和企业服务总线。

图书序言

对于Sun和微软来说,本书的出版真是激动人心。自从我们于2004年4月宣布双方的合作协议之后,我们取得了很大的进展,尤其是在Web单点登录Sun的Java Enterprise System和微软的Windows Server方面。但是,还有比基本Web服务集成更多的互操作性问题。这也是为什么Sun和微软致力于为我们的合作伙伴和客户将Java和.NET开发的业务解决方案流程化和自动化。
  我们在单点登录方面的合作,本质上是在解答Sun用Liberty Alliance做了什么,以及微软试图用Passport和随后用WS-Federation达到什么目的。这使用户只需登录一次就能够同时登录到Java服务和.NET服务(在这个意义上,身份协议位于两个服务之间),用户不需要再次登录。
  由于越来越多的公司在关键任务产品环境中部署Java和.NET应用,我们将继续寻找消除两个平台之间不必要的不兼容性,并确定它们之间的可管理性的方法,以造福我们共同的客户。
  这本书是开发人员实现可互操作的应用和服务的手册。书中包括开发人员可以使用的策略和业内的最佳实践经验。
  要感谢Marina Fisher、Ray Lai、Sonu Sharma和Laurence Moroney,他们使大家现在掌握了一系列集成解决方案,以及解决日常Java和.NET互操作性问题的策略。
  Sun Microsystems公司技术总监Greg Papadopoulos

作者简介

Marina Fisher;Ray Lai;Sonu Sharma;Laurence Moroney:暂无简介

译者简介

赵睿 赵俊明 等:暂无简介

译者序

你可能是一位CIO,正在为你的公司里这个或者那个系统感到焦头烂额;你也可能是一位系统分析师或者架构师,正在开始构建一个高可靠性、高可用性和高可伸缩性的Web服务平台;你还可能是一位开发人员,正在为某个系统集成项目束手无策。很高兴你选择了本书,同时你也很幸运,因为这本书将为你解决系统增长面临的各种难题。
  本书讲究实用,而不是简单罗列各种策略、技术和各种艰涩的名词,而是深入浅出地介绍每种策略的异同,以及应用该策略的环境和最佳实践,同时用精选的示例和图解耐心地阐述每种策略的优势和局限。
  在翻译过程中,我们力求保持原文风格,但是为了符合国内读者的习惯,在某些地方也做了适当的调整。希望我们的译文能够帮助读者更好地理解本书所介绍的各种策略和实现技术;更希望读者从本书的阅读中获得足够的知识和技能,对目前的开发工作有所帮助。
  虽然我们较深入地了解互操作相关的技术和背景知识,并具备一定的实践经验,但是鉴于水平有限,加之本书涉及技术面广,各种标准和术语又很多,翻译过程中难免有所疏漏和错误,请广大读者批评指正。
  参与本书翻译工作的有赵睿、赵俊明、窦巍、刘克俭、刘春霞、黄庆昆、马丽霞、杨斯雯、赵北扬、刘卓、张玉坤、苏建、赵斌、徐智达,并由赵睿统一全稿。机械工业出版社华章分社的编辑对全书进行了细致的审校,提供了大量宝贵的修改意见和指导,在此深表感谢。
  译者
  2007年2月

图书目录

译者序
序言
致谢
前言
第1部分Java EE .NET互操作性
第1章Java EE平台的互操作性要素1
1.1Java EE平台1
1.2Java EE体系结构2
1.3互操作能力8
1.3.1消息传送8
1.3.2分布式对象9
1.3.3Web服务9
1.3.4业务过程集成10
1.3.5与非Java平台集成11
1.3.6其他11
1.4小结11
参考文献 12
第2章.NET平台的互操作性要素13
2.1.NET平台的崛起13
2.2公共语言基础结构和运行库13
2.3.NET框架类库14
2.4.NET框架的集成能力15
2.4.1COM互操作性15
2.4.2平台调用16
2.5用同步Web服务实现的互操作性16
2.6用异步Web服务实现的互操作性17
2.7用.NET Remoting实现的互操作性17
2.8用消息传送技术实现的互操作性18
2.9互操作性的其他技术18
2.9.1数据互操作性18
2.9.2表示层互操作性18
2.9.3代码级互操作性19
2.10用Web服务增强实现的互操作性19
2.11用Windows通信基础库实现的互操作性19
2.12小结21
参考文献22
第2部分同步集成解决方案
第3章探索同步集成23
3.1简介23
3.2使用同步集成24
3.3用于同步集成的Web服务24
3.4用Web服务实现的互操作性25
3.5用于同步集成的.NET Remoting25
3.6资源层同步集成26
参考文献26
第4章用于同步集成的Web服务27
4.1Web服务技术概况27
4.1.1问题描述27
4.1.2解决方案27
4.1.3Web服务技术28
4.1.4Java Web服务29
4.1.5微软.NET框架中的Web服务30
4.2用.NET和Java EE建立同步Web服务32
4.2.1基于Java的Web服务和基于.NET的客户端33
4.2.2基于.NET的Web服务和基于Java的客户端37
4.3高级的Web服务互操作性39
4.3.1Web服务互操作性组织(WS-I)39
4.3.2使用基本概要保证互操作性40
4.4高级的Web服务技术41
4.4.1Java EE Web服务API41
4.4.2.NET Web服务API45
4.5最佳实践和隐患47
4.5.1数据类型定义和互操作性测试48
4.5.2保持类型简单性——避免高级的XML模式结构48
4.5.3为所有的数据类型提供XML模式定义48
4.5.4适应WS-I48
4.5.5多个WSDL绑定48
4.5.6默认的用文字编码的文档样式48
4.5.7使用惟一的SOAPAction49
4.5.8处理附件时考虑使用MTOM49
4.5.9运行时间长的B2B事务51
4.5.10设计难点51
4.5.11调试和维护51
4.5.12性能和稳定性52
4.6小结52
参考文献52
第5章用于同步集成的.NET Remoting54
5.1简介54
5.2用于Java EE .NET集成的IIOP.NET54
5.2.1适用范围54
5.2.2解决方案55
5.2.3优势57
5.2.4局限58
5.2.5示例58
5.2.6资源60
5.3用于Java EE .NET集成的J-Integra60
5.3.1适用范围60
5.3.2解决方案61
5.3.3从.NET框架访问EJB61
5.3.4从Java访问.NET组件63
5.3.5局限65
5.3.6示例65
5.3.7资源69
5.4用于Java EE .NET集成的JNBridge69
5.4.1适用范围69
5.4.2解决方案71
5.4.3优势76
5.5小结77
第6章资源层同步集成78
6.1简介78
6.1.1Java EE持久性机制78
6.1.2JDBC ResultSet和RowSet80
6.1.3断开连接81
6.1.4通过ADO .NET访问数据81
6.1.5连接数据源82
6.1.6数据访问应用程序块83
6.1.7ADO .NET DataReader和DataSet83
6.1.8断开ADO .NET连接84
6.1.9.NET和Java EE的连接池84
6.1.10对象关系映射85
6.1.11业务场景概述86
6.2数据访问适配器策略86
6.2.1适用范围86
6.2.2解决方案87
6.2.3优势和局限87
6.2.4相关模式87
6.2.5示例1:.NET数据访问适配器87
6.2.6示例2:Java数据访问适配器89
6.3遗留系统集成91
6.4小结93
参考文献93
第3部分异步集成解决方案
第7章探索异步集成97
7.1简介97
7.2使用异步集成98
第8章异步Web服务集成99
8.1简介99
8.1.1异步Web服务策略99
8.1.2Java EE中的异步Web服务支持99
8.1.3.NET中的异步Web服务支持99
8.1.4用SOAP 1.2实现的异步Web服务100
8.1.5业务场景概述100
8.1.6异步通信技术101
8.2自动回叫策略101
8.2.1实现补充库存用例102
8.2.2建立Java WarehouseCallback Web服务102
8.2.3部署Java WarehouseCallback Web服务104
8.3实现.NET生产系统109
8.3.1生产系统概述109
8.3.2.NET异步代理110
8.3.3实现.NET POValidator110
8.3.4实现ManufacturerFaade Web服务111
8.3.5部署.NET生产系统115
8.3.6实现Java仓库客户端118
8.3.7部署Java仓库应用程序118
8.3.8用Java实现异步回叫122
8.3.9通过异步Java代理实现的自动回叫125
8.3.10实现细节126
8.3.11ManufacturerService Web服务126
8.3.12部署异步代理示例128
8.3.13优势和局限129
8.3.14使用Java代理还是.NET外观129
8.3.15异步回叫结束语129
8.4响应轮询策略130
8.5相关模式138
8.5.1Java EE Web服务代理和.NET服务接口模式139
8.5.2异步请求汇编程序139
8.5.3异步请求处理器139
8.5.4补偿异步请求处理器140
8.5.5配合异步呼叫140
8.6最佳实践和隐患140
8.6.1面向文档的方法140
8.6.2带附件的SOAP消息140
8.6.3SOAP 1.2增强141
8.6.4Java Web服务异步支持141
8.6.5用Windows通信基础库实现的异步处理142
8.6.6可靠性143
8.6.7可管理性143
8.6.8安全性143
8.6.9可伸缩性和性能143
8.6.10Web服务开发中的自顶向下的方法143
8.6.11用于互操作性的通用商业语言144
8.7小结144
参考文献144
第9章消息传送145
9.1简介145
9.1.1消息传送基础146
9.1.2发后不理(Fire-and-Forget)146
9.1.3发布/订阅(Publish-Subscribe)146
9.1.4点对点(Point-to-Point)146
9.2实现Java和.NET中的消息传送146
9.2.1Java的消息传送146
9.2.2使用Java EE消息驱动Bean149
9.2.3.NET下的消息传送149
9.3桥接策略151
9.3.1适用范围151
9.3.2解决方案152
9.3.3补充库存用例152
9.3.4优势152
9.3.5局限154
9.3.6相关模式和最佳实践154
9.3.7示例155
9.4适配器策略161
9.4.1适用范围161
9.4.2解决方案161
9.4.3优势和局限162
9.4.4相关模式162
9.4.5示例163
9.5Web服务消息传送策略164
9.5.1适用范围164
9.5.2解决方案164
9.5.3补充库存用例165
9.5.4优势167
9.5.5局限167
9.5.6相关模式168
9.5.7示例1:JMS MQFaade访问JMS
提供者和.NET Web服务168
9.5.8示例2:MSMQ外观访问Web服务174
9.5.9示例3:用代理类实现的Java对MSMQ的访问177
9.6用于异步消息传送的因特网电子邮件177
9.6.1适用范围177
9.6.2解决方案177
9.6.3优势和局限178
9.6.4示例179
9.7企业服务总线185
9.7.1适用范围185
9.7.2解决方案186
9.7.3数据路由187
9.7.4优势187
9.7.5局限188
参考文献189
第10章资源层异步集成192
10.1简介192
10.2间接数据访问策略193
10.2.1适用范围193
10.2.2解决方案193
10.2.3优势和局限194
10.2.4相关模式194
10.2.5示例194
10.3分布式中介策略194
10.3.1适用范围195
10.3.2解决方案195
10.3.3优势和局限196
10.3.4相关模式196
10.3.5示例196
10.4数据访问代理策略197
10.4.1适用范围197
10.4.2解决方案197
10.4.3优势和局限198
10.4.4相关模式198
10.4.5示例198
10.4.6步骤1:定义XSD发货198
10.4.7步骤2:建立.NET回叫应用程序200
10.4.8步骤3:实现Java DAOFacade应用程序201
10.4.9步骤4:建立.NET客户端应用程序205
10.5小结208
参考文献209
第4部分定位服务质量需求
第11章定位服务质量211
11.1服务质量——核心问题211
11.2关于服务质量的误区和要点212
11.3理解QoS需求212
11.3.1可靠性213
11.3.2可用性214
11.3.3可伸缩性和性能214
11.3.4可管理性215
11.4相关的技术和标准216
11.4.1企业服务总线216
11.4.2QoS的衡量216
11.4.3Web服务的管理216
11.4.4其他Web服务标准和规范216
11.5小结216
第12章管理分布式事务218
12.1简介218
12.2事务完整性的基础218
12.2.1原子性219
12.2.2一致性219
12.2.3独立性219
12.2.4耐久性219
12.2.5分布式事务219
12.2.6两阶段提交(2PC)协议220
12.3Java EE和.NET事务支持220
12.3.1Java EE事务支持220
12.3.2程序的事务支持221
12.3.3声明式事务模型222
12.3.4隔离级别224
12.4.NET事务支持225
12.4.1编程式事务支持225
12.4.2自动事务支持226
12.4.3用System .Transactions管理事务227
12.5跨Java EE和.NET的事务互操作性228
12.5.1使用消息传送的事务管理228
12.5.2Web服务事务策略230
12.6商业产品234
12.7相关模式234
12.7.1事务处理器235
12.7.2粗粒度事务外观235
12.8最佳实践和隐患236
12.9小结236
参考文献237
第13章Java EE .NET安全互操作性238
13.1默认的安全性238
13.2Java设计上的安全性239
13.2.1Java运行时安全性240
13.2.2认证机制241
ⅩⅦ
13.2.3基于容器的安全性241
13.2.4安全互操作特性241
13.3.NET设计上的安全性241
13.3.1代码访问安全性243
13.3.2安全性策略243
13.3.3执行时安全性244
13.3.4安全互操作特性244
13.4用于互操作性的安全性244
13.4.1安全传输245
13.4.2不同层面上的安全互操作性245
13.4.3对审查控制和适应性的支持247
13.5用于互操作性的安全性标准247
13.5.1Web服务安全247
13.5.2WS-I基本安全概要250
13.5.3XACML251
13.5.4WS-Policy257
13.5.5Web服务策略语言259
13.5.6Web单点登录元数据交换(SSO MEX)260
13.6安全对象处理器策略264
13.6.1适用范围264
13.6.2解决方案264
13.6.3示例273
13.6.4优势和局限283
13.7安全跟踪器策略283
13.7.1适用范围283
13.7.2解决方案284
13.7.3示例285
13.7.4优势和局限285
13.8相关模式286
13.9最佳实践和隐患286
13.9.1最佳实践286
13.9.2隐患287
13.10小结287
参考文献287
第14章Java EE .NET可靠性、可用性和可伸缩性290
14.1健壮的Java EE .NET应用290
14.1.1业务场景290
14.1.2技术挑战290
14.1.3RAS的设计因素291
14.2理解技术的当前状态292
14.2.1可靠性292
14.2.2可用性295
14.2.3可伸缩性298
14.3最佳实践和隐患301
14.3.1最佳实践301
14.3.2隐患301
14.4小结301
参考文献302
第15章管理Java EE .NET互操作性
应用303

15.1管理Java EE和.NET的混合环境303

15.1.1Java应用的管理303

15.1.2.NET环境的管理304

15.1.3互操作性技术的缺口304

15.1.4代理和委托管理部署体系结构305
15.2Java EE .NET平台中的ISO管理要素305
15.2.1故障管理306
15.2.2配置管理306
15.2.3统计306
15.2.4性能管理306
15.2.5安全性管理307
15.3管理场景307
15.4Web服务管理策略308
15.4.1Web服务分布式管理(WSDM)309
15.4.2WS-Management310
15.4.3Web服务的管理312
15.4.4Web服务管理范围中的ISO特性312
15.5平台统一策略313
15.5.1平台统一概述313
15.5.2互操作性管理解决方案315
15.5.3平台统一ISO管理特性316
15.5.4优势和局限316
15.6相关模式317
15.7互操作性在管理上的影响322
15.7.1桥接/.NET Remoting322
15.7.2CORBA323
15.7.3Mono323
15.7.4优势和局限323
15.8最佳实践和隐患324
15.9小结324
参考文献325
ⅩⅧ
第5部分实现
第16章向Java移植.NET应用程序331
16.1简介331
16.2移植指导方针332
16.2.1高端考虑因素332
16.2.2移植企业级应用的策略333
16.3移植场景334
16.4用微软.NET构建场景335
16.4.1仓库服务的WSDL335
16.4.2仓库服务的SOAP335
16.4.3用C#定义数据类336
16.4.4C# Web服务336
16.4.5用C#调用Web服务337
16.5通过用Java重写代码实现移植338
16.5.1把C#转换成Java时遵循的一般步骤338
16.5.2转换数据类339
16.5.3转换Web服务340
16.5.4转换底层的Web服务类340
16.5.5部署Web服务343
16.5.6调用Web服务344
16.5.7接下来的步骤344
16.6用Mainsoft公司的Visual MainWin for
Java EE进行移植345
16.6.1转换WS-I场景345
16.6.2在WS-I场景上进行347
16.7小结348
参考文献349

教学资源推荐
作者: [美] 埃里克·伽玛(Erich Gamma) 理查德·赫尔姆(Richard Helm) 拉尔夫·约翰逊(Ralph Johnson) 约翰·威利斯迪斯(John Vlissides) 著
作者: [美]克洛维斯· L.汤多(Clovis L. Tondo) 斯科特· E.吉姆佩尔(Scott E. Gimpel)著
作者: [美]沙伦·比奥卡·扎卡沃(Sharon Biocca Zakhour) 索娅·坎南(Sowmya Kannan) 雷蒙德·盖拉多(Raymond Gallardo) 著
作者: Kenneth Barclay;John Savage
参考读物推荐
作者: (德)Marko Boger
作者: 杨洁 郭占鑫 刘康 熊谱翔 著
作者: Michael Morrison