
On Tue, 2005-04-26 at 13:54 +0300, Boris wrote:
Iain K. Hanson wrote:
Hi
I created the layers concept for the C++ Networking boost library.
The layers I defined are:
Layer 1 :- Light weight wrappers arround predominantl BSD socket concepts.
Layer 2 :- Acceptor, Connector, Reactor, and Svc_Handler concepts ala ACE.
Layer 3 :- An optional iostreams interface if desirable?
Layer 4:- Applications layer - includes ftp, telent, http/s And user applications
Is layer a package or a level of abstraction? I ask as I wonder if eg. layer 3 is based on layer 2?
Not having done much work on iostreams for sockets I thought it would be a little of both but I was not sure. I saw it as a higher layer abstraction that had greater easy of use but probably less flexibility/control. Whereas Layer 2 has much greater flexibility and control but a greater learning curve if you want/need the more advanced features.
If you look at http://www.highscore.de/boost/net/packages.png I put the packages "ace" (your layer 2) and "iostream" (your layer 3) both in layer 1 because they don't necessarily depend on each other and I don't know if we can tell which one of the two packages has a higher level of abstraction.
[...] Boris has also been atempting bto model Layer 1 but keeps calling itlayer 0.
Hey, everyone called it level 0! :-)
we need a common nomenclture or confusion will reign.
That's why I added the link to the package structure at http://www.highscore.de/boost/net/packages.png everywhere to make sure we talk about the same. It's quite similar to your layers concept except that you created new application layer.
There has always been a need for standard applications protocols such as FTP, Telnet, SMTP, HTTP, etc. But Beman Dawes wrote a set of requirements for a socket library that said something like sockets are a chapter in the book no the whole book. He meant to limit the scope of a socket library so that it might actual get finished. I refined that idea by comming up with my layers which we've been using for the last 3 or 4 years. Thats why I'm objecting to you subtracting 1 from the layer numbers. /ikh