【发布时间】:2011-03-15 15:49:06
【问题描述】:
我们有一个现有的专有数据处理应用程序,在我们的一台服务器上运行,我们希望将其公开为 Web 服务,供我们的客户远程提交作业。本质上,系统采用一组配置参数和一个或多个数据文件(文件的数量取决于特定的配置模板,但正常的配置是2个文件)。然后,应用程序获取输入文件,对其进行处理,并输出单个结果数据文件(所有文件都是分隔文本/CSV 或制表符)。
我们现在想将此流程公开为服务。根据我们当前的设置和现有平台,我们相当有信心使用 WCF 4.0 作为框架,并可能使用 REST 作为服务格式,尽管在某些时候可能需要 SOAP 实现。
虽然我在 SOA、WCF 和 REST 方面做了很多阅读,但我对如何建模此服务的其他想法很感兴趣。特别是作业与输入所需文件的一对多关系。使用标准 CRUD 命令在 REST 中对“作业”建模似乎很简单。但是,预定义的“作业类型”参数定义了必须包含的文件数。作业类型“A”可能需要两个输入文件,而“B”需要 3 个才能运行作业。
鉴于此,对工作进行建模的最佳方法是什么?我是否在作业的初始创建中包含多个文件?我是否创建一个作业,然后有一个“addFile”方法,然后我可以上传必要数量的文件?
这些作业将不得不异步运行,因为它们可能需要时间。完成后,最好只在作业对象中有一个状态字段,并要求客户端定期向系统查询作业状态,或者让客户端在作业完成时提供一个 URL 来“ping”?
我们仅处于服务的规划阶段,因此我们将不胜感激。
【问题讨论】:
标签: asp.net wcf web-services rest