views:

73

answers:

1

I am going to write a Ruby application that implements a video conversion workflow consisting of multiple audio and video encoding/processing steps.

The application interface has two core features:

  • queueing new videos
  • monitoring the progress for each video

The user can access these features using a website written in Ruby on Rails.

The challenge is this: I want make the workflow app a self-sufficient application, not dependent on the existence of the web view.

To enable this separation I think that adding a network API to the workflow application is a good solution because this allows the workflow app to reside on a different server than the web server.

My question is: Which solution do you suggest for such a network API?

A few options are:

  • implement a simple TCP server and invent my own string based API
  • use some sort of REST api (I don't know if this is appropriate for this situation)
  • some sort of web-services solution (SOAP, XML-RPC)
  • another existing framework

Feel free to share your thoughts on this.

+2  A: 

I would suggest two things:

  • First, use REST as your API. This allows you to write one core application with both a user interface and an API for outside applications to use.

  • Second, take a look at PandaStream. It's a Merb application that encodes videos from multiple formats into flash. It has a REST API, and there's even a Rails plugin so you can integrate it with your application. It might be a good example codebase, or even a replacement for the one you're trying to build.

Hope my answer helped,

Mike

Mike Trpcic
I'd add my vote for the REST API as well.
Nathan
Yeah, but I could use DRb (distributed ruby) as well, which is much easier.
StackedCrooked