Transporting Data in Web Services

Jim Waldo on language independent means of transporting data:

First of all, it means that you need to have a language-independent mechanism for passing data from one place to another. But there is no more a language-independent way of expressing data than there is a language-independent way of expressing objects. If I tell you that a data type is an int, you don’t know its size unless you know if it is an int in Java, of C (well, even then you won’t necessarily know) or C++. But you do know that I’m not talking about COBOL; but if you want to talk COBOL you need to know how to translate my int into your PIC 9(x) for some value of x.

The language of integration should be based around the language of humans, not the language of computers. Here’s a check list for anyone crafting an interface for integration that humans can understand.

  • Integers - if range is not specified, then it is the entire universe of possible integers
  • Date and time - either use UTC or timezone and daylight savings information
  • Currency - specify units and timestamp
  • Floating point - don’t use this! use decimals instead

Anything else I missed?

Leave a Reply