Implement Web Application as httpModule?

  • Thread starter Thread starter Joseph Geretz
  • Start date Start date
J

Joseph Geretz

I'm implementing a web application whose purpose in life is to act as a data
conduit. Data is posted to my Web app in XML format, my application examines
the data and forwards it onward by posting it to the appropriate upstream
server.

Since transaction processing is largely identical regardless of the
transaction details (these will be handled by an upstream sever) I'm
thinking of implementing my application as an HttpModule. But I'm wondering
how this will work in terms of scalabiliy. If I understand the httpModule
architecture, there is only a single instance created to service all
transactions, even if several aspx page instances are created to handle
concurrentt page requests. If this is correct, will my proposed application
architecture destroy scalability by serializing all calls through the single
httpmodule instance? Or am I completely off base with this concern?

Thanks for your advice!

Joseph Geretz
 
Depending on what you are trying to accomplish, I think you might look at
BizTalk, as it has the message bus and orchestration funcationality you are
describing in this post. You already have the multithread issues solved with
BizTalk and it talks in XML.

--
Gregory A. Beamer
MVP, MCP: +I, SE, SD, DBA

Subscribe to my blog
http://feeds.feedburner.com/GregoryBeamer#

or just read it:
http://feeds.feedburner.com/GregoryBeamer

********************************************
| Think outside the box! |
********************************************
 
you are not quite correct. there is a pool of HttpApplication instances.
each of these instance only need one instance of a given httpmodule,
as a HttpApplication instance is dedicated to each request and returned
to the pool after the request is processed.

your approach is fine, you may also want to look at the MVC library as
its supports a REST interface and url routing out of the box. you can
create as many of as few controllers as you need.

-- bruce (sqlwork.com)
 
Hi Bruce, thanks for your reply.
you are not quite correct. there is a pool of HttpApplication instances.
each of these instance only need one instance of a given httpmodule, as a
HttpApplication instance is dedicated to each request and returned to the
pool after the request is processed.

Can you elaborate on this please? I have been under the impression that each
web application implements a single Application instance which is why data
stored at the Application scope is accessible to all transactions executing
within that Application. The fact that there are actually more than a single
Application instance is a revelation to me. Are you saying that the
Application object is implemented as multiple instances sharing static data?
This would explain how multiple instances of the application object would
provide the same data to all instances. This would also explain why the
HttpModule implementation per se, would not be barrier to scalability.

Thanks for your advice!

Joseph Geretz
 
Hi Greg,

BizTalk is a commercial add-on to IIS correct? That would be out of line
with the cost requirements for the infrastructure we are developing. Part of
our mandate is to implement this in a way to allow our customers to
participate in the transactional pipeline. Since IIS is a core part of
today's OS, we can simply deliver our application to our customers and they
can get online. If we used BizTalk our customers would need to purchase
BizTalk in order to participate.

Thanks though, for your suggestion.

Joseph Geretz
 
Back
Top