Last post Jun 08, 2011 05:39 PM by Keep it Simple
Jun 06, 2011 01:14 PM|sdowd|LINK
I have a legacy dll that sits in my application bin folder and uses sockets to connect to the main server. It takes a few seconds for a user to authenticate against the legacy API so I can not re-connect on each request. Therefore I store the connected
and authenticated socket in a session variable. I poll the server each second which pulls the socket from the session and makes a request to the API server to check for changes. I attempted to move the connected socket session variable from in process to
the asp.net state service but was unable to as a socket can not be serialized. I am looking for ways to scale out this application and any advice would be useful. Thank you.
Jun 07, 2011 02:45 AM|Keep it Simple|LINK
How old is "legacy"?
" ... connect to the main server". What is the main server? E.g. app, database etc.
Polling the server each second is extremely taxing, A poor mode of operation to scale out any application.
It might be time to let go of the past and change your architecture to use the entire Microsoft technology stack: ASP.NET 4 | IIS 7.5 | SQL Server 2008 R2 | Windows Server 2008 R2.
Then you can implement top performance coupled with strong security properly; and be able to scale out - and get current support if neeeded.
Jun 08, 2011 09:34 AM|sdowd|LINK
The legacy server is an order management system built over 10 years ago in vc++ 6.0 i believe. The company that manages that server provided a dll that uses a tcp socket to connect, request account info, and place orders. I store the connected socket in
an inproc session using a pattern they provided. The application usage has increased and I am concerned about scalability. I attempted to move the session to the out of process but I am unable to serialize the connected socket. I am also thinking this is
an architecture issue but I was curious if anyone has run into this serialization issue and could provide some advice on scaling the system we have now.
Jun 08, 2011 05:39 PM|Keep it Simple|LINK
built over 10 years ago in vc++ 6.0 i believe
A long time ago indeed.
The application usage has increased and I am concerned about scalability
If you're not ready to change the application architecure, a short term possibility is to throw more hardware at it. Get a new server with high performance dual or quad CPU, plenty of RAM e.g. 32 GB, and fast HDD e.g. 15K RPM in RAID 5 configuration.
You can then re-use the hardware if you decide to overhault the app. So, it will be money well spent.
Serialisation between seperate systems is handled automatically by XML Web Services; but it seems you're running a Win 32 COM based app.