将其视为对现代系统设计范例的调查:
假设我已经编写了一个程序来返回两个给定数字的总和。我们称其为Amazing Adder,我的目标是使该Amazing Adder可供其他人使用。截至2018年,向世界提供此Amazing Adder作为公开可用服务的主流和现代方法是什么?我对后端体系结构更感兴趣,而不是用户界面。基于对系统设计的了解,我可以想到:
1)使它成为REST服务,但是此用例是否很好地适合REST范例?我怎么称呼我的端点?如果我正在做的只是添加没有状态信息的数字,我需要支持哪些操作(更新,删除等)?
2)通过http进行此普通的JSON RPC。因此,用户向http://www.theAmazingAdder.com/add发送了一个HTTP POST请求,有效载荷为{'number1':2,“ number2”:3},我的服务将返回{'sum':3}
3)通过Profobuf或Thrift将其制成二进制RPC格式。那是矫kill过正吗?客户端和服务器必须具有的“代码定义”是什么?
4)通过网络进行传统的Python酸洗或Java序列化/ RMI吗?那还合适吗?
我错过了其他流行的现代范例吗?