44
BEA Weblogic Server 8.1 Web Service Island Chen 陈陈 陈陈陈陈 2004-2

BEA Weblogic Server 8.1 web service training

Embed Size (px)

DESCRIPTION

BEA Weblogic Tech Training

Citation preview

Page 1: BEA Weblogic Server 8.1 web service training

BEA Weblogic Server 8.1

Web Service

Island Chen 陈渚技术顾问2004-2

Page 2: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 2

议题

Web Service 介绍创建和使用 Web Service Controls

生成、测试和调试 Web Services

Web Service 安全

Michael Duarte
need something to add some kick to this, nothing extravagent
Page 3: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 3

什么是 Web Service ?

Web Service Web Service 是一套标准,它定义了应用程序如何在 Web 上实现

互操作 Web Service 就是一个应用程序,它向外界开放一个能够通过

Web 进行调用的接口 Web Service 使用 XML 来交换消息 通过 XML 定义接口 与底层实现独立无关 提供粗粒度的 RPC 服务 通过开发的标准协议访问,例如: HTTP 、 SMTP 和 FTP

Page 4: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 4

Web Service 实现目的

Web Service 是为了企业集成而提出的技术,是当前受关注的企业集成手段之一

实现松耦合的集成 B2B 集成 用户接口集成 数据仓库 传统业务系统 流程集成

Michael Duarte
need something to add some kick to this, nothing extravagent
Page 5: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 5

Web Service 结构

Michael Duarte
need something to add some kick to this, nothing extravagent
Page 6: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 6

Weblogic Server8.1 支持的 WS 标准

Weblogic Server 8.1 支持的 Web Service 标准 JAX-RPC 1.0

SOAP 1.1 With Attachments

SOAP 1.2

WSDL (Web Services Description Language ) 1.1

UDDI 2.0

W3C XML Schema

Part 1: Structures XML Schema

Part 2: Data Types

Page 7: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 7

SOAP

Simple Object Access Protocol(SOAP): 基于 W3C 开放标准的 XML-based 消息格式 可以实现 RPC-style 调用和文档交换两种工作方式 SOAP 包嵌在其他传输协议中进行传输,如

HTTP

FTP

SMTP

JMS(WebLogic Server 提供 )

Michael Duarte
need something to add some kick to this, nothing extravagent
Page 8: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 8

WSDL

Web Service Description Language(WSDL) 以 XML 格式来描述 Web Service

描述服务的位置 协议的绑定 服务的接口方法、参数等信息

用 WSDL 描述的 Web Service 实现 服务由开发者提供 客户端按照约定方式提交请求和接收响应

Michael Duarte
need something to add some kick to this, nothing extravagent
Page 9: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 9

UDDI

Universal Description,Discovery and Integration(UDDI) 包含一系列规范,定义了 Web Service 注册、分级和查找机制 定义了基于选择标准的服务搜索 描述访问 registry 的消息格式和协议

UDDI 消息 基于 SOAP 的 XML 消息传递 可以是客户端的搜索请求消息 可以是服务开发者提交到注册点的服务注册请求消息

Michael Duarte
need something to add some kick to this, nothing extravagent
Page 10: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 10

Web Service 的同步调用

同步调用表明客户端流程和后端流程是紧耦合关系 同步调用

类似于 RPC 调用 调用有返回值 适用于比较简捷的调用 比较适用于同一企业的两个部门间的交互

Michael Duarte
need something to add some kick to this, nothing extravagent
Page 11: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 11

Web Service 的异步调用

异步调用 请求端和服务端是松耦合结构

优点 前端业务处理更灵活 降低了对后端的性能要求 通过 load balance ,提高资源利用率 适用于与外部系统集成

缺点 对于需要返回的处理,比同步方式复杂

Michael Duarte
need something to add some kick to this, nothing extravagent
Page 12: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 12

实现可靠 SOAP 消息传递

可以在两个 WebLogic Server 实例间进行异步可靠 Web Service 调用 在调用端保存消息,在服务端保存 message ID

服务端用异步调用方式来通知调用端 调用端收到确认后,把消息从 Message Store 中删除 如果超时,调用端将自动重调用

Web Service

WLS Reciever

WS RuntimeWS Runtime

methodX()Soap

Request

Ack

SenderApplication

WLS Sender

WS RuntimeWS Runtime

MessageStore

MessageID

Table

remove

Michael Duarte
need something to add some kick to this, nothing extravagent
Page 13: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 13

使用 SOAP1.2 作为消息传输格式

在默认情况下, WLS8.1 中的 SOAP 消息采用 SOAP1.1 规范的消息格式 可以采用 SOAP1.2 消息格式 WLS81 中的 SOAP1.2 实现是基于 W3C Working Draft specification (June

26, 2002) 的实现。由于还没有成为 W3C 的推荐标准,所以建议只在实验中使用

ProtocolAdapter(HTTP)

SOAP Client Stateless

EJB

BEA WebLogic Server

DeserializerDeserializer

SerializerSerializer

SOAP Request

SOAP Request

SOAP Response

SOAP Response

Java

Java

Page 14: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 14

Web Service 的安全

WLS8.1 实现了 2002 年 8 月的 WS-Security 标准, Web Service 的安全包括以下三方面 消息安全 ---- 可以对发送的 SOAP 消息进行数字签名和数据加密 传输安全 ---- 采用 SSL 保证Web Service 的客户端与服务端间的安全

通讯 存取安全 ---- 定义谁有权限访问某个 Web Service

SOAP Handler

SOAP Client

StatelessSession

EJB

StatelessSession

EJB

Web Services-Enabled Server

HTTP invoke()

RESPONSE

Page 15: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 15

WLS 与 Web Service

系统提供众多的 Ant Tasks完成 Web Service 的编译工作 自动为部署在 WLS 上的 Web Service 生成 Home Page

查看生成的 WSDL

测试 Web Service

查看调用过程中的消息和日志

ServiceGenXML/Java

Data Types

EJB

WLSWLSdeployJava/XML

Data Types

Serializers/Deserializers

Service War

Service EAR

EJB

ClientGenClientGenClient Proxy

Client Jar

Page 16: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 16

议题

Web Service 介绍创建和使用 Web Service控件生成、测试和调试 Web Services

Web Service 安全

Michael Duarte
need something to add some kick to this, nothing extravagent
Page 17: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 17

Workshop 中的 Web service控件

Michael Duarte
bump bullets up to 20 and separate subtitle
Page 18: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 18

Web Service 的使用

使用控件调用 Web Service 创建 Web Service Control

配置 Control 使其对应则需要 Web Service

在流程、 Page flow 、其他 Web Service 中调用该Control

Michael Duarte
bump bullets up to 20 and separate subtitle
Page 19: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 19

议题

介绍 Web Service

创建和使用 Web Service Controls

生成、测试和调试 Web Services

Web Service 安全

Michael Duarte
need something to add some kick to this, nothing extravagent
Page 20: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 20

开发 Web Service 接口

Web Service 接口 Methods :通过客户端发起调用请求

Callback :服务端返回处理结果

Michael Duarte
bump bullets up to 20 and separate subtitle
Page 21: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 21

Method 类型

WebLogic Web Service 的方法可以是同步或异步 同步调用

客户端调用之后阻塞,直到调用完成

一般有非空结果返回(思考原因?)

异步调用 有立即返回

一定是 void 返回(思考原因?)

在客户端和服务端,提供队列机制

Michael Duarte
bump bullets up to 20 and separate subtitle
Page 22: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 22

异步调用返回处理

Callbacks 方式响应 当响应时,服务端向客户端发 Callback 回调

客户端需要接收和路由 Callback 消息 客户端要能处理 Callback

目前大多数的客户端都不能接收 Callback

Polling 方式处理 对不支持 Callback 的客户端使用 采用轮询方式查询处理结果

Michael Duarte
need something to add some kick to this, nothing extravagent
Page 23: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 23

Callback 和 Polling 方式比较

Michael Duarte
bump bullets up to 20 and separate subtitle
Page 24: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 24

Callback 和 Polling 方式比较…

功能 Callbacks Polling

结果返回 有结果即返回 需要等到下次轮询

客户端要求 能够接收和路由 SOAP 消息 需要做轮询操作

网络资源 减少网络消耗,只传递有用数据 轮询,增加了网络方面消耗

Michael Duarte
bump bullets up to 20 and separate subtitle
Page 25: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 25

会话处理

WebLogic Web Service 提供多方法调用间的会话管理 使用 polling 方式,通常会使用会话方式来维护调用 会话状态

使用会话 ID 来唯一标识 由 WebLogic server 来维护

Michael Duarte
bump bullets up to 20 and separate subtitle
Page 26: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 26

创建会话

可以采用图形化方式设计 会话可有 3 种阶段类型

启动 (start)

继续 (continue)

结束 (Finish)

Michael Duarte
bump bullets up to 20 and separate subtitle
Page 27: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 27

会话阶段

Start阶段 只能用在 methods

创建会话 ID

Continue阶段 可以用在 methods 和 callbacks

在此会话中进行 method 或 callback 调用 Web Service状态将被保存

Finish阶段 当方法调用完成,服务器将删除会话状态

Michael Duarte
need something to add some kick to this, nothing extravagent
Page 28: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 28

在 Web Service 中访问资源

在 Web Service 中可以访问后端资源 可以通过图形化的方式将 control加入到 Web

Service 之中 一个简单的 Web Service 可以用来访问以下资源

EJBs

Databases

Workflow

Other Web Services

如果访问一个以上的后端 Control ,可以用 Web Service Control 将其封装

Michael Duarte
go back to the blue
Page 29: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 29

Web Service 调用 control

Michael Duarte
go back to the blue
Page 30: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 30

Web Service 的调试

Workshop 提供了对 Web Service代码的调试 在服务方法中的代码 使用 ECMAScript代码将 XML映射到 Java 类型

调试 Web Service 设置断点 执行服务方法 检查执行到断点时, Service 的变量和环境 继续执行

Michael Duarte
bump bullets up to 20 and separate subtitle
Page 31: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 31

议题

介绍 Web Service

创建和使用 Web Service Controls

生成、测试和调试 Web Services

Web Service 安全

Michael Duarte
need something to add some kick to this, nothing extravagent
Page 32: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 32

Web Service 安全

Michael Duarte
go back to the blue
Page 33: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 33

Web Service 安全层次

异步调用的值,通过 callback 方式返回 Transport 使用 SSL

Message Based 使用 XML 的加密和签名 Role Based 使用 roles-required, roles-

referenced and run-as

Michael Duarte
go back to the blue
Page 34: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 34

WLS/Workshop 安全运行环境

Michael Duarte
go back to the blue
Page 35: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 35

Transport 安全

Transport 安全功能 服务器端认证 基本的认证,使用用户名和密码 客户端认证

优点 成熟、可靠 多种客户端和 Web container 支持

缺点 点对点方式,消息本身不能加密

Michael Duarte
go back to the blue
Page 36: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 36

Inbound 的处理

Michael Duarte
go back to the blue
Page 37: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 37

Outbound 的处理

Michael Duarte
go back to the blue
Page 38: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 38

Message Level 安全

Message Based 安全功能 使用 tokens , XML加密和 XML 签名 tokens

代表认证或授权 可以有签名或无签名

加密 加密任意部分消息 对不同的接收者可以有多个加密包 可以对称或非对称

签名 可以签名任意部分消息 有多个签名 使用私钥签名

Michael Duarte
go back to the blue
Page 39: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 39

@jws:ws-security-policy-service in a jws

Michael Duarte
go back to the blue
Page 40: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 40

@jws:ws-security-policy-service in a jbc

Michael Duarte
go back to the blue
Page 41: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 41

Role Based 安全

Michael Duarte
go back to the blue
Page 42: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 42

Using roles-referenced and isCallerInRole()

Michael Duarte
go back to the blue
Page 43: BEA Weblogic Server 8.1 web service training

©2003 BEA Systems, Inc. | 43

Using run-as

Michael Duarte
go back to the blue
Page 44: BEA Weblogic Server 8.1 web service training

Q/A