axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Glen Daniels" <>
Subject Re: global vs transport chain defs
Date Sat, 28 Jul 2001 21:45:10 GMT

We were heading there, but hadn't arrived yet. :)

We've got one of our engineers working on fleshing out James' WSDD code, so
once that's done we'll probably move to the "global chain as targetedChain"
model as we switch over to using WSDD for configuration.  This will all be
post-alpha, though, since we want to keep things as stable as possible while
we're rolling it out the door (which looks like it'll finally happen this
coming week, assuming we get the docs in good shape).

Truth be told, as you know, I prefer the "chains calling chains" model, and
would like to open that question in the post-alpha timeframe as well.  For
those not familiar with this issue, a quick summary is below:

The Axis engine (i.e. client/server) currently manually runs through the
processing model in invoke() - for the server processing an incoming message
this goes:

1. transport req
2. global req
3. service[ req, pivot, resp]
4. global resp
5. transport resp

For the client sending a message, it's:

1. service req
2. global req
3. transport[ req, pivot, resp]
4. global resp
5. service resp

Note that the engine makes each call itself, looking up components in the
registry as needed.

I believe that instead of fixing the processing model in the code like this,
it's a cleaner design to use deployment information to set up the service,
global, and transport handlers as targeted chains with appropriate pivot
handlers which implement the processing model.  So for the server you end up
with this:

1.engine calls transport
    transport req runs
    [transport pivot is configured to call global]
      global req runs
      [global pivot is configured to do service dispatch]
        service runs [req, pivot, resp]
      global resp runs
    transport resp runs
  engine returns

In this model the engine only makes one call, and the pre-configured
handlers do the rest.

Don't want to get into this too deeply now, but would like to think about


----- Original Message -----
From: "Doug Davis" <>
To: <>
Sent: Saturday, July 28, 2001 5:20 PM
Subject: global vs transport chain defs

> When transport chains are defined we define a single chain with a request
> and response side.  When we define the global chain we actually define two
> different chains (global.request and global.response) - seems
> Why is the global one split into 2?
> -Dug

View raw message