
作者:(美)费歇尔 等著,赵睿 等译
页数:349
出版社:机械工业出版社
出版日期:2007
ISBN:9787111210696
电子书格式:pdf/epub/txt
内容简介
本书介绍java ee与.net集成策略和最佳实践。涉及计算机系统集成过程中遇到的各种问题,例如多样的技术集、不兼容的api和完全不同的环境维护等。主要内容包括两个方面:首先是集成类型方面的内容,例如同步和异步,概述了独立的java和.net组件是如何运用多种多样的技术集成在一起的;其次是与服务需求质量有关的内容,例如安全性、可靠性、可伸缩性,以及满足不同企业环境的服务水平协议的要素。
本书作者具有丰富的实践经验,为java ee和.net开发团体提供了多个集成java ee和.net平台的策略,可节省开发人员的时间和工作量,有效地缩短应用程序开发周期。本书适合软件开发人员和软件项目管理人员参考。
目录
| 译者序 |
| 序言. |
| 致谢 |
| 前言 |
| 第1部分JavaEE.NET互操作性 |
| 第1章JavaEE平台的互操作性要素1 |
| 1.1JavaEE平台1 |
| 1.2JavaEE体系结构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用.NETRemoting实现的互操作性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用于同步集成的.NETRemoting25 |
| 3.6资源层同步集成26 |
| 参考文献26 |
| 第4章用于同步集成的Web服务27 |
| 4.1Web服务技术概况27 |
| 4.1.1问题描述27 |
| 4.1.2解决方案27 |
| 4.1.3Web服务技术28 |
| 4.1.4JavaWeb服务29 |
| 4.1.5微软.NET框架中的Web服务30 |
| 4.2用.NET和JavaEE建立同步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.1JavaEEWeb服务API41 |
| 4.4.2.NETWeb服务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章用于同步集成的.NETRemoting54 |
| 5.1简介54 |
| 5.2用于JavaEE.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用于JavaEE.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用于JavaEE.NET集成的JNBridge69 |
| 5.4.1适用范围69 |
| 5.4.2解决方案71 |
| 5.4.3优势76 |
| 5.5小结77 |
| 第6章资源层同步集成78 |
| 6.1简介78 |
| 6.1.1JavaEE持久性机制78 |
| 6.1.2JDBCResultSet和RowSet80 |
| 6.1.3断开连接81 |
| 6.1.4通过ADO.NET访问数据81 |
| 6.1.5连接数据源82 |
| 6.1.6数据访问应用程序块83 |
| 6.1.7ADO.NETDataReader和DataSet83 |
| 6.1.8断开ADO.NET连接84 |
| 6.1.9.NET和JavaEE的连接池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.2JavaEE中的异步Web服务支持99 |
| 8.1.3.NET中的异步Web服务支持99 |
| 8.1.4用SOAP1.2实现的异步Web服务100 |
| 8.1.5业务场景概述100 |
| 8.1.6异步通信技术101 |
| 8.2自动回叫策略101 |
| 8.2.1实现补充库存用例102 |
| 8.2.2建立JavaWarehouseCallbackWeb服务102 |
| 8.2.3部署JavaWarehouseCallbackWeb服务104 |
| 8.3实现.NET生产系统109 |
| 8.3.1生产系统概述109 |
| 8.3.2.NET异步代理110 |
| 8.3.3实现.NETPOValidator110 |
| 8.3.4实现ManufacturerFa揳deWeb服务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.11ManufacturerServiceWeb服务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.1JavaEEWeb服务代理和.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.3SOAP1.2增强141 |
| 8.6.4JavaWeb服务异步支持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使用JavaEE消息驱动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:JMSMQFa揳de访问JMS提供者和.NETWeb服务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:实现JavaDAOFacade应用程序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.3JavaEE和.NET事务支持220 |
| 12.3.1JavaEE事务支持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跨JavaEE和.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章JavaEE.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单点登录元数据交换(SSOMEX)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章JavaEE.NET可靠性.可用性和可伸缩性290 |
| 14.1健壮的JavaEE.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章管理JavaEE.NET互操作性应用303 |
| 15.1管理JavaEE和.NET的混合环境303 |
| 15.1.1Java应用的管理303 |
| 15.1.2.NET环境的管理304 |
| 15.1.3互操作性技术的缺口304 |
| 15.1.4代理和委托管理部署体系结构305 |
| 15.2JavaEE.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桥接/.NETRemoting322 |
| 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公司的VisualMainWinforJavaEE进行移植345 |
| 16.6.1转换WS-I场景345 |
| 16.6.2在WS-I场景上进行347 |
| 16.7小结348 |
| 参考文献…349 |















