Overview
Features
Download
Documentation
Community
Add-Ons & Services

IO and Web Libraries

General discussion regarding the development of POCO for contributors.

IO and Web Libraries

Postby alex » 05 Jan 2007, 15:18

In the light of Guenter's recent announcement of the roadmap, I would like to us this forum to solicit some feedback on the Web and IO libraries and strategies for further development. Some concrete proposals will come out of this discussion to fill in the Poco 1.4 item in the wiki.

The idea behind IO is to have an abstraction for various I/O ports (serial/parallel/USB...). It also seems logical to have a network port, but that kind of functionality is already in the Net library. And, then, I see a need arising for a Protocol interface that would be fed to ProtocolStream alongside appropriate Port (Protocol and ProtocolStream do not exist in code yet).

Summary of issues regarding IO:

- network port introduction and who is dependent on whom (whether to move Net code in IO - making Net dependent on IO, use existing Net code - making IO dependent on Net or duplicate the code - making IO and Net independent from each other)

- is Port an appropriate name (a NetPort having TCP/UDP port is confusing), or would another name (such as Channel, for example) be more apprpriate

- Protocol and ProtocolStream


As for Web library, the first things I'd like to see are SOAP and HTML support. Some HTML stuff already resides in the Net library, which raises similar issue like the one above with network port.


Alex


P.S. I am speaking exclusively from the open source perspective and may be mising some important relevant parts of Applied Informatics internal developments, so some of my ideas may not make sense.
alex
 
Posts: 1116
Joined: 11 Jul 2006, 16:27
Location: United_States

Re: IO and Web Libraries

Postby alex » 13 Jan 2007, 19:28

> Some concrete proposals will come out of this discussion to fill in the Poco 1.4 item in the wiki.

Since there was no comments, I just went ahead and changed things in IO.
Here's a summary:

- naming: Port has become Channel
- NetChannel - abstracting Net sockets - IO library is dependent on Net now (I am considering a #define to disable this by default)
- Protocol / ProtocolStream - a common interface and stream for protocols

The rationale for IO is following:

The idea of Channel is a communication abstraction - anything supporting send/receive pattern can be put behind this interface, regardless of the level on which it operates.

PocoNet covers the TCP/IP/Ethernet world well. IO library shall provide a framework to deal with less-common, proprietary or legacy interfaces and protocols, such as those found in embedded or automation domains. The reason for having the Net interface in IO is to provide a vehicle for encapsulating the above mentioned protocols into TCP/IP.

Code is in SVN, tested on Windows only. Only VS80 solution is valid. If anyone has anything to say about design, this is a good time to speak.

Alex
alex
 
Posts: 1116
Joined: 11 Jul 2006, 16:27
Location: United_States


Return to Contributors

Who is online

Users browsing this forum: No registered users and 1 guest

cron