
On Fri, Jul 25, 2008 at 3:35 PM, Gregory Dai <gregory.dai@gmail.com> wrote:
On Thu, Jul 24, 2008 at 11:31 PM, Dean Michael Berris < mikhailberis@gmail.com> wrote:
Hi Gregory,
Anyone tried building a web service client based on existing boost
On Fri, Jul 25, 2008 at 1:31 PM, Gregory Dai <gregory.dai@gmail.com> wrote: library
components such as asio? Like to share, or brag :-) about your experience?
When you say web service client, is this just generally anything that passes through HTTP?
In this case there's a currently on-going effort (not making too much progress though with other "real world" things going on) to create a networking library on top of Boost.Asio as the base and provide simple implementations of protocol clients. Initial protocol scheduled to be implemented is an extensible HTTP client. You can get more information on the poject here: http://sourceforge.net/projects/cpp-netlib.
HTTP is a foundational protocol for web services, which include following components: * SOAP: XML based, and over HTTP (or other similar protocols). * WSDL: XML based, which is where services are defined. * UDDI: Protocol for discovering, describing, and integrating web services out there in the Internet cloud.
I don't want to start a web services debate here, but how about providing something that supports REST first? It maps perfectly with the HTTP protocol easily and requires less hacking in terms of parsing (a json parser is easier to implement than an XML parser) and removes the need to do state maintenance. That said, I think we'll need the underlying components first as generic libs before we actually go into a focused approach to supporting web services. Thinking bottom up allows us to solve a larger set of problems with specifically generic (?) libraries to work with.
A web service server is probably more involved. Doing a client should be a nice first step, and helps build a common foundation forward.
I personally have done a high performance HTTP container in C++ using modern C++ programming techniques (policies, metaprogramming, etc.) on top of Boost.Asio -- and it's proving to be very nice indeed. Can't share more than that though. ;-)
I'm sure your HTTP server is super cool, but web services are not just HTTP, but include other components as well.
Right. So do you have an approach to develop something in mind? -- Dean Michael C. Berris Software Engineer, Friendster, Inc.