Separation of concerns: Difference between revisions
imported>David MacQuigg No edit summary |
imported>David MacQuigg (Add email system example) |
||
Line 5: | Line 5: | ||
== Examples == | == Examples == | ||
=== The Internet === | |||
Separation of concerns is crucial to the design of the Internet. In the Internet Protocol Suite great efforts have been made to separate concerns into well-defined layers. This allows protocol designers to focus on the concerns in one layer, and ignore the other layers. The Application Layer protocol SMTP, for example, is concerned about all the details of conducting an email session over a reliable TCP connection, but not the least concerned about how the Transport Layer protocol TCP makes that connection reliable. Similarly, TCP is not concerned about the routing of data packets, which is handled at the Internet Layer. | Separation of concerns is crucial to the design of the Internet. In the Internet Protocol Suite great efforts have been made to separate concerns into well-defined layers. This allows protocol designers to focus on the concerns in one layer, and ignore the other layers. The Application Layer protocol SMTP, for example, is concerned about all the details of conducting an email session over a reliable TCP connection, but not the least concerned about how the Transport Layer protocol TCP makes that connection reliable. Similarly, TCP is not concerned about the routing of data packets, which is handled at the Internet Layer. | ||
=== The email system === | |||
Separation of concerns into two categories - administrative concerns, and process-level concerns, allows the development of simple models which facilitate better understanding of how [[Email system|email systems]] work. |
Revision as of 11:34, 28 August 2009
Separation of concerns is an engineering concept, widely used in software engineering, to separate a seemingly overwhelmingly complex problem into a set of more tractable concerns, each with its own technical solution. There will need to be careful engineering among the gateways and interfaces among the various "solution spaces".
One common approach to separation, in telecommunications, is between the consumer and provider of service. The key element in such separation is to understand what each side expects at their shared interface.
Examples
The Internet
Separation of concerns is crucial to the design of the Internet. In the Internet Protocol Suite great efforts have been made to separate concerns into well-defined layers. This allows protocol designers to focus on the concerns in one layer, and ignore the other layers. The Application Layer protocol SMTP, for example, is concerned about all the details of conducting an email session over a reliable TCP connection, but not the least concerned about how the Transport Layer protocol TCP makes that connection reliable. Similarly, TCP is not concerned about the routing of data packets, which is handled at the Internet Layer.
The email system
Separation of concerns into two categories - administrative concerns, and process-level concerns, allows the development of simple models which facilitate better understanding of how email systems work.