[Dart] Questions about submission methods to a Dart server

Matt England mengland at mengland.net
Mon Jun 19 14:54:01 EDT 2006


Dan,

Any chance we could possibly contribute to the HTTP-PUT-in-the-Dart2-server 
efforts?  I envision us (I work with Zach on this project) potentially 
updating the Java code base for this stuff.  We are already making 
additionally server-side code (in a separate server app accepting HTTP PUTs 
that dumps the input to a file, attempting to "throw it over the fence" to 
a Dart2 server) to get around the HTTP-PUT inability.

Is the Dart2 server "reception area" in such a modular state such that 
outsiders like us can come in and add another "receiver" translation?

We do speak Java even though most of our project is a C++ based one...even 
though I often complain about using Java-based software from a user's 
perspective.  :)

If this all works for you guys, could you possibly provide any pointers?


More details:

I work with Zach on the Cleversafe project.  Zach may or may not have 
mentioned it already, but he has integrated a Dart-client reporting 
capability into our dsgrid client 
(<http://wiki.cleversafe.org/Client_Getting_Started_Guide>).

fyi, We avoided the XMLRPC stuff becuase a XMLRPC dependence was less 
attractive then a simple HTTP dependence for our C++ code base (in essence, 
libcurl was a lot easier then libxmlrpc-c for cross-platform and other 
reasons).

For what it's worth, from the list above, HTTP PUT seems to be the 
most-preferred method for us, and that's because it's our best combination 
of the following:

1) it's probably the flavor that causes the least amount of work for client 
software to construct and send a Dart datum.
2) It causes the least external dependence.  You don't need an SMTP server 
(for email), you don't need an instant-msg infrastructure, etc.

Sockets might be a close second for us in terms of preference, especially 
if there's a low protocol overhead for us to manage to talk to Dart2; we 
already manage direct sockets already in our code.

I haven't talked with Zach or the rest of our team about this yet, but I 
wanted to get the conversation on the Dart side going quickly, for 
automated test reporting is quickly becoming a software-delivery bottleneck.

-Matt


At 6/19/2006 07:51 AM, Blezek, Daniel J (GE, Research) wrote:
>Zachary, Jim,
>
>   I don't think this would be much of a problem at all.  One of our 
> design thoughts was to allow arbitrary methods of submissions, but XMLRPC 
> has been the only one implemented.  Other thoughts were:
>
>- email
>- monitor a directory (hard because you don't want to get a submission 
>before it's complete)
>- monitor an ftp site /pub/incomming for instance
>- HTTP PUT
>- IM
>- plain old sockets
>
>HTTP PUT shouldn't comprise any security risk or other problems.
>
>We are headed for a new release this week, I'm not sure if I can get this 
>done by then or not, but I'll put it on the TODO list.
>
>-dan
>
>-----Original Message-----
>From: dart-bounces+blezek=crd.ge.com at public.kitware.com
>[mailto:dart-bounces+blezek=crd.ge.com at public.kitware.com]On Behalf Of
>Miller, James V (GE, Research)
>Sent: Monday, June 19, 2006 8:18 AM
>To: Zachary Mark; dart at public.kitware.com
>Subject: RE: [Dart] Questions about submission methods to a Dart server
>
>
>Zachary,
>
>Dart 2 can only accept submissions via xmlrpc.  The previous Dart system
>(Dart Classic) could accept submissions via a drop box or via a HTTP PUT.
>
>XMLRPC and HTTP PUT are not too different (practically). XMLRPC adds a
>bit more protocol and handshaking to the communication.  I'll talk to Dan
>Blezek about whether supporting HTTP PUT would comprimise the Dart server
>in any way.
>
>Jim
>
>
>
>-----Original Message-----
>From: dart-bounces+millerjv=crd.ge.com at public.kitware.com
>[mailto:dart-bounces+millerjv=crd.ge.com at public.kitware.com]On Behalf Of
>Zachary Mark
>Sent: Friday, June 16, 2006 8:50 PM
>To: dart at public.kitware.com
>Subject: [Dart] Questions about submission methods to a Dart server
>
>
>Hello,
>
>I am in the process of writing an application.  For this application, we
>wish to utilize Dart as a means of collecting unit build and test
>reports.  We currently have a testing framework in place which generates
>XML in a format that our installation of Dart seems to recognize just
>fine (submitted though xmlrpc via the official dartclient).
>
>I have read about the various submission methods by which we can submit
>a test result XML document to a Dart server.  While xmlrpc seems to be
>ideal, we already have a method in place to submit arbitrary data via
>HTTP PUT, so using HTTP PUT allows us the quickest and easiest method of
>implementation.  While I understand that the CTest client can submit by
>any method available, including xmlrpc, we would greatly prefer to not
>be required to include CTest as a part of our software distribution.
>
>What I am looking for is some clarification on how I can use HTTP PUT to
>submit an in-memory buffer containing XML data to a waiting Dart
>server.  For the sake of example, assume that I have a running Dart
>server at http://dart-server.com:8081 and I have a project named
>SampleProject, so that viewing http://dart-server.com:8081/SampleProject
>would bring up the SampleProject dashboard.
>
>Here are some questions related to these assumptions, please tell me if
>I'm completely off-base:
>
>1) Can the running Dart server accept a direct submission via a raw HTTP
>PUT?  For example, I have a method which sends a standard PUT request
>which looks like:
>       void sendHTTPPutRequest(std::string url, MemoryBuffer buf)
>
>Assuming that buf contains the XML result that I would be submitting, if
>this method is possible, how would I format the URL so that Dart could
>accept a submission via this method?  I have attempted some permutations
>of this URL but without success.  If it is possible to submit via this
>method, I envision a URL that looks something like
>"http://dart-server.com:8081/SampleProject/SubmissionHandler".
>
>2) If this is not possible, I believe (though I am not 100% certain)
>that Dart is able to accept submissions via a predefined drop box, which
>seems to be a folder on the Dart server's file system.  For example, I
>send a test result to a waiting servlet which writes the data to a drop
>box folder which Dart polls with some frequency.  Am I correct in my
>assumption that Dart has this drop-box functionality?  If so, the
>servlet that would enable this functionality would be trivial to implement.
>
>Thank you and I am looking forward to your responses.
>
>-- Zachary Mark
>_______________________________________________
>Dart mailing list
>Dart at public.kitware.com
>http://public.kitware.com/mailman/listinfo/dart
>_______________________________________________
>Dart mailing list
>Dart at public.kitware.com
>http://public.kitware.com/mailman/listinfo/dart
>_______________________________________________
>Dart mailing list
>Dart at public.kitware.com
>http://public.kitware.com/mailman/listinfo/dart



More information about the Dart mailing list