Slightly OT: opinions on best webservice implementation

We have been using more and more Ror for new applications. Right now
we are debating on the best way to implement some new webservices that
will interact with our payment gateway. These webservices will be
backend type functions. Updating customer/billing records, retrieving
data, etc… The interface for actually processing transactions won’t
be changing.

Ideally, the webservice will be lightweight and fast, but we also need
to balance that with ease of use. Most communications between
gateways like ourselves and bank networks uses a simple line format
with high ascii field separators. A message starts with STX, fields
separated by FS/GS and the message ends with ETX/EOT and a checksum.
Very simple, fairly compact, and doesnt’ take much processing power to
parse. Transactions are also fairly fast due to the low overhead.

Now compare that with something like soap, which uses ungodly amounts
of cpu, sends a lot more data over the wire, and is slower by a large
margin. Straight xml with something like REXML is better than soap.
Quite a bit faster and a lot less cpu intensive.

Then there is the good old regular cgi parameters. That’s how
transactions are sent to our gateway, and it works just fine for that.
However since the webservices platform we are creating is new, we are
looking at all of our options.

So, as an end developer, what is really more important? Would you be
turned off by a very simple text format for retrieving/updating data
as opposed to something based on xml? Most of the webservices will be
used in customer support interfaces, like updating billing information
or cancelling subscriptions. So speed is important, but not as
important as processing the initial credit card transaction.

Would be interested in any and all feedback.

Being a client of CC gateways, here’s my preferred order for the
options you mentioned:

  1. CGI params – dead simple to implement
  2. Formatted text string – Requires a little more squinting, but
    still easy
  3. SOAP – No, please no, anything but SOAP.

Does that help? :slight_smile:


Benjamin C.
http://www.bencurtis.com/
http://www.tesly.com/ – Collaborative test case management
http://www.agilewebdevelopment.com/ – Resources for the Rails community