`

Web Service 实现分布式服务的基本原理

    博客分类:
  • JAVA
阅读更多

简单的说, 就是客户端根据WSDL 生成 SOAP 的请求消息, 通过 HTTP 传输方式(也可以是其它传输方式, 如 FTP 或STMP 等,目前 HTTP 传输方式已经成为 J2EE Web Service 的标准)传给对方, 服务方实现服务请求, 将结果以 SOAP 的消息格式返回给客户端。

如果人工去创建和解析基于 XML 格式的 SOAP 消息还是一个非常复杂的过程, 这样 JAX-RPC 应时而生, 他实现了J2EE Web Sercive  的远程分布式调用。

JAX - RPC :Java APIs for XML-Based Remote Procedure Call. 它本质上是另一种RMI。 只是 JAX-RPC 以 SOAP 作为通信协议, RMI 以 RMI- IIOP或者 RMI - JRMP为通信协议。

         Web Service 的基本结构图.jpg

客户端需要根据 WSDL 创建客户端 Java 程序, 其中包括 Stub 程序。 客户端调用相应的Stub 程序, 进一步调用JAX- RPC 运行环境创建 SOAP 请求消息, 通过 HTTP 传输给服务器端。

Web 服务器端的JAX-RPC 运行环境在收到 SOAP 请求消息后, 对 SOAP 的 XML 内容进行解析, 再通过 Tie 来调用服务接口实现类。(无状态会话 Bean 或者 Java  对象) ,得到结果后, 创建SOAP 响应消息返回给客户端。 

  
客户端基于JAX- RPC 实现远程分布式调用的基本原理

(1)通过 JAX-RPC 创建 SOAP 请求消息
(2)通过 JAX- RPC 将 SOAP 请求消息送到服务地址
(3)通过 JAX- RPC 解析 SOAP 请求消息

服务器端基于 JAX-RPC 实现远程分布式调用的基本原理

服 务器端的 JAX-RPC 的运行环境在收到了基于 XML 格式的SOAP 请求消息后, 会调用服务器端的 JAX-RPC Tie 对象的相应服务接口方法checkUserLogin, 将上面的基于 XML 格式的 SOAP 请求消息中的参数值映射为 Java 对象类传给 Tie 对象的接口方法, 将 loginName 和 password 都转化为 Java 的String 类型。 这是前述的 WSDL 中所定义的类型。



利用设计模式

设计模式在设计Webservice的时候显然可以起到相当大的作用。设计模式的主要目的就是为解决某些在类似环境下的相像问题提供已有的较为成熟的设计方案。在这里,只简单的提及一些很常用的模式,让我们了解到模式在Webservice中可以起到的作用。
Adapter :为内部系统提供一个不同的接口
Façade: 封装复杂的内部实现,提供一系列简单的接口
Proxy: 作为其他对象的代理,代替它提供服务
 
Adapter 模式用于将一个组件的接口转化成客户所需要的样子,这里的客户就是Webservice。一个常见的情况就是将原有的老的系统包装成一个 Webservice。比如现在使用的是J2EE的平台,而原来有一个C++的系统实现了某些功能,现在需要将它发布成Webservice,那么就需要 利用JNI技术做一个Adapter,为原来的C++组件提供一个Java的接口,然后再转化为Webservice。
 
Façade 模式用于构建粗粒度的服务,它包装了细粒度的服务,从而为复杂的系统提供了一个简单的接口。在J2EE中,Session Bean就象是一个Façade,而Entity Bean则是细粒度的服务。在Webservice中也一样,使用Façade模式可以将已有的组件的功能发挥殆尽。
 
Proxy 模式用于充当其他对象的代理,类似于中间人的作用,将处理工作从一个对象传递到另一个对象。在Webservice中,它主要用于隐藏Soap消息构造的过程。也可以用于模拟对象(Mock Object)的创建。
 
以上仅仅是一些可以用于Webservice开发的模式,如果你熟练的将这些模式应用于Webservice开发,你将会发现开发Webservice应用,将好像做一种特殊的面向对象设计。
 
l         安全
Webservice为作为方便的服务被用广大领域使用的同时,也成为了黑客们的美食。在这里,本文将就目前对Webservice安全所能做的改进做简单介绍。
在Webservice中的安全主要分为以下三个方面。
传输      SSL/HTTPS 对连接加密,而不是传输数据
消息      数据加密(XML Encryption)   数字签名(XML-DSIG)
底层架构  利用应用服务安全机制
 
传输时的安全是最容易被加入到你的Webservice应用中的,利用现有的SSL 和HTTPS协议,就可以很容易的获得连接过程中的安全。
 
然 而这种安全实现方法有两个弱点。一是它只能保证数据传输的安全,而不是数据本身的安全,数据一旦到达某地,那么就可以被任何人所查看。而在 Webservice中,一份数据可能到达多个地方,而这份数据却不该被所有的接受者所查看。二是它提供的是要么全有要么全无的保护,你不能选择哪部分数 据要被保护,而这种可选择性也是在Webservice中所常要用到的。
 
第二层的保护是对于消息本身的保 护。你可以使用已有的XML安全扩展标准,实现数字签名的功能,从而保证你的消息是来自特定方并没有被修改过。XML文件的加密技术从更大程度上加强了 Webservice的安全,它能够定制数据传输到后,能否被接受者所查看,进一步完善了传输后的安全,业界也在不断的制定Webservice的安全标 准,比如SAML 和 WS-Security。
 

最后一层保护就是依靠底层架构的安全,这更多的来自于操 作系统和某些中间件的保护。比如在J2EE中,主持Webservice的应用服务器。目前很多的J2EE应用服务器都支持Java Authentication and Authorization Service (JAAS),这是最近被加入到J2SE 1.4当中的。利用主持Webservice的服务器,实现一些安全机制这是很自然的做法。另一种利用底层架构的安全方法就是,做一个独立的负责安全的服 务器,Webservice的使用者和创建者都需要与之取得安全信任。

  • 大小: 43.3 KB
分享到:
评论

相关推荐

    论文研究-面向ASP分布式服务模式的多级用户控制.pdf

    针对四川区域中小制造业用户群对ASP的需求特点,分析了ASP分布式服务模式的原理...提出了基于Web Service的多级用户管理和控制策略,并进行了详细设计和实现,其结果在区域网络化制造ASP服务三级服务平台得到实际应用。

    ASP.NET报名管理信息系统(源代码+论文+开题报告+任务)

    该系统采用C/S结构,利用Web Service原理来实现。Web services是建立可互操作的分布式应用程序的新平台。Web service平台需要一套协议来实现分布式应用程序的创建。任何平台都有它的数据表示方法和类型系统。要实现...

    JAVA高并发高性能高可用高扩展架构视频教程

    企业必备技能之面向服务编程Web-Service详解 分布式服务下的交易一致性原理及解决 分布式服务框架(dubbo+zookpeer) WEB高级前后台分离思维-懒加载无限级树形菜单 动态页面的静态化处理 大并发展示优化,动态页面的...

    基于Web 服务的网格体系结构及其支撑环境研究

    基于Web 服务的网格体系结构及其支撑环境研究∗ 胡春明+, 怀进鹏, 孙海龙 ...了基于Web 服务的网格支撑环境WebSASE4G 的总体结构和设计原理,为基于Web 服务的网格系统设计与实 现提供了一种新的方法.

    网站架构技术

    web service与企业级分布式服务 大型网站分布式服务的需求与特点 分布式服务框架设计 可扩展的数据结构 利用开放平台建设网站生态圈 固若金汤:网站的安全架构 网站应用攻击与防御 XSS攻击 反射型 ...

    一种基于XMLWebService的分布式解决方案

    提出了一种在开放的 Internet 网络环境下,用基于Web service 开发技术来实现的,适合于中小企业应用的分布式管理信息系统的解决方案,该方案既满足了企业的业务分散处理的需要,同时又具有成本低、实现方法简单的...

    面向ASP分布式服务模式的多级用户控制* (2006年)

    针对四川区域中小制造业用户群对ASP的需求特点,分析了ASP分布式服务模式的原理...提出了基于Web Service的多级用户管理和控制策略,并进行了详细设计和实现,其结果在区域网络化制造ASP服务三级服务平台得到实际应用。

    基于RFID技术的电子标签在物流网中的应用

    本文首先介绍了RFID 系统的基本组成和工作原理, 分析了RFID 应用在物流网... 为解决不同领域多个企业信息共享和协同工作, 提出了基于Web Service 的分布式RFID 物流网应用体系, 并就应用体系的具体实现做了详细的阐述。

    一种基于Web Service的CSCW应用 (2006年)

    Web Service是当前支持CSCW的一种主流的分布式技术,本文对CSCW和Web Service的核心概念、体系结构和关键技术进行了探讨,提出了一种基于Web Service的CSCW应用模型分布式AutoCAD系统,对该模型的工作原理和主体构架...

    Eclipse开发分布式商城系统+完整视频代码及文档

    服务发布-商品基本信息-service.avi │ 04.服务发布-商品基本信息-完成.avi │ 05.服务发布-商品描述.avi │ 06.服务发布-商品规格参数.avi │ 07.展示商品基本信息.avi │ 08.展示商品描述.avi │ 09.展示规格参数....

    CAS单点登录demo.rar

    这个资源是一个CAS(Central Authentication Service)单点登录演示项目,用于展示如何实现基于CAS的单点登录系统。CAS是一种常用的身份认证和授权解决方案,适用于分布式系统中的用户身份验证。该演示项目将通过...

    研究各种Java技术(Springboot+Redis+Dubbo+Rocketmq)

    whatsmars-spring spring原理、集成及新特性 whatsmars-tomcat 模拟tomcat实现 whatsmars-dbrouter 分库分表实现 whatsmars-worker 多实例任务调度 whatsmars-dubbo Dubbo demo whatsmars-mq rocketmq,activemq ...

    研究各种Java技术(Springboot+Redis+Dubbo+Rocketmq) 京东技术 www.toutiao.im

    whatsmars-spring spring原理、集成及新特性 whatsmars-tomcat 模拟tomcat实现 whatsmars-dbrouter 分库分表实现 whatsmars-worker 多实例任务调度 whatsmars-dubbo Dubbo demo whatsmars-mq rocketmq,activemq ...

    WCF技术在分布式电网分析平台中的应用 (2014年)

    而分布式技术CORBA,.NET Remoting,Web Service等技术复杂,应用性受到限制.首先对平台架构进行分析,对WCF技术的原理进行总结,结合电网平台数据接口通用性要求,建立数据接口模型,编写WCF服务端和客户端测试...

    云计算第二版

    3.8.9 Alexa Web服务 128 3.9 AWS应用实例 129 3.9.1 在线照片存储共享网站SmugMug 129 3.9.2 在线视频制作网站Animoto 130 3.10 小结 131 习题 131 参考文献 131 第4章 微软云计算Windows Azure 135 4.1 微软云计算...

    亮剑.NET深入体验与实战精要2

    7.8 实现异步调用Web Service 297 7.9 如何保证Web Service的安全 299 7.9.1 通过SoapHeader来增强 Web Service的安全性 299 7.9.2 采用SSL实现加密传输 302 7.9.3 访问IP限制 315 7.10 Web Service开发中需要注意的...

    亮剑.NET深入体验与实战精要3

    7.8 实现异步调用Web Service 297 7.9 如何保证Web Service的安全 299 7.9.1 通过SoapHeader来增强 Web Service的安全性 299 7.9.2 采用SSL实现加密传输 302 7.9.3 访问IP限制 315 7.10 Web Service开发中需要注意的...

    网络安全原理与应用:拒绝服务攻击与防范.pptx

    了解拒绝服务攻击的基本原理; 了解常见拒绝服务攻击的防范方法; 拒绝服务攻击与防范 一、什么是拒绝服务攻击 拒绝服务攻击:Denial of Service(DoS),是一种以服务器资源为目标的,导致服务器不能正常提供服务的...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    5.5.3 RMI的基本原理 220 5.6 同时作为客户端和服务器的 RMI程序 222 5.6.1 开发客户端程序 222 5.6.2 开发服务器端程序 223 5.7 本章小结 225 第6章 利用JMS实现企业消息处理 226 6.1 面向消息的架构和JMS概述 227 ...

    集群好书《高性能Linux服务器构建实战》 试读章节下载

    14.2 heartbeat + DRBD高可用性方案的实现原理 14.3 部署MySQL高可用高扩展集群 14.3.1 配置之前的准备 14.3.2 DRBD的部署 14.3.3 DRBD的配置 14.3.4 DRBD的维护和管理 14.3.5 DRBD的性能优化 14.3.6...

Global site tag (gtag.js) - Google Analytics