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
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