WCF & Web Services - designing the backend of your system

Creating the parts of an application that lie behind the scenes is just as complex as the interface that is presented to the end-user, whether in a browser, or running in Windows. And just as critical when it comes to meeting performance targets. Terms such as Client-Server, N-tier design, Web Services, WCF, Cloud services and others all describe ways and technologies for designing how data is moved between the database, the server and the client device and back again.

They are also important because a system designed for a few dozen users simply won’t scale up to several thousand unless significant changes are made. This is why an online shopping site may work fine until a special sale begins, and then it promptly crashes. It wasn’t designed or planned for that kind of peak usage. There are questions that we will discuss with you when planning your system that will allow us to avoid such problems:

How much data will the system need to hold? How fast will this grow?

What level of security is desirable, or mandatory?

Will this be used by a few people, dozens, hundreds, more? Will they use it at the same time, or at irregular periods through the day. Will be system be hammered at particular points in the day, or specific dates in the calendar (eg: end of the financial year, during sales periods).

Is there a pattern to use, eg: only a few people entering/updating information, but many more just running reports.

What risk of clashes are there, where two different users might accidentally attempt to create or edit the same data at the same time? What kind of practical constraints exist which could be used to track or prevent this (eg: users in each state will only be concerned with data originating in their offices)

Performance expectations. Does it have to process a specific number of transactions per minute, or move a specific amount of data per second? Is this a guideline or a make-or-break issue?

Does the application (or backend) serve data just to your website/application, or will it be a general portal that anyone can access. What level of security checking, login, administration is required?

Are the end users all working with the same platform, windows version, internet speed... or do we have to manage differences (eg: remote areas using low speed or dial up connections, while others have fast broadband connections, and others share a high speed connection in an office, which as a result can drastically slow down or become flaky when a lot of people are online)

Contact us today

Copyright © Castle Software Australia Pty Ltd. All rights reserved.

Website constructed using Visual Studio 2013 and Bootstrap.