Protocols and behavioral compatibility
来源:互联网 发布:淘宝平铺图拍摄 编辑:程序博客网 时间:2024/05/19 01:14
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.
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.
0 0
- Protocols and behavioral compatibility
- SCEA_Common Architectures and Protocols
- Network layers and protocols
- WCF Contracts and Backward Compatibility
- android compatibility and System Permissions
- Open systems, Standards and Protocols
- Satellite Networking: Principles and Protocols
- Protocols
- HTML5 compatibility on mobile and tablet browsers
- lock compatibility / Lock Granularity and Hierarchies
- Communication Protocols between SMSC and ESME
- Optical Network Control: Architecture, Protocols, and Standards
- Content Networking: Architecture, Protocols, and Practice
- Protocols and Architectures for Wireless Sensor Networks
- Wireless Mesh Networking: Architectures, Protocols and Standards
- Wireless Sensor Networks: Technology, Protocols, and Applications
- Wireless Mesh Networks: Architectures and Protocols
- Wireless Internet Security: Architecture and Protocols
- 第五周 输入N,判断N的大小,分别输出不同项目
- MVC详解一
- Servlet3.0介绍~使用注解标注监听器(Listener)和过滤器(Filter)
- MVC框架的封装(三)路由类
- MMU笔记(一)
- Protocols and behavioral compatibility
- 我的心中有一个她
- 数据结构-顺序表得实现-删除插入初始化打印
- 关于本博客
- maven入门
- 缘起
- 链表以k单位翻转
- 排列组合,递推(比赛名次,uva 12034)
- eclipse 使用Tomcat 部署web项目找不到lib中的类文件