Webapp Architecture Problem

A

arthernan

A client of mine wants me to build a custom web application. For
security reasons he does not want to install a database client/api on
his DMZ zone. He wants to have an application running in their LAN that
has a custom API available to the Webserver. Have the Webserver in the
DMZ Zone and then that server will connect to the internet.



This sounds reasonable to me. He does not pretend to have the custom
API to mimic a database API. He wants it to be custom to his
application (e.g. CreateInvoice(....)).



Following this line of thought, I'm trying to come up with some
architectural concepts before starting to build the application. I am
planning to do this in .NET, so the communication mechanism would be
NET remoting. This middle's app API would probably have procedure calls
that will resemble the Web App screens. Now here is my dilemma:



ASP.NET has loose coupling in the sense that if one web page is
changed, it can be replaced by copying over it's aspx and dll files and
ASP.NET loads it into memory when it finishes processing the current
sessions. In my case this will be a small proyect and my client
requires flexibility in deployment schedule. There could be a feature
set that has a high priority and affects 3 to 4 pages. But priorities
change and he now wants me to make a change in 2 pages but the users
are not ready for the other change. ASP.NET will handle that fine
because I can just replace the files I need and viola, my customer is
happy.



Now if a have ONE compiled executable that sits between the database
server and the web server. Then I do run into versioning issues. A way
to fix this would be to do the same thing that ASP.NET does on the
Webserver. And write smaller executables that can be restarted and
won't affect the rest of the application.



My questions are:



1 Does anybody has some code on how to hold all new requests to an
AppDomain until all outstanding requests are processed and then reload
the AppServer and release the requests?



2 Is there an easy way to write a control application that can stop and
start these applications so they don't have to be it's own little icon
on a folder?



3 On the overall does anybody see any holes with this approach?



Arturo Hernandez
 
D

Darren Kopp

I'm only replying to the first part of your question, as I don't know
how to guide you on the rest. The design that you want to do is put
the webserver on the DMZ, and then have the sql server on a server
behind the firewall. You don't need to write your own API to interact
with the database, you control that through the firewall rules and the
integrated security (such as windows security).

Here are some articles that I think may be of use to you:
http://www.15seconds.com/issue/020715.htm
http://www.microsoft.com/sql/prodinfo/previousversions/securingsqlserver.mspx
http://msdn.microsoft.com/library/d...y/en-us/vsent7/html/vxcondatabasesecurity.asp

HTH,
Darren Kopp
http://blog.secudocs.com/
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top