Protocols and behavioral compatibility

Protocols are rules about two cooperating parties, such as a program and its underlying operating system, or a Web client and a Web server. For example, POSIX is a protocol for system service calls on the *nix platforms, and HTTP is a protocol for Web clients to access Web servers.

As with regular function/method calls, an interaction in a protocol also has its prerequisites, post-conditions, input and output. Typically a protocol will specify all these in a descriptive way, however, descriptions may contain ambiguity.

When implementing a protocol, ambiguity can lead to misunderstanding, making client and server not fully compatible. To avoid this, protocol creators always try to eliminate such ambiguities, so that program implementers can avoid such incompatibilities.

Similarly, when implementing an operating system behavior (such as creating another compatible operating system, or creating an emulation system) based on an existing operating system, the process of modeling takes a lot of effort. Behavioral compatibility is required if we want to make all depending applications run on it without issues. Otherwise, applications that expect to handle an exception in one way may see the exception in another way, and thus being unable to process it.

The happy path is relatively easy to implement--when there is no error, the logic for operating system APIs are gone through, which is straightforward. API documentation can help us implement happy paths. But for behavioral compatibility, we need to investigate the source platform behavior in error situations by experimenting. This takes a lot of effort. As a payback, through this way, applications can run reliably on the new platform.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值