第六章 远程服务调用和Service Locator

合集下载

Springboot+SpringCloud实战(微课版)06-第六章

Springboot+SpringCloud实战(微课版)06-第六章

1 SpringBoot整合数据源 2 SpringBoot整合Mybatis 3 Springboot整合JPA
4 SpringBoot整合Redis 5 Spring Boot整合Spring Security 6 Spring Boot项目打包并部署
SpringBoot整合Redis
Redis是一个开源使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据 库,它提供多种语言的API(Application Program Interface,应用程序接口)。熟悉Redis的读者可 能知道Redis主要在项目中提供缓存的作用,在业务访问并发量比较高的情况下,如果不做任何处理, 就会有大量的请求直接请求到我们的数据库,这样可能会“压垮”我们的数据库,所以就需要使用 Redis这样的中间件进行快速缓存解决来问题。
1 SpringBoot整合数据源 SpringBoot整合
2 Mybatis 3 Springboot整合JPA
4 SpringBoot整合Redis Spring Boot整合Spring
5 Security 6 Spring Boot项目打包并部署
SpringBoot整合数据源
数据源(Data Source),顾名思义,数据的来源,是提供某种所需数据的器件或原始媒体。在数 据源中存储了所有建立数据库连接的信息。在Spring Boot项目中配置了数据源之后,项目运行的 时候程序与数据库之间就会建立连接,这样我们就可以通过程序对数据库进行CRUD(Create、 Retrieve、Update、Delete的首字母组合,代表增加、查询、更新、删除操作)等数据操作。

java远程调用方法

java远程调用方法

java远程调用方法

Java远程调用方法是Java语言中比较重要的一种技术手段,它

可以使得不同的应用程序之间实现数据共享和通讯,从而提高了软件

的开发效率和性能。下面具体介绍Java远程调用方法的实现过程。

1. Java远程调用的概念

Java远程调用是指在分布式系统中,远程服务器上的一个Java

对象可以被本地的客户端程序所调用,并可以返回结果。使用Java远

程调用技术可以在不同的JVM进程间实现通信,无论是在同一台机器

的不同进程中或是在不同的机器上的进程间通信都可以使用Java远程

调用技术。

2. Java远程调用实现的步骤

(1)定义远程接口

准备和定义远程接口对象,这个接口对象是远程对象的标准,包括对

象的所有属性和方法,用于描述客户端和服务端通信的一套规则。

(2)实现远程接口

实现远程接口对象,这个对象主要负责实现与客户端程序之间的交互,包括定义接口的属性和方法,并实现这些方法的操作过程。

(3)注册远程接口对象

把远程接口对象注册到服务端,让客户端程序能够通过网络访问到。

(4)本地调用接口方法

在客户端程序中调用远程对象的方法,这个过程就像调用本地对象的

方法一样简单。

(5)实现序列化

序列化是Java远程对象调用中最为关键的一环,指的是将对象转换为

可以在网络上传输的二进制流的过程。Java中的对象必须先被序列化

之后,才能在网络上传输。

3. Java远程调用实现的优缺点

优点:Java远程调用技术可以使得不同的应用程序之间实现数据

共享和通讯,提高了软件的开发效率和性能,特别是分布式系统环境下,Java远程调用技术更有优势,可以简化系统设计,提高系统可维护性和拓展性。

servicelocatorfactorybean 原理

servicelocatorfactorybean 原理

servicelocatorfactorybean 原理servicelocatorfactorybean是Spring框架中的一个特殊的工厂Bean,它用于定位和获取其他Spring管理的Bean。在本文中,我将详细解释servicelocatorfactorybean的原理,并逐步回答有关它的问题。

一、什么是servicelocatorfactorybean?

在理解servicelocatorfactorybean的原理之前,我们需要先了解什么是工厂Bean。工厂Bean是一个特殊的Bean,它负责创建和返回其他Bean 的实例。servicelocatorfactorybean是Spring框架中的一个工厂Bean,它用于定位和获取其他Spring管理的Bean。

servicelocatorfactorybean是一个BeanFactory是一个BeanFactory,因为它实现了FactoryBean接口。这意味着当我们从容器中获取servicelocatorfactorybean时,实际上获取到的是它的getObject()方法返回的对象。

二、servicelocatorfactorybean的原理是什么?

servicelocatorfactorybean的原理可以从以下几个步骤来解释:

1. 实现FactoryBean接口:servicelocatorfactorybean实现了

FactoryBean接口。这意味着它必须提供getObject()方法,该方法返回需要定位的Bean。

webservice接口调用方法

webservice接口调用方法

webservice接口调用方法

Web服务(Web service)是指一个网络服务,通过互联网进行通信的应用程序接口(API),使用标准的HTTP协议进行数据传输和交互。它使用SOAP(Simple Object Access Protocol)来封装数据,以XML格式进行传递,可以在多种平台上进行调用,独立于编程语言和操作系统。

调用Web服务的方法如下:

1.确定服务地址和方法:首先要确定要调用的Web服务的地址和要调用的方法。通常,服务地址是一个URL(Uniform Resource Locator),可以在文档中找到。

2.创建SOAP请求:根据要调用的方法创建一个SOAP请求。SOAP 请求是一个XML文档,根据服务的定义,包含要调用的方法名和方法参数。可以使用各种编程语言和工具来创建SOAP请求,如Java的JAX-WS、Python的suds等。

3.发送请求:将创建的SOAP请求发送给Web服务。可以使用HTTP POST或其他协议将请求发送给服务的URL。请求与服务之间的通信是

通过HTTP协议完成的。

4.解析响应:接收到Web服务的响应后,需要解析响应的内容。

响应是一个XML文档,包含服务返回的数据。同样,可以使用各种编

程语言和工具来解析XML响应,提取所需的数据。

5.处理响应:根据需要处理响应的数据。可以将数据保存到数据

库中,显示在用户界面上,或者进行其他操作。

6.处理错误:如果在调用Web服务时发生错误,需要处理错误。

可能会遇到网络连接问题、服务不可用、权限问题等。根据错误类型,可以采取不同的处理方式,如重试请求、记录错误信息等。

rosservice serviceproxy使用例子 -回复

rosservice serviceproxy使用例子 -回复

rosservice serviceproxy使用例子-回复ServiceProxy是ROS中的一个重要工具,用于在ROS节点之间进行服务调用。本文将介绍ServiceProxy的使用方法,并以一个实际的例子来说明其具体应用。

一、什么是ServiceProxy?

在ROS中,ServiceProxy是一个客户端工具,用于调用运行在其他节点上的服务。它可以像调用本地函数一样调用远程节点中的服务,并接收返回结果。

ServiceProxy的工作原理很简单,它首先连接到指定的服务,然后发送请求,并等待服务节点的响应。一旦收到响应,ServiceProxy将返回结果给调用者。

二、ServiceProxy的使用步骤

1. 导入ServiceProxy类

首先,在Python脚本中导入ServiceProxy类。ServiceProxy类通常来自于rospy库。

python

import rospy

from rospy import ServiceProxy

2. 初始化ROS节点

在使用ServiceProxy之前,需要先初始化ROS节点,以便与ROS系统建立通信。

python

rospy.init_node('service_proxy_node')

3. 创建ServiceProxy对象

使用导入的ServiceProxy类创建一个ServiceProxy对象,并传入要调用的服务名称和服务类型。

python

service_proxy = ServiceProxy('service_name', ServiceType)

java webservice接口调用案例

java webservice接口调用案例

角色:文章写手

文章主题:Java WebService接口调用案例

尊敬的客户,

在您指定的主题下,我将为您撰写一篇关于Java WebService接口调用案例的文章。文章将从基础知识入手,逐步深入,以确保您能全面理解和灵活应用这一主题。

一、Java WebService基础知识

1.1 什么是Web Service

Web Service是一种基于XML标准来进行网络服务的应用程序接口(API)。它允许不同的应用程序在网络上互相通信,实现远程程序调用(RPC)。

1.2 Java中的Web Service

在Java中,可以使用JAX-WS(Java API for XML Web Services)来创建和调用Web Service。通过JAX-WS,可以方便地构建和部署基于XML的Web服务,实现跨评台、跨语言的通信。

二、Java WebService接口调用实例

2.1 创建Web Service客户端

在Java项目中引入WebService客户端的依赖包,并生成客户端代码。可以创建一个Java类作为WebService的客户端,调用WebService 提供的接口方法。

2.2 实现WebService接口调用

在客户端类中,可以实例化WebService的服务类,并通过该实例调

用WebService提供的方法。可以通过传递参数来调用WebService

接口,获取返回结果,并进行相应的处理和展示。

2.3 错误处理和异常处理

在进行WebService接口调用时,需要注意错误处理和异常处理。可

rpcserviceclient使用方法

rpcserviceclient使用方法

一、什么是rpcserviceclient

RPC(Remote Procedure Call)是一种远程过程调用的技术,允许客户端程序调用服务器上的程序而不需要了解底层的网络细节。rpcserviceclient是一个用于访问远程过程调用服务的客户端工具,它提供了方便的接口和方法来与远程服务器进行通信,并调用其提供的服务。

二、 rpcserviceclient使用方法

1. 导入依赖

在使用rpcserviceclient之前,需要在项目中导入相应的依赖。通常情况下,可以通过Maven或者Gradle等工具来管理依赖,并在项目的配置文件中添加rpcserviceclient所需的依赖项。

2. 创建rpcserviceclient实例

在项目中,可以通过以下方式来创建rpcserviceclient的实例:

```

RPCServiceClient rpcClient = new RPCServiceClient();

```

通过这个实例,可以实现与远程服务器的连接并进行通信。

3. 设置服务器位置区域和端口

在创建rpcserviceclient实例之后,需要通过以下方法来设置要访问的服务器的位置区域和端口号:

```

rpcClient.setServerAddress("127.0.0.1");

rpcClient.setServerPort(8080);

```

这里需要根据实际情况设置服务器的位置区域和端口号。

4. 创建请求参数

在调用远程服务时,通常需要传递一些参数给服务器。可以通过以下方法创建请求参数:

Android远程Service调用(RPC)实现步骤详解

Android远程Service调用(RPC)实现步骤详解

开始介绍之前,先看一下本例的界面:

Android远程Service调用

简介:

远程Service调用,是Android系统为了提供进程间通信而提供的轻量级实现方式,这种方式采用一种称为远程进程调用技术来实现,英文名全称是Remote Procedure Call,即RPC。

RPC简介:远程进程调用是指在一个进程里,调用另外一个进程里的服务。Android通过接口定义语言来生成两个进程间的访问代码。接口定义语言(Android Interface Definition Language,即AIDL)是Android系统的一种接口描述语言,Android编译器可以将AIDL文件编译成一段JA V A代码,生成相对的接口。

下面来详细介绍下如何通过RPC机制来达到远程进程调用的目的和步骤。

第一,我们要先弄清楚这是怎么样的一个流程。用通俗点语言来说,打个例子:比如公司A提供A服务,并且这种服务是对外开放的,也就是其他公司或者个人都可以通过某种方式来使用这种服务,公司B想要使用A公司的A服务,就以通过公司A编制的一种形式来使用它。用图来表示就是:

公司B通过公司A的某种形式来使用公司A提供的服务A

现在,我们可以说,进程B可以通过进程A提供的某种形式来使用进程A的服务A。这个过程就是RPC。

了解基本概念之后,我们可以开始进行RPC的实现步骤。下面我们分点来说明实现RPC 的步骤。

第一、创建AIDL文件。这个文件和普通的JA V A文件差不多,只不过后缀名是.aidl。

这个文件相当于一个接口,里面要声明一些你想对外提供服务的方法,也就是

webservice方法调用

webservice方法调用

webservice方法调用

【实用版3篇】

《webservice方法调用》篇1

Web 服务是一种跨平台的远程调用技术,它允许您通过互联网调用其他计算机上的程序方法。Web 服务基于XML 和HTTP 协议,可以使用各种编程语言(如Java、C#、PHP 等)实现。调用Web 服务的方法通常有以下几种:

1. 直接使用HTTP 请求调用Web 服务:例如,使用Python 的`requests`库或Java 的`HttpURLConnection`类,发送HTTP 请求到Web 服务的地址,获取响应结果。这种方法比较简单,但需要手动处理请求和响应的数据格式。

2. 使用Web 服务框架调用:各种编程语言都提供了相应的Web 服务框架,如Java 的`Axis`、`C#`的`System.Web.Services`等。这些框架可以帮助您生成客户端代理类,方便地调用Web 服务。您只需要在自己的程序中引用这些代理类,然后调用对应的方法即可。

3. 使用Web 服务注册表:有些Web 服务提供了注册表,用于存储客户端访问凭证和地址等信息。您可以使用这些注册表来调用Web 服务。例如,使用Java 的`LSAPI`库,访问Windows 系统的Web 服务注册表。

4. 使用中间件调用:有些场景下,您可能需要使用中间件(如企业服务总线ESB)来调用Web 服务。中间件可以实现请求转发、负载均衡、安全认证等功能,方便您更灵活地调用Web 服务。

总之,调用Web 服务的方法因语言、框架和具体实现而异,但基本原理都是基于HTTP 协议发送请求,获取响应结果。

SpringCloud远程服务调用实战笔记

SpringCloud远程服务调用实战笔记

SpringCloud远程服务调⽤实战笔记

笔记

在微服务中,若想要使⽤远程调⽤,需要引⼊spring-cloud-starter-openfeign(在使⽤注册中⼼的环境下)

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-openfeign</artifactId>

<version>xxx</version>

</dependency>

由于open-feign是声明式的远程调⽤,所以需要编写⼀个接⼝,并且告诉SpringCloud这个接⼝需要调⽤远程服务。这个接⼝我放在公共模块下的feign中。

package mon.feign;

import org.springframework.cloud.openfeign.FeignClient;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestParam;

import mon.utils.R;

import java.util.Map;

@FeignClient("gulimall-coupon")

@RequestMapping("/coupon/coupon")

网络应用技术开篇-第06章 网络服务和服务器

网络应用技术开篇-第06章 网络服务和服务器


页面重要性

但Google除了看投票数(链接数)以外,对投 票者(链接的页面)也进行分析。「重要性」 高的页面所投的票的评价会更高,因为接受这 个投票页面会被理解为「重要的物 品」。从新 浪、雅虎、微软的首页都有我网页的三个链接 的话,可能比我在其他网站找三十个链接还强。 如果还有人不理解这个原理,就去想想有句成 语叫:三人成 虎。如果有三个人都说北京大街 上有老虎,那么许多人会认为有老虎,如果这 三个人都是国家领导人的话,那么所有人都会 认为北京大街上有老虎。

元搜索引擎
元搜索引擎在接受用户查询请求时,同时在其他多个引擎上进行搜索,并将结果返回给用户。 著名的元搜索引擎有InfoSpace、Dogpile、Vivisimo等(元搜索引擎列表),中文元搜索引擎 中具代表性的有搜星搜索引擎。
Google 技术

而传统的搜索引擎在很大程度上取决于 文字在网页上出现的频率。Google 使用 PageRank™ 技术检查整个网络链接结构, 并确定哪些网页重要性最高。然后进行 超文本匹配分析,以确定哪些网页与正 在执行的特定搜索相关。在综合考虑整 体重要性以及与特定查询的相关性之后, Google 可以将最相关最可靠的搜索结果 放在首位。
WWW浏览器

1.WWW浏览器:WWW的客户程序 2.WWW浏览器的主要作用:浏览WWW 服务器中的Web页面

Service知识点整理

Service知识点整理

Service知识点整理

Service简单概述

Service(服务)是一个一种可以在后台执行长时间运行操作而没有用户界面的应用组件。服务可由其他应用组件启动(如Activity),服务一旦被启动将在后台一直运行,即使启动服务的组件(Activity)已销毁也不受影响。此外,组件可以绑定到服务,以与之进行交互,甚至是执行进程间通信(IPC)。例如,服务可以处理网络事物、播放音乐、执行文件I/O或与内容提供程序交互,而这一切均可在后台进行。

Service基本上分为两种形式:

启动

当应用组件(如Activity)通过调用startService()启动服务时,服务即处于“启动”状态。一旦启动,服务即可在后台无限期运行,即使启动服务的组件已被销毁也不受影响。已启动的服务通常是执行单一操作,而且不会将结果返回给调用方。例如,它可能通过网络下载或上传文件。操作完成后,服务会自动停止运行。

绑定

当应用组件通过调用bindService()绑定到服务时,服务即处于“绑定”状态。绑定的服务提供了一个客户端-服务器接口,允许组件与服务进行交互、发送请求、获取结果,甚至是利用线程间通信(IPC)跨进程执行这些操作。仅当与另一个应用组件绑定时,绑定服务才会运行。多个组件也可以同时绑定到该服务,单全部取消绑定后,该服务即会被销毁。

无论应用处于启动状态还是绑定状态,抑或处于启动并且绑定状态,任何应用组件均可像使用Activity那样通过调用Intent来使用服务(即使此服务来自另外一个应用)。不过,可以通过清单文件将服务声明为私有服务,并阻止其他应用访问。

Cairngorm

Cairngorm

Cairngorm

Cairngorm是Abode推出的Flex RIAs框架,其实是MVC的发扬光大,它由七大部分组成。

1.Model(数据模型M):使用singleton(单例)模式共享变量;

2.VO( Value Object):储存特定值对象变量。

3.VIew(视图V):将Model的数据绑定互组件并广播侦听Cairngorm Event;

4.Controller(控制器):侦听Cairngorm事件并将其映射到Cairngorm Command;

mand(命令):调用Cairngorm Delegate或其它Command ,并更新Model;

6.Delegate(委托):实例化RPC(远程过程调用)并将其结果返回给Command;

7.Business(业务):定义RPC。

使用Cairngorm的第一步是建立框架结构的骨架,包括了三个对象:

Model Locater;

Service Locator;

Front Controller;

Model Locator:承载了组件之间的所有的传递的信息和数据,这是一个Bindable (可绑定的)对象。

Service Locator:定义了与数据源(Httpservice,Webservice,Remoteobject)之间通讯的界面。

Front Controller:建立播送事件(Dispatch event)和命令层(command)之间的对应关系(mapping)。

看一下相关的代码:

BuddyAppModelLocator.as:

windows系统net命令使用技巧详细讲解

windows系统net命令使用技巧详细讲解

windows系统net命令使用技巧详细讲解

更新日期:2006-08-01 17:49 网页教学网

大家在操作windows 9x/nt/2000/xp/2003系统的过程中,都会或多或少会遇到这样或那样的问题;特别是网管员在维护单位的局域网或广域网时候,如果能掌握一些windows 系统的网络命令使用技巧,常常会给工作带来极大的方便,有时能起到事倍功半的效果;本文就net 网络命令在实际操作中使用技巧,供

大家参考。

本 文 主 要 内 容net view net user net use net time net start

net pause net continue net stop net statistics net share

net session net send net print net name

net

localgroup net group net file net config net computer net accounts 我们知道net命令是一个命令行命令,net 命令有很多函数用于实用和核查

计算机之间的netbios连接,可以查看我们的管理网络环境、服务、用户、登陆等信息内容;要想获得net 的help可以(1)在windows下可以用图形的方式,开始->帮助->索引->输入net;(2)在command下可以用字符方式:net /?或net 或net help取得相应的方法的帮助。所有net命令接受选项/yes和/no(可缩写

为/y和/n)。

下面对net命令的不同参数的使用技巧介绍如下:

servostudio2使用手册

servostudio2使用手册

servostudio2使用手册

【最新版】

目录

1.servostudio2 简介

2.servostudio2 功能

3.安装与配置 servostudio2

4.使用 servostudio2 进行项目管理

5.使用 servostudio2 进行代码管理

6.使用 servostudio2 进行测试管理

7.servostudio2 的优点与不足

正文

【1.servostudio2 简介】

Servostudio2 是一款集成了项目管理、代码管理和测试管理的软件,适用于软件开发团队。它可以帮助团队更有效地管理项目进度、代码质量和测试结果,从而提高软件开发的效率和质量。

【2.servostudio2 功能】

Servostudio2 主要包括以下功能:

(1)项目管理:可以创建、编辑和管理项目,设置项目成员和权限,分配任务,跟踪项目进度等。

(2)代码管理:可以导入、管理和比较代码,支持多种编程语言,包括 Java、C++、Python 等。

(3)测试管理:可以创建、编辑和管理测试用例,运行测试用例,查看测试结果,分析测试覆盖率等。

【3.安装与配置 servostudio2】

要安装 Servostudio2,首先需要下载安装程序并运行,按照提示进行安装。安装完成后,需要配置数据库和邮件服务器,以便 Servostudio2 可以正常运行。

【4.使用 servostudio2 进行项目管理】

在 Servostudio2 中,可以创建新项目,设置项目名称、描述、状态等,然后添加成员和分配任务。成员可以根据权限查看和编辑项目信息,任务可以按照优先级和状态进行排序。

第6章网络服务

第6章网络服务
21
FTP的工作方式采用客户/服务器模式。 一个FTP会话通常要包括5个软件接口的交互,表6.1列出了这5个 软件接口及其用途,图6.18描述了FTP协议的工作模型。
图6.18 FTP协议的工作模型 22
6.3.2 FTP的工作流程
Port模式的FTP工作流程 图6.19显示了FTP工作流程。
图6.19 FTP工作流程 23
局域网技术与局域网组建
1
第6章网络服务
2
本章主要内容: DHCP服务 DNS服务 FTP服务 Web服务 Mail服务
3
6.1 DHCP服务
6.1.1 DHCP的基本概念和作用
DHCP是一种简化主机IP配置管理的TCP/IP标准。 以UNIX的引导协议BOOTP为基础,进行了功能扩展。 在Windows Server 2003系统中内置了DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)服务作为组件之一。 DHCP服务能为网络内的客户端计算机自动分配TCP/IP配置信息 (如IP地址、子网掩码、默认网关和DNS服务器地址等),从而 帮助网络管理员省去手动配置相关选项的工作。 在使用DHCP时,整个网络至少有一台DHCP服务器,而其它要 使用DHCP功能的客户端只须设置成利用DHCP自动获得IP地址 即可。
6
6.1.3 DHCP的安装和配置
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第六章远程服务调用和Service Locator

1.什么是Websharp Service Locator

当今大部分的企业应用都是分布式的,单机版的软件虽然仍旧有很多,但是,在考虑一个完整的应用软件系统框架的时候,总是需要考虑完整的情况。多层分布式应用软件的开发原则和技术通常也是适用于单机版软件的。

对于多层的应用系统来说,我们通常把它们划分成客户端、应用服务层和数据库。在应用服务层,我们需要考虑至少两个方面的问题:

∙如何实现业务逻辑

∙如何向客户端提供服务。

我们可能使用多种技术来实现服务的提供:Webservice、.Net Remoting、甚至EJB等。如此多的实现技术,带来的很大的灵活性,但同时也带来了文题,其中一个就是,有多少种服务端技术,就得有多少种相应的客户端访问技术。甚至,在某些分布式应用系统中,应用逻辑使用不同的技术开发,存在于不同的机器上,有的存在于客户机本机,有的使用.Net Remoting开发,存在于局域网内,有的使用因特网上的Web Service,有的时候,我们希望相同的业务逻辑能够支持不同的客户端。

在这种情况下,我们需要一个一致的服务访问编程模型,以统合不同的服务访问模式,简化系统的开发和部署。Websharp Service Locator(以下简称WSL)提供了这样一种能力,开发人员只需要定义服务访问接口,就可以使用一致的方式透明的访问这些服务,而不用理会这些服务之间的不同点。框架会自动生成访问远程服务需要的代理。

下面简单介绍一下.Net环境下的两种主要分布式访问技术:

2.Web Service

Web Service便是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Service能与其他兼容的组件进行互操作。它可以使用标准的互联网协议,像超文本传输协议HTTP和XML,将功能体现在互联网和企业内部网上。Web Service平台是一套标准,它定义了应用程序如何在Web上实现互操作性。可以使用任何语言,在任何平台上写Web Service。

Web Service平台需要一套协议来实现分布式应用程序的创建。任何平台都有它的数据表示方法和类型系统。要实现互操作性,Web Service平台必须提供一套标准的类型系统,用于沟通不同平台、编程语言和组件模型中的不同类型系统。目前这些协议有:

1.XML和XSD

可扩展的标记语言XML是Web Service平台中表示数据的基本格式。除了易于建立和易于分析外,XML主要的优点在于它既与平台无关,又与厂商无关。XML是由万维网协会(W3C)创建,W3C制定的XML SchemaXSD定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。

Web Service平台是用XSD来作为数据类型系统的。当你用某种语言如或C#来构造一个Web Service时,为了符合Web Service标准,所有你使用的数据类型都必须被转换为XSD类型。如想让它使用在不同平台和不同软件的不同组织间传递,还需要用某种东西将它包装起来。这种东西就是一种协

议,如 SOAP。

2.SOAP

SOAP即简单对象访问协议(Simple Object Access Protocol),它是用于交换XML编码信息的轻量级协议。它有三个主要方面:XML-envelope为描述信息内容和如何处理内容定义了框架,将程序对象编码成为XML对象的规则,执行远程过程调用(RPC)的约定。SOAP可以运行在任何其他传输协议上。例如,你可以使用 SMTP,即因特网电子邮件协议来传递SOAP消息,这可是很有诱惑力的。在传输层之间的头是不同的,但XML有效负载保持相同。

Web Service 希望实现不同的系统之间能够用“软件-软件对话”的方式相互调用,打破了软件应用、网站和各种设备之间的格格不入的状态,实现“基于Web无缝集成”的目标。

3.WSDL

Web Service描述语言WSDL就是用机器能阅读的方式提供的一个正式描述文档而基于XML的语言,用于描述Web Service及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的。

4.UDDI

UDDI 的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。

5.远程过程调用RPC与消息传递

Web Service本身其实是在实现应用程序间的通信。我们现在有两种应用程序通信的方法:RPC远程过程调用和消息传递。使用RPC的时候,客户端的概念是调用服务器上的远程过程,通常方式为实例化一个远程对象并调用其方法和属性。RPC系统试图达到一种位置上的透明性:服务器暴露出远程对象的接口,而客户端就好像在本地使用的这些对象的接口一样,这样就隐藏了底层的信息,客户端也就根本不需要知道对象是在哪台机器上。

微软的.NET技术应该算是时下最好的Web Service 开发技术。.NET平台不仅延续了微软一贯的编程风格,而且还增加了许多支持Web 服务的关键性技术,使得.NET在操作的简单性和执行的稳定性,高效性上达到了一个非常好的结合。微软的Visual 便是一个便于 Web 服务的开发工具。微软的目标是,将其新编程语言——C#作为Web Service的首选语言。

3..Net Remoting

.Net Remoting是.Net环境下的另外一种分布式处理方式。从某种意义上来说,Remoting就是DCOM 的一种升级,它改善了很多功能,并极好的融合到.Net平台下。Microsoft® .NET Remoting 提供了一种允许对象通过应用程序域与另一对象进行交互的框架。

在Remoting中是通过通道(channel)来实现两个应用程序域之间对象的通信的。如图所示:

相关文档
最新文档