- What is a web service?
http://webservicex.net/ws/default.aspx
WebService是一种跨编程语言和跨操作系统平台的远程调用技术。
跨编程语言 : 服务端程序采用java编写,客户端程序则可以采用其他编程语言编写,反之亦然!
跨操作系统平台 : 服务端程序和客户端程序可以在不同的操作系统上运行。
远程调用 : 一台计算机a上的一个程序可以调用到另外一台计算机b上的一个对象的方法。
譬如,银联提供给商场的pos刷卡系统,商场的POS机转账调用的转账方法的代码其实是跑在银行服务器上。
再比如,amazon,天气预报系统,淘宝网,校内网,百度等把自己的系统服务以webservice服务的形式暴露出来,让第三方网站和程序可以调用这些服务功能,这样扩展了自己系统的市场占有率,往大的概念上吹,就是所谓的SOA应用(SOA : service-oriented architecture,面向服务的体系结构)。
- Why do we use web service?
当前的应用程序开发逐步的呈现了两种迥然不同的倾向:一种是基于浏览器的瘦客户端应用程序,一种是基于浏览器的富客户端应用程序(RIA : Rich Internet Applications),当然后一种技术相对来说更加的时髦一些(如现在很流行的Html5技术),这里主要讲前者。
基于浏览器的瘦客户端应用程序并不是因为瘦客户能够提供更好的用户界面,而是因为它能够避免花在桌面应用程序发布上的高成本。发布桌面应用程序成本很高,一半是因为应用程序安装和配置的问题,另一半是因为客户和服务器之间通信的问题。
- What is XML?
<customer>
<age>22</age>
<Name>harry</Name>
<Income>200</Income>
<insurance>car</insurance>
</customer>
- Famous protocols used in web services
SOAP/REST - Implement webservices in secure way
SOAP : (Simple Object Access Protocol)简单对象访问协议 (说白了就是xml文档传输)
(1) 暴露操作
(2) 基于XML
(3) XML定义了请求和响应的具体数据,要进行的操作等等
REST : (Rerepresentational State Transfer)表示性状态转换
(1) 暴露资源
(2) 可以基于JSON,XML,HTML
(3) 利用HTTP请求方式GET,POST,PUT,DELETE约定事务操作
SOAP Protocol - how to write XML
HTTP Protocol - send the XML
- What is WSDL and WADL?
两者都是用于描述基于HTTP 的 Web 应用程序接口
1.WSDL(Web Services Definition Language)是面向接口的描述, 基于SOAP
http://www.webservicex.net/CurrencyConvertor.asmx?WSDL
2.WADL(Web Application Description Language )是面向资源的描述, 基于REST
WADL: The REST answer to WSDL
In order to obtain metadata description capabilities for REST, like the ones WSDL gives to SOAP, developers have created WADL (Web Application Description Language).
- Java OR groovy?
Groovy is an object-oriented programming language for the Java platform. It is a dynamic language with features similar to those of Python, Ruby, Perl, and Smalltalk. It can be used as a scripting language for the Java Platform, is dynamically compiled to Java Virtual Machine (JVM) bytecode, and interoperates with other Java code and libraries. Groovy uses a Java-like curly-bracket syntax. Most Java code is also syntactically valid Groovy, although semantics may be different.