`

web service(3)-webservice与SOA、webservice与ejb

阅读更多
Web Service与SOA web service是解决跨平台(OS)、跨语言(java、C等)系统间协作的一种技术方案。既然是跨语言,所以其语言定义规范(WSDL)里没有“类”、“方法”这样面向对象语言才会有的概念。而是有“端口”(在java中可以视为“类”)和“操作”(在java中可以视为“方法”)这种概念。web service也没有严格的客户端、服务端的概念。因为系统间来来回回传输的数据都是XML,而且双方可以互相发起访问。 XML可以视为web service中类似java序列化这样的机制。因为java序列化的目的主要是保存和传输。但是web service并不只是支持java语言,或者说web service并不在乎对接系统是什么语言,只要交换的数据可以保存和传输就可以了。而XML是现今最佳也最广泛的选择。 需要强调的是,web service作为一种技术解决方案,关注的是业务,而不是事务。因为要在不同OS平台和不同语言的系统间实现事务的原子性比较困难(或者说很麻烦)。如果非要实现这样的功能,需要借助第三方的事务管理器。可以参见IBM文档库关于WS-Transaction的相关内容(这个是中文的,就是内容太少了点)。国内web service的典型用例是天气预报和网银。 SOA,Service Oriented Architecture,面向服务的体系结构。可以视为阐述web service的总体结构的一种概念。在IBM的网站中,可以看到SOA和Service是放在一起做为一个主题介绍的。前文所述的ESB概念其实也是SOA概念图的成员之一(参考前文)。严格说来,SOA的层次比web service更高。关于SOA与web service的关系,有位仁兄在《SOA不是Web Service》里说得很好,“SOA不是Web Service,Web Service是目前最适合实现SOA的技术”。 “因为现在几乎所有的SOA应用场合都是和Web Service绑定的,所以不免有时候这两个概念混用。不可否认Web Service是现在最适合实现SOA的技术,SOA的走红在很大程度上归功于Web Service标准的成熟和应用普及。因为现在大家基本上认同Web Service技术在几方面体现了SOA的需要: 首先是基于标准访问的独立功能实体满足了松耦合要求:在Web Service中所有的访问都通过SOAP访问进行,用WSDL定义的接口封装,通过UDDI进行目录查找,可以动态改变一个服务的提供方而无需影响客户端的配置,外界客户端是根本不关心访问服务器端的实现。 其次,适合大数据量低频率访问符合服务大颗粒度功能:基于性能和效率平衡的要求,SOA的服务提供的是大颗粒度的应用功能,而且跨系统边界的访问频率也不会象程序间函数调用那么频繁。通过使用WSDL和基于文本(Literal)的SOAP请求,可以实现能一次性接收处理大量数据。 最后,基于标准的文本消息传递为异构系统提供通讯机制:Web Service所有的通讯是通过SOAP进行的,而SOAP是基于XML的,XML是结构化的文本消息。从最早的EDI开始,文本消息也许是异构系统间通讯最好的消息格式,适用于SOA强调的服务对异构后天宿主系统的透明性。 综合上述观点,Web Service不愧为当前SOA的最好选择。然而,就SOA思想本身而言,并不一定要局限于Web Service方式的实现。更应该看到的是SOA本身强调的是实现业务逻辑的敏捷性要求,是从业务应用角度对信息系统实现和应用的抽象。随着人们认识的提高,还会有新技术不断的发明出来,更好的来满足这个要求。就好像在核子裂变之后,人们又发现了威力更加强大的核子聚变。为了要有一个更高的角度来看待问题,SOA和Web Service还是不应该混为一谈。” Web Service与ejb web service和ejb都是应用程序远程调用方案的一种,但两者有着本质的不同: 1、web service主要关注于解决异构的问题,包括平台,编程语言等,可以说其关注的是分布式服务开发,控制层高,粒度大;而ejb可以看作是一个分布式编程平台,通过Container和Component的抽象,简化了应用的开发,发布和调用,可以说其关注的是分布式组件开发,粒度小。 2、web service可以说是业界的一个规范,是不同编程语言异构系统进行通信的标准。而ejb只是属于J2EE规范中的一部分。 3、ejb底层用rmi-iiop协议进行通信,防火墙会阻止;web service是基于http协议进行通信,防火墙不会阻止。
分享到:
评论

相关推荐

    java webService 中文与英文教程

    1. WebService基础:介绍WebService的基本概念,包括WSDL(Web Service Description Language)和UDDI(Universal Description, Discovery, and Integration)。 2. JAX-WS入门:讲解如何使用JAX-WS创建一个简单的...

    针对SOA将EJB组件公开为业务服务(2)

    例如,`<webservice-description>`标签包含了服务的名称、WSDL文件位置,以及服务端点接口和服务实现Bean的引用,如`<service-endpoint-interface>`和`<ejb-link>`。 【EJB分层的重要性】 为了实现SOA的最佳实践,...

    精通soa基于服务总线的struts+ejb+webservice整合应用开发

    精通soa基于服务总线的struts+ejb+webservice整合应用开发 作者:梁爱虎 书中光盘内容:org.eclipse.jdt.ui_3.1.2.jar weblogic91.server axis

    ejb WebService

    【ejbWebService】是企业级Java Bean(Enterprise JavaBean)与Web服务相结合的技术,它允许开发者将EJB组件暴露为Web服务,使得不同系统间的交互变得更加便捷。在本文中,我们将深入探讨ejbWebService的核心概念、...

    web service axis1.4 jar

    Axis1.4可以与EJB(Enterprise JavaBeans)、Spring框架、JMS(Java Message Service)等其他Java技术无缝集成,扩大了Web服务的使用范围。 10. **性能优化**: 虽然Axis1.4相较于现代的Web服务框架(如Apache ...

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

    - **使用EJB(Enterprise JavaBeans)**,特别是Message Driven Bean(MDB),它可以作为Web Service的后台处理逻辑,处理异步消息。 随着技术的发展,J2EE平台也在不断进化,现在的Java EE 8已经更名为Jakarta EE...

    weblogic 的 soa 例子

    本文主要探讨的是如何在WebLogic 9 中实现SOA的一个具体例子,涉及的关键技术包括Java Web Service(JWS)、JSR-921、JSR-175 和 JSR-181。 **Java Web Service (JWS)** JWS 是Java 2 Platform, Enterprise ...

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

    Web服务(Web Service)是一种使应用程序能够以一种与平台无关且与编程语言无关的方式进行相互通信的新技术。其核心是通过网络,通常是以HTTP为基础的网络,使用标准化的XML消息格式来实现服务请求和服务响应的交互...

    基于SOA架构的设计规范.pdf

    - 接口封装:根据访问频率和数据量封装成Webservice、EJB、JMS等接口。 - 异常处理:服务平台能够将异常信息格式化为XML消息并发送给调用方。 - 大数据传输:使用SOAP with attachments协议处理大数据块。 - **...

    JAX-WS_Java API for XML Web Services

    3. **服务端实现(Service Endpoint Implementation)**:开发者通过实现服务接口来创建服务端点,这些接口定义了Web服务提供的操作。 4. **服务发布(Service Publishing)**:通过简单的API调用来发布服务,使其...

    IBM WebSphere Application Server V7.0 Web Services Guide

    #### 二、WebSphere、Web 服务与 SOA 的关系 - **服务导向架构(SOA)**:SOA 是一种设计方法论,它将应用程序的不同功能单元通过服务接口和契约进行定义、封装、描述和管理。这些服务可以被组合起来形成更大的业务...

    Java EE 学习方向

    - WebService、SOA(Service-Oriented Architecture)、ESB(Enterprise Service Bus)、OSGI(Open Service Gateway Initiative)、EAI(Enterprise Application Integration)等架构概念。 - **面向资源架构** ...

    精通EJB3.0

    `@WebService`注解可以将EJB3.0 Bean暴露为Web服务,而`@WebServiceClient`则可以用来消费这些服务。 ### 7. 异步处理与消息驱动Bean EJB3.0引入了消息驱动Bean(MDB),它们可以从消息队列中接收和处理消息,支持...

    flex教程

    - **SOA环境下的集成**:在上一章中提到,Flex可以与暴露为一系列Web服务的业务逻辑进行集成。这种方式下,Flex应用可以作为一种松散耦合的方式调用远程机器上的Web服务。 - **紧密耦合集成**:Flex应用也可以采用更...

    metro-jax-ws-jaxws221x.zip

    3. **WSDL(Web Service Description Language)**:定义服务的接口和消息交换模式,由JAX-WS自动生成或手动编写。 4. **SOAP绑定**:处理客户端与服务器之间的SOAP消息传输。 客户端则利用JAX-WS的`javax.xml.ws....

    SOA通用架构.docx

    Service-Oriented Architecture (SOA)是一种软件设计和开发方法,其核心思想是将复杂的系统分解为一系列可复用的服务,这些服务之间通过标准的接口进行交互,从而实现松耦合和高灵活性。这种架构允许不同系统间的...

    Web部分笔试题.doc

    MVC(Model-View-Controller)是一种广泛应用于Web开发中的设计模式,它有助于分离应用的业务逻辑、数据处理与用户界面展示。这种分离能够提高代码的可维护性、可扩展性和可读性。 - **M (Model):** 模型层负责处理...

    高级Java软件架构师学习计划

    - **学习目标**:理解和应用Web Service和SOA架构。 - **具体内容**:学习WebService的基本原理和SOA架构的设计。 - **预期成果**:能够基于WebService开发分布式应用。 - **统一建模语言UML、JUDE设计工具** -...

Global site tag (gtag.js) - Google Analytics