Sunday, April 16, 2006
These silly machines remind me a lot of how computer systems are designed and built. For example, in my current project, here are the steps required to process a transaction:
- User presses an onscreen button to start transaction.
- Client application gathers all the data currently displayed.
- Client application generates an XML message to be sent to the system.
- Client application compresses the XML message into a binary format.
- Client application encrypts the compressed message and sends it over the network to the front-end processor.
- Front-end processor decrypts the message.
- Front-end processor decompresses the XML message.
- Front-end processor sends the XML message to the transaction processing engine.
- The transaction processing engine parses the XML.
- The transaction processing engine performs one or more SQL operations to process the transaction.
- The transaction processing engine generates an XML response and sends it to the front-end processor.
- The front-end processor compresses the XML response.
- The front-end processor encrypts the compressed XML response and returns it to the client application.
- The client application decrypts the XML response.
- The client application uncompresses the XML response.
- The client application parses the XML to determine what the transaction engine did, then informs the user of success or failure.
Only about three of those steps that do anything useful. All the rest seems a lot like setting up marbles and dominoes just because it's fun to watch them get knocked down.