`
dzqlhh
  • 浏览: 61137 次
社区版块
存档分类
最新评论

J2EE的Web服务原理和体系结构慨述

阅读更多
Web服务(Web Services)是目前程序设计领域中的一项新技术,是一个崭新的分布式计算模式,在不同系统平台之间具有互操作性,通过因特网,实现不同应用程序之间的远程过程调用。Web服务使用基于XML 的消息处理作为基本的数据通讯方式,消除使用不同组件模型、操作系统和编程语言的系统之间存在的差异,使异类系统能够作为单个计算网络协同运行。开发人员可以用象过去在创建分布式应用程序时使用组件一样的方式创建将来自各种源的Web服务组合在一起的应用程序。 Web服务是建立在一些通用协议的基础上,如HTTP,SOAP,XML,WSDL,UDDI等。这些协议在涉及到操作系统、对象模型和编程语言的选择时,没有任何倾向,因此将会有很强的生命力。Web服务是一种不涉及具体平台和语言的软件架构,但是开发人员必须选择一种语言来具体开发Web服务。本文选用Java语言,说明J2EE的Web服务体系结构。

<iframe align="right" marginwidth="0" marginheight="0" src="http://images.chinabyte.com/adjs/iframe-pip/y-software-pip.html" frameborder="0" width="360" scrolling="no" height="300"></iframe>  一、J2EE的Web服务工作原理

  1、J2EE的Web服务模型

  大家知道,普通Web服务的系统架构是面向服务的,服务的发布的发现是Web系统架构中首先要解决的主要问题。在java编程环境下,Web 服务通过JAXR(java API for XML Registries)实现自身的发布。客户使用同样的JAXR API寻找服务,使用JAX-RPC绑定和调用Web服务。如下图1所示:



图1

  2、J2EE在消息发送层(SOAP)和传输协议层(HTTP)的工作过程

  用下图2可以说明,在具有Web服务功能的应用程序服务器上运行着一个标准的J2EE应用程序。在图中的左上角是Java,C++或C#客户机,现在,这个应用程序发出SOAP请求。该SOAP请求把Web服务操作封装在一个XML有效载荷中,然后,通过HTTP协议传送。在Web服务端,传输层继续把该调用输送剑SOAP服务端,然后,服务器就调用相应的已经展现为Web服务的J2EE功能。Web服务产生的任何响应都会被再编码成为一个SOAP响应,并通过HTTP协议传输回客户机去。


图2

  从图2中可以清楚地看出,利用消息发送层(Messaging layer) (SOAP)和传输协议层(Transoort Network laver) (HTTP)就可以完成应用程序内部的通信。应用程序内部通信的问题通过一些销售商的专有技术(例如CORBA和DCOM等)以前就已经解决了。这些技术操作起来很麻烦,并且,也不能通过防火墙。因此,现在我们用SOAP,通过简单的XML这个开放式的标准,就可以有效地实现应用程序内部的通信,不会使自己锁定在某个销售商的专有机制上。

  3、J2EE在消息发送层(SOAP)、传输协议层(HTTP)和Web服务描述(WSDL)的工作过程

  图3显示的是对前面所介绍的Web服务模式的简单扩展;在图3中只需要在两个应用程序之间传递的SOAP消息之间存在着紧密的耦合。现在,有了一个附加的Web服务描述层,服务提供者就可以用建立和发行WSDL文档的方法来描述他们的Web服务。WSDL文档中不仅包含有该Web服务的抽象定义,而且也包含有实现(绑定)该Web服务的细节。这意味着服务的消费者(即例子中的客户应用程序)需要得到WSDL文档,它不仅可以从这个文档中得到包括Web服务的消息和数据类型的不同操作,而且还能够重新得到该Web服务的终端(例如URL),SOAP消息可以在终端上交换。如果J2EE服务是通过SMTP消息展示功能的,那么WSDL文档也会描述这一点。


图3

  4、J2EE使用UDDI、WSDL和SOAP三种技术的工作过程

  在图4中假设服务提供者已经决定把某项商业功能展示成Web服务。该Web服务驻留在一个基于Java的Web服务系统中。通过图中的顺序步骤看一下整个的工作机制。


图4

  1)服务提供者的第一步是编写WSDL文件。当前市场上有好几种工具,可以帮助我们用现有的对象定义产生出WSDL文件。然后,需要发布关于它自己的信息,把商业和这项Web服务的技术规范作为-个WSDL文件发布到中心UDDL注册表。这样,用写WSDL文件的方法使得Web服务的描述占据了服务描述层。但是,在Web服务栈中我们看到,发布的商业信息和WSDL文件表现的是Web服务栈中的服务发布层。

  2)服务消费者应用程序可以发现它有兴趣使用的Web服务。发现不仅涉及到要搜索商业和它的服务,而且还要下载WSDL文件中所提到的技术规范。发现的步骤对应于Web服务栈中的服务发现层。

  3)最后,服务消费者应用程序用WSDL文件来确定,为了与服务提供者的Web服务通信,需要传送哪些消息,并且它还要决定绑定信息。为了达到这个目的,绑定信息就是HTTP上的SOAP。这个步骤对应于Web服务栈中的XML消息和传输层。
二、J2EE的基本Web服务体系结构

  下图5是对J2EE系统的Web服务体系结构整体描述。


图5

  商业功能性

  上图是一个Web服务提供者展示他们Web服务的功能。重要的是要理解,商业机构不会选择他们现有的基于J2EE应用程序,并把他们的EJB展示为Web服务的。虽然用Web服务平台或目前市场上出售的工具在技术上是可行的,但是在商业上这样做是没有现实意义,因为商业不在组件中展示方法调用。在商业上他们展示的是商业功能,这些功能会转换成一系列执行该商业功能所需要的协调动作。在即时返回服务消费者的响应中可能有也可能没有结果,还可能需要几天的时间才能完成。商业也需要通过多层开发系统的功能性,需要记住几个安全性等级和由不同的内部应用程序使用。例如,假设有一个在因特网上售书的商业机构G,比方说,他们决定在因特网上把一项在线订书服务展示为Web服务。当顾客下订单的时候,订单信息在商业企业G内部启动了一个交易过程。这个交易过程需要执行多项行动,例如,检查图书订单的总量或执行一个财务事务处理过程。这涉及到顾客把钱划到商业G账上,最后,给运输部门送一份消息,让他们把书送给顾客。从图5中的J2EE系统功能图可以看出,这个交易过程可能需要与各种EJB发生交互作用,而这反过来又与企业信息系统或跨机构的数据库产生交互作用。在所有这些交易过程中,交易的完整性以及顾客想从认真企业级的交易过程中得到的任何其他标准都需要保存起来。

  Web服务系统

  Web服务系统类似于J2EE中的容器(container)的概念。它给执行Web服务提供了一个运行时间环境。为了进行讨论的目的,完全可以说在较高的级别上Web服务系统会包含一个Web服务运行时间环境,该运行时间环境能接受SOAP请求并把它们映射到对应的Java组件,即在商业功能性中共享的Java类或EJB。同时,从该商业过程中收集的所有结果都是可靠的,并被封装在SOAP响应中,送回Web服务的客户机。

  Web服务器

  Web服务器是从Web服务客户机发出SOAP请求到服务提供者收到这个请求的过程中最主要的网关。Web服务器通过HTTP协议进行通信,通常在端口80收听。因为SOAP消息需要在HTFP上传输,所以它很适合进入我们的XML消息层和传输层。我们在图5上应当注意到的一件重要事情是,事实上WSDL文件是存放在Web服务器上的,因为这样它给服务的消费者提供了全球性的可访问机制,使他们能查阅WSDL技术规范。因此,如果我们提供了一个在UDDI注册表作为URL引用的WSDL文件的话,服务消费者就可以很容易地通过URL找到该WSDL,并对它进行转换,以确定该机构支持的服务和服务的终端。

  Web服务器还在整个系统中执行另外一种重要功能。这种功能会把适当的SOAP请求转送到Web服务系统去。

  Web服务客户机

  Web服务客户机是Web服务的消费者。由于Web服务是不确定平台的,因此用目前任何一种主流编程语言写成的客户机都可以调用Web服务。例如,它可能是一个Java程序,一个Visual Basic程序或者一个C++程序。Web服务客户机要做的第一步工作是查阅UDDI信息,查找能提供它感兴趣的Web服务的商业。从UDDI信息中重新得到WSDL URL引用,并从可公开访问的URL下载WSDL文档。通常,URL指的就是从图5中的Web服务器。一旦得到了WSDL文件,服务消费者就有了调用该Web服务所需要的技术信息。技术信息我们指的是该Web服务中的方法。该方法需要的参数,该方法的数据类型和终端信息。可以根据WSDL文件产生SOAP客户代码,然后再把产生的SOAP客户代码嵌入到客户机巾,以便调用该Web服务。


分享到:
评论

相关推荐

    J2EE体系架构介绍.ppt

    其中,Web 服务器是 J2EE 体系架构的核心组件之一,负责处理客户端的请求和响应。常见的 Web 服务器包括 Apache、Tomcat、WebSphere 等。 HandsOnJ2EE 应用模型 J2EE 应用模型是指基于 J2EE 平台所构建的应用程序...

    基于J2EE体系结构实现网上购物系统.pdf

    ##### 2.1 J2EE体系结构概述 J2EE是由Sun Microsystems推出的Java 2规范的企业版,旨在通过Java 2平台简化多级企业解决方案的开发、部署和管理过程中的复杂问题。它为开发EJB、Servlet和JSP等Web应用提供了标准的...

    基于J2EE的多层服务体系架构.doc

    面向服务的体系结构(SOA)是一种分布式软件设计模式,它强调服务的松散耦合和互操作性,以促进系统的灵活性和可重用性。SOA的核心组件包括服务、动态发现和消息传递。 1. **服务**:在SOA中,服务是可以通过网络...

    WebLogic Server J2EE 体系结构简介 .rar_J2EE_weblogic

    **J2EE体系结构概述** J2EE体系结构主要分为三层:表现层、业务逻辑层和数据访问层,也称为客户端层、应用服务器层和数据库层。 1. **表现层**:这是用户与应用交互的地方,通常包括Web浏览器或瘦客户端应用程序。...

    基于WebServices的J2EE和_NET架构比较

    随着WebServices的兴起,J2EE逐渐将其纳入其体系结构,使之能够支持基于XML的WebServices,实现与各种平台和语言编写的WebServices的交互。 ### .NET与WebServices .NET框架由Microsoft开发,从一开始就被设计为...

    《J2EE体系结构及程序设计》课程标准2018

    《J2EE体系结构及程序设计》课程是一门专业课程,旨在计算机科学与技术专业和软件工程专业的学生中培养Web网站设计、Web数据库应用程序设计以及MVC建模等技能。该课程对学生的计算机应用设计技能和学习有着重要影响...

    精通Eclipse Web开发--Java体系结构、工具、框架及整合应用

    ### 精通Eclipse Web开发—Java体系结构、工具、框架及整合应用 #### Eclipse在J2EE开发中的角色及其扩展插件Lomboz Eclipse作为一个强大的集成开发环境(IDE),尤其受到Java开发者的青睐。对于进行企业级应用...

    J2EE 三层结构讲解

    ### J2EE 三层结构详解 #### 一、引言 在现代软件开发领域,Java 2 Platform, Enterprise Edition(J2EE)以其强大的企业级应用支持能力而闻名。本书旨在帮助读者深入理解J2EE的三层架构模型,并通过具体的案例来...

    基于J2EE的分布式Web GIS

    为了解决上述问题,分布式Web GIS逐渐向更为先进的体系结构和技术转变,其中,基于J2EE(Java 2 Platform, Enterprise Edition)的分布式Web GIS成为新的研究热点。J2EE提供了一套全面的企业级应用开发框架,支持...

    基于J2EE体系结构的保险电子商务系统的设计研究

    #### 二、J2EE体系结构概述及其在保险业的优势 J2EE(Java 2 Platform Enterprise Edition)是Sun Microsystems于1999年推出的企业级计算平台规范。它为开发复杂的企业级应用提供了全面的支持,包括但不限于Web服务...

    J2EE Tutorial中文版

    - J2EE概述和体系结构 - 开发环境的搭建,如使用Eclipse或NetBeans IDE - Servlets和JSP的生命周期与API - JavaBeans的创建和使用 - EJB的原理和开发,包括无状态会话Bean、有状态会话Bean、实体Bean和消息驱动Bean ...

    基于J2EE应用框架的WebService的研究和实现

    基于J2EE应用框架的Web服务体系结构 J2EE(Java 2 Platform, Enterprise Edition)是一套针对大型企业级应用开发的标准,提供了丰富的API和服务,包括但不限于EJB(Enterprise JavaBeans)、JMS(Java Messaging ...

    EJB编程及J2EE系统架构和设计

    J2EE是一种利用Java 2平台简化企业级解决方案开发、部署和管理复杂性的体系结构。它基于核心Java平台,并在此基础上增加了对企业级应用开发的支持。J2EE的主要特点包括: - **平台独立性**:“编写一次、随处运行”...

    基于J2EE四层体系框架系统的研究与实现

    综上所述,本文提出了一种基于J2EE的四层体系结构方案,旨在通过合理的分层设计提高系统的可扩展性和可维护性。此外,还特别强调了在构建此类系统时需要考虑的安全性问题,并提出了具体的解决方案。这对于未来类似...

    J2EE Struts 概述

    ### J2EE Struts 概述 #### 一、预备知识 ##### 1、Framework 随着软件开发领域的不断发展,特别是针对多层软件项目的开发,**框架(Framework)** 的概念变得日益重要。它指的是那些经过精心设计、具备良好可重用...

    基于J2EE的Web应用的MVC架构实现.pdf

    它包含了多种组件和服务,如EJB(Enterprise JavaBeans)、Servlet、JSP(Java Server Pages)等,能够支持大型、复杂的Web应用开发。 将MVC设计模式应用于J2EE平台,可以显著提高Web应用的结构清晰度和可维护性。...

Global site tag (gtag.js) - Google Analytics