Tiers of an application developer

Daily Newsletters

Sign up to ZDNet UK's daily newsletter.

ANALYSIS
Microsoft provides a complete range of products that allow companies to develop and deploy n-tier applications. What's been lacking in the move from client-server applications to Internet applications to logical n-tier designs is some guidance on what functions should logically reside in each tier and how they can be stitched together to form a cohesive application that has reusable parts. To help guide you through such a movement, I've identified the core component functions for each tier. While discussing these components, I'll offer some basic recommendations for planning applications based on a three-tier logical design. The presentation tier
Most developers think of the presentation tier as simply the Web or Windows forms that collect and validate information from the users of the application. But creating monolithic forms that also contain the process and state management functionality needed by the user interface (UI) requires that you duplicate these functions for each potential client device. To promote reusability and reduce code duplication, the presentation tier should be decomposed into two component types. The first component is the user interface, which consists of the forms required to process incoming information or display information retrieved from the business tier. But information about the state of a process (e.g., order entry or invoice processing) should be maintained in a separate user process (UP) component. The UP component can drive and manage the user process whether it's initiated from a Web client, Windows client, or device. The business tier
Components in the business tier receive requests from UP components. The requests are translated into actions controlled by the defined workflow according to the established rules, which are coded into the components. They are also responsible for interfacing with external systems to give the UP components the perception of a unified layer from which they can consume a standard set of services. The functions of the business tier can be decomposed into three key component types: business workflow (BW), business rules (BR), and service agents (SA). BW components manage the series of events required to complete a business transaction. These events may occur in a short period of time or could be long-running transactions. The commerce server pipeline (CSP) is an example of a BW component. The CSP takes the order basket managed by the UP component and then walks it through a series of steps including credit card validation, shipping management, and taxation. When completed, it returns an order ID to the UP component that can be displayed by a UI component. Long-running transactions can be managed either by Windows services configured to watch queues or database tables and respond to changes by driving workflow events, or by servers such as BizTalk that have a complex orchestration engine that performs similar functions. BW components manage the process, but they use BR components to enforce rules or perform specific tasks. If developed correctly, different BW components from different applications will consume the same BR components. Many times, the functions required by an application have already been implemented in other corporate or partner systems. Rather than duplicating effort, you may choose to consume these services from your business tier. To make all of your component interfaces consistent, you should develop a set of SAs that consume outside services and create this common façade. That way, whether the outside service is a Web service, a CICS session on a mainframe, or even an EJB component, the internal representation is a consistent .NET component interface. The data tier
Although the implementation of data access (DA) components is fairly simple, the debate over how to use them properly is still hotly contested. On one side, you have the DBAs who believe that all business rules should exist in stored procedures and triggers. On the other, you have developers who believe the sole function of the database should be to optimize data access. As a system architect, I side with the latter group. I've seen too many systems that became unmanageable and lost their performance edge over time because the server became too bogged down in business-rules processing. Most n-tier analysts now agree that the function of the DA component should be to simply provide create, read, update, and delete (CRUD) functionality to the BR components and participate in the transactions that they initiate. The other key element to consider in your n-tier design is how you pass data between the tiers. The business entity (BE) component encapsulates all of the data that passes between the tiers and may also include data validation (in the case of a dataset or object). Deciding on the type of BE used to move data will be one of the most significant decisions you make when initially designing your system. Given the new set of tools that Microsoft provides, it is easier than ever to actually create the components from which you will compose your application. But you still need to take the time to design each component and the methodology for passing BEs between them.
Have your say instantly in the Tech Update forum. Find out what's where in the new Tech Update with our Guided Tour. Let the editors know what you think in the Mailroom.

Post your comment

In order to post a comment you need to be registered and logged in.

You can also log in with Facebook. Log in or create your ZDNet UK account below

  • Login

Will not be displayed with your comment

By signing up for this service, you indicate that you agree to our Terms and Conditions and have read and understood our Privacy Policy. Questions about membership? Find the answers in the Community FAQ

Get ZDNet UK's daily newsletter

Enter your email address to sign up

ZDNet UK Live

JCB33

How dare film makers, artists or anybody that invests in creativity stop us pirating their works for free. I want to be able to walk into my local...

5 hours ago by JCB33 on ACTA stumbles in Germany
Moley

@GrueMaster. I prefer horses for courses rather than one size fits all. I, and I suspect most other computer users, do not really wish to have...

8 hours ago by Moley on A tale of two distros: Ubuntu and Linux Mint
greycynic

The product that scares me every time I have to use it is the Office 2007 version of Excel. The first bug that I found was applying the median...

8 hours ago by greycynic on Ten flawed products that derail productivity
GrueMaster

Nice review and very informative. One thing I'd like to add (in reply to whs001's 1st question), the main reason to have the same interface from...

9 hours ago by GrueMaster on A tale of two distros: Ubuntu and Linux Mint
Frederick Wrigley

I'be been using Mint 12 since the RC came out, and I am far more happy with the Cinnamon, the Mate, and, yes (with extensions), theGnome 3...

10 hours ago by Frederick Wrigley via Facebook on A tale of two distros: Ubuntu and Linux Mint
bdantas

Excellent article. One small correction, though--although a fresh installation of Linux Mint 12 will, indeed, provide the user with a version of...

11 hours ago by bdantas on A tale of two distros: Ubuntu and Linux Mint
Alan Ralph

In related news, the ISPs club together to get the members of the Home Affairs Select Committee (ya goofed on that part, ZDNet UK) copies of "The...

11 hours ago by Alan Ralph via Facebook on MPs urge ISPs to take down terrorist material
Alan Ralph

In related news, the ISPs club together to get the members of the Home Affairs Select Committee (ya goofed on that part, ZDNet UK) copies of "The...

11 hours ago by Alan Ralph via Facebook on MPs urge ISPs to take down terrorist material
Moley

For Gnome 2 die-hards, it is possible to add icons to the bottom panel (or top top panel, if you prefer) which provide the exact Gnome 2...

12 hours ago by Moley on A tale of two distros: Ubuntu and Linux Mint
ramwellian

Your comments would seem pretty naive and immature. Your 'solution' appears to be, "gee, let's all just give in to the hackers and give them...

12 hours ago by ramwellian on Cloud computing security: no more oxymoron?
BugStalker

"Interesting thought ... If you installed Win7 as a dual boot on a machine that previously only had Linux, and it wrecked your Linux installation,...

12 hours ago by BugStalker on Windows 7 Declares War on GRUB
whs001

This is an excellent summary of Ubuntu and Mint and the interface differences between them. Most such articles take a very partisan position for...

12 hours ago by whs001 on A tale of two distros: Ubuntu and Linux Mint
Moley

@ewallace. Not so clear. Anyone can obtain the text, for example from here http://www.ustr.gov/webfm_send/2379. I support ACTA so long as it and...

13 hours ago by Moley on ACTA: Facts, misconceptions and questions
45283

I think WinRT is fantastic. I just wish it was an option for people that didn't want to go through Microsoft's App Store with its attendant...

16 hours ago by 45283 on Why Windows 8 needs architectural hygiene for WOA
Burn-IT

Nine people? £30m? Who's back pocket is that lot going in? And IF they say it is for new buildings, what about all the ones the government has...

17 hours ago by Burn-IT on Police set to launch three £30m e-crime hubs
ewallace

Just to be clear, nobody knows what is in the text of ACTA, here is a photograph of the text of ACTA http://twitpic.com/8h9iju as submitted to the...

17 hours ago by ewallace on ACTA: Facts, misconceptions and questions
fgvrg56

Unfortunately main issue is that ASUS is refusing to accept that they make some mistake on this version of asus Transformer prime. 1 - GPS sensor...

18 hours ago by fgvrg56 on Asus Eee Pad Transformer Prime Wi-Fi & GPS problems?
Ben Woods

@Marcus A fair question. Just talked with Archos which said it was working on an announcement for next week....

19 hours ago by Ben Woods on Archos confirms G9 Ice Cream Sandwich update schedule
Marcus Karlsson

Any update on this, considering the claimed "first week of February"?

21 hours ago by Marcus Karlsson via Facebook on Archos confirms G9 Ice Cream Sandwich update schedule
apexwm

Bill Goodrich : Just as al_langevin pointed out, with Windows Server 2008 there is no Services for Macintosh anymore. It's gone, not available....

1 day ago by apexwm on Windows Server 2008 drops the ball for Mac compatibility