what does virgin body mean?

Asked by Bob

does virgin body just mean a new whole http request being received by the host application, and the host app passes it to our adapter without handling it, so we call it a Virgin Body?

Question information

English Edit question
eCAP Edit question
No assignee Edit question
Solved by:
Alex Rousskov
Last query:
Last reply:
Revision history for this message
Best Alex Rousskov (rousskov) said :

In eCAP terminology, "virgin" means "coming from the host application to the adapter" (i.e., before adaptation or unaltered) and "adapted" means "coming from the adapter to the host application" (i.e., after adaptation or altered). Please keep in mind that "virgin" and "adapted" are just labels -- the adapter transaction does not have to modify the message it is given. Useful monitoring, read-only adapters do exist.

In general, the adapter cannot know whether the host application received the virgin message from another HTTP agent or from another adaptation service. Adaptation service chains are not uncommon. For example, the following diagram shows HTTP message paths through an HTTP proxy host application called "proxy", configured with several chained adaptation services:

  request path: HTTP client -> [proxy -> REQMOD1 -> proxy -> REQMOD2 -> proxy] -> HTTP server
  response path: HTTP server -> [proxy -> RESPMOD1 -> proxy -> RESPMOD2 -> proxy] -> HTTP client

In the above example, the adaptation service called REQMOD2 receives its virgin request from the REQMOD1 service and not directly from the HTTP client. All those multiple adaptations happen "inside" the host application (the square brackets).

The host application may apply some modifications of its own before giving the message to an adaptation service. For example, the host application may remove hop-by-hop HTTP headers and decode message body transfer encodings (e.g., chunked). However, exactly what modifications are applied (if any) depends on the host application. None are required IIRC.

Revision history for this message
Bob (362061693-k) said :

Alex, thanks for your clear digram.

since I developed Apache filter modules several years ago, your digram recalled me some concepts about it. In Apache, there are two filter chains, one for input chain, the other one for output chain, very similar to eCAP's adapter mechnism.

Revision history for this message
Bob (362061693-k) said :

Thanks Alex Rousskov, that solved my question.