我已经阅读并开发了我对SOA的理解,我发现这种开发方法很有用。然而,有些令我困惑的事情是:
背景:我们正在设计在线金融应用程序,最近我们正处于设计脑力激荡会议的阶段。 (审计和记录需要完成)
1 - 如何确保安全的进程间通信?
我的想法:限制防火墙对这些API的外部访问。所以这些只能由系统内部调用。
2 - 在私有API(IPC)和公共API(暴露给客户端,例如移动设备,网络和桌面)的环境中,首选的协议休息或肥皂是什么
我的想法:对于阅读,我们可以使用Rest和ACID合规性交易,我们可以利用soap作为其提供点指向安全性。或者对于IPC,我们也在考虑使用soap作为其提供的审计机制。
3 - API网关的作用是什么?特别是涉及过程间的沟通?
我对此特别感到困惑。我认为所有请求甚至服务调用服务都将通过API网关执行。如果我错了,请详细说明这一点。
4 - 是否可以将一些服务公开,一些私有的微服务架构?如何在逻辑上将它们分开?
我有什么研究可以做到这一点。
5 - SOA和Micro SOA的主要区别和优缺点是什么?
我的观点:Msoa是SOA的延伸。
提前致谢。
任何人都可以绘制图表或提供MSOA架构图与API网关的链接。
APIGEE是我理解的主要来源,然后谷歌具体向不同方向移动。
安全是我们的主要关注点。
答案 0 :(得分:2)
1 - 如何确保安全的进程间通信?
在内部,白名单IP和防火墙可能是最安全的。如果这些服务扩展并具有动态IP,则可能存在问题,在这种情况下,共享机密可以工作,但是需要在所有服务中实施并遵守。 JWT对此非常有用(类似于SAML,但并不那么痛苦),与身份验证微服务一起使用。
外部 - 代币,OAuth2取决于您想要经历多少痛苦。
2 - 在私有API(IPC)和公共API(暴露给客户端,例如移动设备,网络和桌面)的环境中,首选的协议休息或肥皂是什么
我会使用REST,SOAP正慢慢成为一种过时的标准,您可以通过使用TLS或HMAC签名来保护通信p2p。
3 - API网关的作用是什么?特别是涉及过程间的沟通?
API网关通常用于向公众公开旧API,或通过单一的amanged接口管理大量内部服务。 API网关还可以帮助管理客户端的令牌,并为多服务访问提供单个令牌,并从外部接口模糊内部API。
网关还倾向于提供开发人员门户网站和某种自助注册流程以及请求内容(入站和出站)的控制流程。
Tyk.io是一个开源API网关 - 您可以在其主页上看到网关所期望的功能类型
4 - 是否可以将一些服务公开,一些私有的微服务架构?如何在逻辑上将它们分开?
是的,您可以使用API网关。只要没有服务间依赖关系。
5 - SOA和Micro SOA的主要区别和优缺点是什么?
我认为一个是另一个的子集,SOA倾向于与像ESB这样的消息传递结构互连,但是微SOA将更加专业化,并且可能不会使用ESB。