QuestFields and Service-Oriented Architecture
This page explains how the QuestFields technology fits into modern Service-Oriented Architectures and how the QuestFields Server can query existing Web Services. QuestFields provide an end-to-end solution, so does not require a Service-Oriented Architecture.
What is SOA?
A Service Oriented Architecture (SOA) is an architectural style whose goal is to achieve loose coupling among interacting software agents. A "Service" is a unit of work done by a service provider to achieve desired end results for a service consumer. Services running over the Internet that exchange information using standard XML formatting are called "web services".
Industry giants Microsoft and IBM are embracing XML web services as a major paradigm shift towards creating standardized ways to exchange information between previously incompatible systems. Frameworks available in Microsoft’s .NET and IBM’s WebSphere suite make it easier than ever to make enterprise data available as a web service and to use web services as data providers in applications and as a means to exchange data between corporate IT systems.
XML web services are indeed making it easier to exchange information between distributed systems, but the standard should not be seen as a “cure all” for enterprise applications. For example, web services standards do not currently provide out-of-the-box solutions for security, operational management, transactions, or reliable messaging.
Provider and consumer are roles played by software agents on behalf of their owners (see this O'Reilly article). Coupling between the software agents is usually achieved using XML using the HTTP transport mechanism.
There are currently 3 standards used for implementing a SOA:
- XML-RPC a simple remote procedure call (RPC) mechanism that uses HTTP as a transport;
- SOAP and related WS-* (WSDL, BPEL etc.) specifications that describe a large set of communication protocols like RPC using XML over HTTP (for a large list of the specifications used in this standard see the Web Services specifications on Wikipedia);
- Representational State Transfer (REST), which uses URLs to define the resources and the state of those resources, HTTP verbs (GET, PUT, POST and DELETE) to define the action and XML (amongst others) to define the result.
How QuestFields relate to SOA
QuestFields are used to improve the user interaction with your web pages accessing large databases. It does so using an optimized protocol (called QOP, using XML over HTTP) to communicate between QuestFields Clients (QuestFields) and the QuestFields Server. This technique is similar to the techniques used by most of the SOA standards. Therefore, QuestFields thrive in a SOA rich environment.
QuestFields can be used to query any SOA-based service. The QuestFields Server effectively becomes the consumer for any SOA based service. The service will be called by the QuestFields Server, which caches results from the Web Service to significantly increase performance.
How QuestFields leverage SOA
The QuestFields Server queries SOA based services using the Custom Content Access Module (CAM). The Custom CAM supports the creation of "plug-ins". Plug-ins can be created to query any particular back-end that is accessible using simple APIs, including any SOA based services. The Custom CAM comes with thorough, yet easy-to-understand, API specifications that allow QuestFields licensees to create their own plug-ins, typically with only 10-20 lines of code per service. This facilitates creating plug-ins for your own SOA based services or for any other content source that you want to make available to QuestField users.