Need Help

D

Dinesh Upare

Friends,
Please provide suggestions to improve the performance of webservices?

The current architecture and problems : -
The webservices are installed on Server1, the database server is also on
Server1,
But the database for authentication is on Server2 and authorization
webservice is on server2.
client is Winform Application.

The authentication database server has to be different than the company
database.
Currently every time a web service is called on server1 the authorization is
checked.
As there are no. of webservice called from Windows Client, every time the
call is made the
authorization webservice at server2 is called, This is making the response
time so long.

I have following options -
1. Maintainig a session between client and server.
And the authorization will be done only once between the session.

Is this a right approach?

What else can be done to improve the performance?
Microsoft application block is used for database connection.


Thanks

Dinesh
 
N

Nick Malik

Look for some things:

1) is your authorization service multithreaded? You may have some issues
with the authorization service, especially if it is using a .NET remoting
service that is declared as a singleton. Stress test that service.

2) when credentials come to the auth server, and the auth server accepts the
credentials, have the primary server create an encrypted string and pass it
back to the calling application. Then, the calling application keeps
sending back the encrypted key with each subsequent call.
The main server decrypts the string, which should contain something basic:
(like the originating IP address and a timestamp for when the encrypted key
will no longer be valid... say five minutes after the credential check). If
the key is valid, don't go to the auth server... just accept the
transaction.

3) Do not attempt to keep the connection open... defeats the purpose of the
web service

4) Make sure that you are not making dozens of calls on your web service.
Optimize. If you need to make 20 calls when a particular event occurs,
create a web method where all of the input is given at once, and all 20
result sets are returned at once. You now only need to validate credentials
once.

Good Luck,
--- Nick Malik
 

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