> Is it a wise idea to perform operations from windows service like
database query to retrieve the data, send the email notifications to
the users, updating the database etc...?
There is no particular reason not to, except if you want to keep all
such code centralised in the web application, rather than having some
data access code in the website and some in a service. Putting all such
code in the web application would probably make maintenance easier.
Instead of windows service doing it, can we have a web service do the
detailed operations mentioned above and windows service just calling
the methods of the web service...?
Yes, that is certainly feasible, and would be a fairly neat way of
doing it.
Would like to get suggestions to keep the windows service and
webservice in single system or different system...? (Windows Service in
Web Application System and Web Service in Database server System...)
If the web application needs access to the database anyway, there seems
to be no real advantage in putting the web service (which also needs
the database) on the data server, if it is still going to be accessed
by the web application from its server. Also, if the windows service
does just call methods of the web service, then it would have so little
overhead or attack surface that it could go on either server, with no
real difference in performance or maintainability , although putting it
on the same server as the web service it calls would mean that the web
service does not need to accept remote connections, making it more
secure.
It is still probably best to keep the database on a separate server
(mainly for performance reasons); I would probably have it so the
database server did nothing but the database, and did not host either
of the services or the main application.