Web services are also very simply to proxy. This means that when you send a URL to an API, it can not only transpose the URL, it can forward the request to one or more other system. For example, send https://server_A/?StudyUID=x and “Server A” can send the request to Server B, Server C, and so on. Combined with the power to transpose the URL syntax (as above), and it becomes easy to federate requests to discover and access data stored in disparate systems. Logic can dictate which systems are involved per transaction (e.g. systems at my hospital, in my state, across my country).
Taken a step further, the parameters expressed in the URL (e.g. Study UID = x) can be extracted and used in other protocols, such as DICOM (e.g. in a C-FIND) or PIX/XDS transactions (HL7/ebXML/SOAP). This allows communication with other systems that do not support the new standards. This, combined with the ability to transform and inject application-specific commands, and the ability to federate, allows a very powerful middleware to be defined.
This kind of tool is needed so that we can all participate in the “new world” of Web applications, without throwing away our current, proven standards, or even changing our stored data or applications–it just layers on top. This is what the Web technology stack does so very well–look at on-line banking, travel sites, etc. Do you think they rebuilt every database and server and transformed/migrated all their data? Answer: Nope.