开发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 ...
随机推荐
- zookeeper原理解析-客户端与服务器端交互
Zookeeper集群中server数量总是确定的,所以集群中的server交互采用比较可靠的bio长连接模型:不同于集群中sever间交互zookeeper客户端其实数量是未知的,为了提高zooke ...
- 2016福州大学软件工程Beta阶段团队作业成绩汇总
1.评分规则 本次Beta阶段团队作业评分方法如下: 团队得分=[[7次scrum过程评分+(小组互评得分+教师评分)/2]/2],其中过程.小组.教师各30分 说明:由于没有规定提交团队贡献比,因此 ...
- AnjularJS系列3 —— 数据的双向绑定
第三篇,双向的数据绑定 数据绑定是AnguarJS的特性之一,避免书写大量的初始代码从而节约开发时间 数据绑定指令提供了你的Model投射到view的方法.这些投射可以无缝的,毫不影响的应用到web应 ...
- 判断iframe加载完成
一.js判断 var parFrame = document.getElementById("oIframe"); if(parFrame.attachEvent){ parFra ...
- JavaScript数据存取的性能问题
JavaScript中四种基本的数据存取位置: 字面量:只代表自身 字符串.数字.布尔值.对象.函数.数组.正则,以及null和undefined 快 本地变量:var定义的 快 数组元素 ...
- cas单点登录搭建
Cas Server下载:http://developer.jasig.org/cas/ Cas Client下载:http://developer.jasig.org/cas-clients/ 测试 ...
- php如何防止图片盗用/盗链的两种方法(转)
图片防盗链有什么用? 防止其它网站盗用你的图片,浪费你宝贵的流量.本文章向大家介绍php防止图片盗用/盗链的两种方法 Apache图片重定向方法 设置images目录不充许http访问 Apache服 ...
- redis 基础知识
1.安装 sudo apt-get install redis-server 检查Redis服务器程序,执行:ps -aux|grep redis 命令检查Redis服务器状态,执行:netstat ...
- 弹框控件 UIAlertView UIActionSheet
// 创建弹框 从底部弹出,一般用于危险操作 UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:@"恭喜通关" ...
- FA模块的10个API范例
CREATE OR REPLACE PACKAGE BODY cux_fa_do_pkg IS --一.资产新增 PROCEDURE do_addition IS l_trans_rec ...