Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
See more: C# WCF Application architecture , +
Hi,
 
What would be an ideal architecture for a Web application which is interactive, having n to 1000 users connected at any given moment of time. The data will be saved in DB but there should be some part of memory buffering and queuing required to serve faster.
 
I have a basic architecture in my mind:
There would be a Web server handling user sessions and requests; And a services that would sit between DB and Web server.
The service would be queuing data for saving as well as maintaining it in memory for faster response.
 
I require some views over the service to avoid request-response bottlenecking between web server. Can a WCF service configured to handle request load. Is this model robust enough to maintain user integrity and response speed.
 
Thanx,
-oNmEsH
Posted 18-Jan-12 19:31pm
oNmEsH684
Comments
SAKryukov at 19-Jan-12 1:41am
   
This is a very vague question. There is no such thing as "perfect architecture", or at least such thing is not defined. Selection on architectural features depends on many other factors.
 
One comment: a role of services between DB and Web server is not clear. It could be simply ASP.NET code behind. Are you familiar with commonly known architectural patterns like MVC, MVP, MVVM? Multi-tier?
 
--SA
Jephunneh Malazarte at 19-Jan-12 2:06am
   
oNmEsH are you refering SOA?
oNmEsH at 20-Jan-12 10:41am
   
not refering to SOA. It is specific requirement; there is a three-tier server-client application need to be replaced with a WEB application.
--oNmEsH
Wonde Tadesse at 29-Jan-12 16:10pm
   
This doesn't fall to a question, perhaps you are requesting a suggestion and the answers given below are way to go.
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 2

Have a look at http://umbraco.com/[^]
 
I think that will do nicely - just watch the video Smile | :)
 
Best regards
Espen Harlinn
  Permalink  
Comments
Wonde Tadesse at 29-Jan-12 16:08pm
   
5+. Good reference and no need to waste time!
Espen Harlinn at 29-Jan-12 16:11pm
   
Thank you Wonde :)
BillWoodruff at 29-Jan-12 16:45pm
   
I have often wondered about the capabilities of the free Umbarco (where you don't get the expensive add-ons).
 
The "Courier" add-on, which is going to cost you nearly 500 Euros, and lets you: "be able to move content and media from test to live site in a simple one-click operation," and "analyzes dependencies," for example, raises the question, for me, of how, without Courier, using the free version, you get your content and media to the live site (good-old FTP ?). But, that's a question I should, and will, ask Umbarco: certainly don't intend to ask you :)
 
Thanks for reminding me to look again. +5
Espen Harlinn at 29-Jan-12 16:48pm
   
Thank you Bill :)
thatraja at 29-Jan-12 21:13pm
   
Agree with others, 5!
Espen Harlinn at 30-Jan-12 6:23am
   
Thank you thatraja :)
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 1

Starting from the WCF question, yes, you have some control over how WCF throttles requests and how it instantiate service instances. However I'm not sure how this will fit exactly into solving your problem.
If the user requests do not require the heavy processing (DB transactions and calculations for example) then the queuing option you've mentioned sounds good. How to achieve it has several options as:
-Use WCF over MSMQ to queue user requests to be processed later.
-Using specialized message queuing services like Azure service bus or queues. Or Amazon's SQS aws.amazon.com/sqs/
 
I hope this helps
  Permalink  
Comments
oNmEsH at 30-Jan-12 1:31am
   
thanx 4 ur comments; some insight ...
--oNmEsH

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
0 CHill60 575
1 Sergey Alexandrovich Kryukov 499
2 OriginalGriff 325
3 PIEBALDconsult 285
4 BillWoodruff 193


Advertise | Privacy | Mobile
Web01 | 2.8.141015.1 | Last Updated 29 Jan 2012
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100