WPS
提供能力查询接口
任何 WPS 服务都应该自我包含,提供一个初始节点能被 WPS 客户端用来确认服务的能力
-
初始节点(HTTP URI)。
-
服务应提供一个系统的机制用来发现服务能力。
-
发现机制应该是合乎逻辑,可以推断出来的。
抽象进程模型
抽象的进程模型对进程描述提供了许多角度和自由度
- 一个进程需要提供一个独一无二的标识符来区分不同进程群中的进程
- 进程的标识符应该是个字符串类型或一种更可取的 URI
- 一个进程应该有一个输入的任意数字(0 或其他)
- 进程的每一个输入应该有一个标识符来与其他输入做区分
- 输入的标识码应该是一个字符串
- 进程输入的参数应该是叠套的
- 叠套的输入应该与其他子节点有不同的标识符
- 一个进程应该有一个或多个输出
- 进程的每个输出应该有独一无二的标识符来与进程中的其他输出做区分
- 输出的标识符应该是个字符串
- 每个进程的输出的基数是 1
- 进程的输出应该是嵌套的
- 输出的标识符应该与其父节点不同
- 所有的不作为父节点的输入和输出应该有定义好的数据格式
- 如果输入输出需要编码表,应该是表 2中列出的定义
任务控制
执行能力允许 WPS 的客户端实例化并执行任务,是一种重要的任务控制能力。另外。忽略和删除一个任务的能力在冲时间的执行过程中对于释放服务器资源是很有意义的。
- 服务应给每个任务分配唯一的标识符
- 服务应能返回异常,如果客户端尝试使用一个无效的任务标识符。
- 服务应提供一个能力去执行进程,给有能力执行的进程建立一个新任务,这个能力能够使客户端执行能力定义中的进程。
- 服务应该提供一种能力忽略一个已经提交的任务。这种能力能使客户端来指示他们不再对这个任务或者他们的结果感兴趣了,允许服务器尽可能的处理相关的计资源。
进程执行
服务在 WPS 服务上执行应该既能同步也能异步。同步执行适合任务能在短时间内完成的方法,异步执行更适合任务需要长时间才能完成的情况。
在同步情况下,一个 WPS 客户端提交一个执行请求到 WPS 服务端并且在任务执行结束并返回结果之前持续监听反馈。这需要一个客户端和服务器之间保持持续的连接。
在异步的情况下,客户端发送一个执行请求到 WPS 服务器并且立即收到一个包含状态信息的反馈。这个信息确认这个请求已经被服务器端收到并接受,任务已经在处理,将会在未来一段时间执行完毕。这个状态信息反馈还要包含进程的标识码,以供客户端在之后检查任务是否完成。另外,状态信息包含结果的地址,比如一个在任务结束后能定位处理结果的 URL。
- 服务应该允许客户端确定被执行的进程。
- 服务应该返回异常当客户端尝试执行一个不可行的进程。
- 一个成功的执行,服务器应该发送一个结果给客户端,这个结果会包含一个输出数据或者数据的索引。
- 执行结果应该有失效时间,在失效时间之后这个输出数据将不再能获取。
- 对于失败的操作,服务应该给客户端返回异常。
- 服务应该允许客户端制定用于进程执行的输入数据。
- 在客户端制定了一个无效的输入数据做进程操作的时候应该返回异常。
- 服务应该允许客户端根据建议的进程可以提供的数据格式类型给输出结果定义一个期望的数据交换格式,
- 当客户端制定了一个不被支持的数据交换格式时,服务应返回异常。
- 服务应该提供是否具有同步、异步或都具有的执行能力。
- 服务要对每个提供的进程允许的执行模式。
- 如果两种执行模式都支持,应该让客户端定义想要想要使用的计算模式。
- 如果用户没定义其想要的执行模式,服务应自动选择合适的执行模式。
- 服务在用户定义不被支持的执行模式时应返回错误。
数据通过值和引用传输
客户端可能会发送和接收数据通过两种不同的方式:1)引用 2)值。简而言之,混合模式时可以的,典型的,小的原子数据比如整数,浮点数和短的字符串通过值提交,大的输入或输出通常用引用提供。
- 服务可以通过值和引用来接收输入数据
- 当提供的数据引用不可用时,服务应返回异常。
- 服务应提供输出数据通过值和引用返回输出数据。
- 支持的输出模型应该在每一个提供的进程中被指定。
- 如果输出支持多种模式,应该使用户可选。如果用户指定不支持的传输模式,服务应返回异常。
任务监控
- 服务应对异步任务提供支持机读的状态信息。
- 通常,服务应用表三中的基础状态集来描述一个进程任务的当前状态。
- 服务应报告一个正在运行的任务进程的百分比。
- 服务应该提供一个进程结果可用的大致时间。
- 服务应该建议一个下次进行状态查询时间。
- 服务应报告一个该任务的过期时间,在此时间之后,任务的标识符将无效,现存的资源将被从服务器端移除。