[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