Scalable Windows services

Hi,

We have a WIndows Services app with the following layers:
1. DAL
2. BLL
3.Windows Service

To give maximum scalability, availability and performance for this application, what are steps that we would need to take

Is it recommended that the Windows Service application be load balanced

Thanks.
Lakshmi





Answer this question

Scalable Windows services

  • daverage

    It depends more on what the windows service is doing and how frequently it is starting the process whatever it is intended to do and how long each process take... you also mentioned that it is using DAL and BLL... where is the database Is it running on the same server (or computer) where the windows service is running or making a connection to the database on a remote computer on the LAN or WAN

    From the windows standpoint, you can use threading for performance and scalability and tune your database (if it is not already tuned)... actually there are a lot of other interdependent components on the windows service worth looking at and not merely the windows service itself.


  • hackmonkey

    loadbalancing is an option you can consider when you want scalability and performance, this is a nice whitepaper about it: Load-Balanced Cluster. Using MSMQ in a loadbalanced way is also an option, but I don't know if it wil fit your solution.

  • Alex Farber

    Also, what do you mean when you say a system should perform well Should the service complete it's task fast Or should the website it is posting to have a fast response time Or should your database have fast response time

    And what is 'good' What is an acceptable level of performance in any of the above cases

    Performance is realy depending on what you call it.


  • drasko982

    Lakshmi wrote:

    The Windows Services application in reference takes data from DB every 10 minutes and posts to an external Website through a Web service. The amount of data may be very large during peak hours of the day, and the system must perform well even during these hours.

    Can you break the data into smaller pieces do you have enough network bandwidth if you do break it up an transmit in parallel

    What system should perform well the one that sends database data or other applications that hit the same DB - in case of the latter if you are using SQL 2005 you can create a database snapshot, this way the service that just reads the data will have its own "private" which wouldn't lock other applications (see this article for example http://www.databasejournal.com/features/mssql/article.php/3524431)

    Arnon



  • CET PRG455

    There is no one solution to give you "maximum" scalability, availability and performance

    it all depends on your usage scenarios - what are your specific goals in order for load balancing to work your logic sould be context-free (a.k.a. "stateless") and get all its context either on the call or from a database - is your application like that

    Arnon



  • IgorP

    HI,

    Thanks for all the replies.

    The Windows Services application in reference takes data from DB every 10 minutes and posts to an external Website through a Web service. The amount of data may be very large during peak hours of the day, and the system must perform well even during these hours.

    This was the reason for considering Load balancing for the application. Please let me know if there is any other better way of architecting the application.

    Thanks.



  • Scalable Windows services