Services provide a formal boundary of computing. Inside a service we typically find data that is needed for the operation of the service. In between services, we see the flow of operational requests and the transmission of data. This talk explores the difference between data on the outside that flows between services and data on the inside that is maintained for the internal use of the service.
As data is transmitted between services, we need to recognize that it is immutable and, once it is written, can only be changed by creating a new version for transmission. Schema definition and extensibility take on new importance in the world outside of services. This talk explores these design issues with an emphasis on pragmatic design choices made in the architecting of services and the interaction between them.
Finally, we examine the characteristic of SQL, Objects, and XML. Each has its strengths and weaknesses. We observe that the characteristics that make SQL wonderful for representing internal data, Objects wonderful for software engineering, and XML wonderful for communicating across services are exactly the characteristics that are challenges in other usages. For SQL, Objects, and XML, their amazing strengths in one use are the essence of their weakness in another use. We need all three but we need each in its place of strength.
Many in the Grid community don’t accept our position that the state behind the service boundaries should be the concern only of that service and not its consumers. I hope they will believe Pat!