以银行系统为例
背景
在线银行系统允许用户进行各种银行业务,如查看账户余额、转账、支付账单等。为了支持这些功能,系统需要与账户管理、交易处理、账单支付等多个不同的服务进行交互。
应用SOA设计基本原则
-
标准化服务合约(Standardized Service Contract)
- 例子:所有服务(如账户查询、转账服务、账单支付服务)都定义了标准的Web服务接口。这些接口使用通用的数据格式(如XML或JSON)和通信协议(如HTTP、SOAP)进行交互,确保了不同服务之间的互操作性。
-
服务的松耦合(Loose Coupling)
- 例子:转账服务独立于账户查询服务。尽管转账操作需要查询账户余额,但是这通过标准接口调用实现,而不是直接的代码依赖。这意味着,如果账户查询服务的内部实现发生变化,只要接口保持不变,转账服务就不需要任何修改。
-
服务的抽象(Service Abstraction)
- 例子:账单支付服务隐藏了其内部的支付处理逻辑,用户和其他服务只能看到其公开的接口。无论是直接银行转账还是第三方支付平台,服务消费者不需要关心具体的实现细节。
-
服务的重用(Service Reusability)