开发webservice的方式
什么是 web 服务?
web 服务是对应用程序功能的网络访问接口,它是使用标准 Internet 技术构建的。
我们目前看到的部署在 Internet 上的 web 服务都是 HTML 网站。其中,应用程序服务,即发布、管理、查找、检索内容的机制,是通过使用标准协议和数据格式访问的:HTTP 和 HTML。接受此标准的客户端应用程序(web 浏览器)能与应用程序交互,执行如订购图书、发送贺卡及阅读新闻的任务。由于基于标准的接口提供抽象机制,因此应用程序服务是否用 Java 编写以及浏览器是否用 C++ 编写,或者应用程序部署在 Unix 系统而浏览器部署在 Windows 系统上,这些都没有关系。Web 服务具有与平台无关的跨平台互操作性。互操作性是实现 web 服务的主要获益。分别基于 Java 和 Microsoft Windows 的解决方案通常很难集成,但应用程序与客户端之间的 web 服务层可大大消除其隔阂。
在发布webservices时,通常有两种方法,即代码优先和契约优先;前者是通过写编写程序代码,然后自动生成wsdl文件。后者是先编写wsdl文件,再生成服务端与客户端。网上大部分例子都是基于代码优先的,因为它们都有一共同的特征:都很简单
首先采用代码优先的缺点:
1、若服务发生了修改,wsdl文档也要随之发生改变,在软件开发过程中,其中一个首要原则就是:一个接口,一旦发布就应该长期保存不变,这样基于这个接口编写的客户端一旦开发完毕才无须由于接口的变化而进行调整。
2、代码优先方法也违背了基于SOAP的web服务中语言无关这一主题。若是契约优先,契约在最初已经定义完毕,那么设计实现语言可以保持一种开放性(使用C\C++、C#、Java等语言)。不受语言的限制。
所以如果是比较小的项目,几个接口比较简单,那么采用代码优先不失为一种省时省力的方法。但如果项目比较庞大,需要多方参与,那么最好采用契约优先,制定标准,统一接口。这样不会因为项目中的某一方更改功能或者需求频繁更改接口。
组织如何转向 web 服务
组织转向 Web 服务有三种主要方式。如下所述:
- 从头开始创建一个新的 web 服务(契约优先):开发人员创建服务的功能,并准备好描述服务的文档。
- 通过一个 web 服务来公开现有的功能(代码优先):此时,服务的功能已经有了。只需要实现服务描述。
- 对来自其他供应商或业务合作伙伴的 web 服务进行集成(中间相遇):有些情况下,在一个服务的基础上实现新服务比从头构建服务更加可行。在这些情况下,这些组织需要集成其他组织或业务合作伙伴的 Web 服务。
Web 服务概念的真正运用表现在第二个和第三个方法中,将我们引向可用于现有应用程序的其他 Web 服务和应用程序。
代码优先方法与契约优先方法
代码优先(自下而上)方法能让您通过公开现有应用程序来重用已有的投资。Credit Card System 是一个具有久经考验的商业价值的应用程序。竞争压力是转向 Credit Card System,以将其中的业务功能(如信用卡号验证)公开为 web 服务。实现类已经存在,需要做的就是创建 WSDL 并将类公开为 web 服务。
契约优先(自上而下)方法通常也称为 “纯方法”,这是从头构建新的 web 服务的正确方法。此方法首先是通过定义操作消息及类似信息构建 WSDL(契约)。然后构建端点接口,最后是实现类。
SOA(service-oriented architecture)
服务类型
- 基于实体的服务(如:用户实体User)
- 基于功能的服务(如:天气预报、邮件)
- 基于流程的服务(流程:业务流程)
- 业务流程 (BPM) ERP 不同业务系统之间的流程
- 工作流程(JBPM) 同一系统内
开发webservice的方式的更多相关文章
- java开发webservice的几种方式(转载)
webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis2方式 Axis是apache下一个开源的webservice开发 ...
- java开发webservice的几种方式
webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis2 Axis是apache下一个开源的webservice开发组件 ...
- JAVA开发WEBSERVICE方式
webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis2方式 Axis是apache下一个开源的webservice开发 ...
- C# 开发XML Web Service与Java开发WebService
一.web service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量 ...
- Java开发WebService的几种方法--转载
webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis2 Axis是apache下一个开源的webservice开发组件 ...
- Axis2开发WebService客户端 的3种方式
Axis2开发WebService客户端 的3种方式 在dos命令下 wsdl2java -uri wsdl的地址(网络上或者本地) -p com.whir.ezoffi ...
- JAX-WS + Spring 开发webservice
通过几天的时间研究了下使用jax-ws来开发webservice,看了网上的一些资料总结出jax-ws的开发大概分为两种. 以下项目使用的spring3.0,jar包可以到官网下载 第一种:使用独立的 ...
- delphi7开发webservice部属在apache服务器中 转
delphi7开发webservice部属在apache服务器中 delphi7 webservice apache 用Delphi7开发Web Service程序,并把服务程序放在apache We ...
- Spring集成XFire开发WebService
Spring是眼下最流行的JavaEE Framework,可是使用Spring的Spring-WS开发WebService却十分繁琐.XFire是一个简化WebService开发的开源项目.通过Sp ...
随机推荐
- Beta阶段测试报告
前端测试计划 具体测试项如下: 注册测试 登录测试 忘记密码测试 一次登录后自动登录测试 退出登录测试 编辑资料测试 查看好友测试 搜索好友测试 添加好友测试 获取当前正在游戏的房间测试 创建房间测试 ...
- PHP日志记录规范PSR-3
.note-content { font-family: "Helvetica Neue", Arial, "Hiragino Sans GB", STHeit ...
- js 中关联数组
以前都不知道这种写法叫做关联数组. 何为关联数组呢.通常的数组在填充时会隐式或者显示指定数组下标,但JS中数组可以以名字的形式为元素赋值,这就形成了关联数组. 例子 var p={ name:'dai ...
- Using Celery with Djang
This document describes the current stable version of Celery (4.0). For development docs, go here. F ...
- 将list集合的元素按照添加顺序的倒序进行排列取出
1.方法 Collections.reverse(list); 2.代码示例 /** * 从redis中将现场状态的记录全部取出 * @param aucId * @return */ @Reques ...
- 《JAVA与模式》之观察者模式
转自:http://www.cnblogs.com/java-my-life/archive/2012/05/16/2502279.html 在阎宏博士的<JAVA与模式>一书中开头是这样 ...
- 接口测试 postman
1.可以应用一些简单的测试点 2. api有多个域名,放进collection里面进行批量测试,点击左上角'runner'
- Python学习目录
日期 科目 状态 知识点 2016.12.10 subprocess OK 执行外部shell命令 2016.12.11 threading ? 线程池,Lock,适合IO密集型应用,信号量? 201 ...
- thinkphp 3.2 CronRunBehavior.class 使用
1.配置文件 在www\erp\App\Common\Conf tags.php <?php return array( 'app_begin' => array('Behavior\Cr ...
- JS-时间函数
/** * 日期范围工具类 */ var dateRangeUtil = (function () { /*** * 获得当前时间 */ this.getCurrentDate = function ...