HigherMath Programming Services

N-Tier Architecture: How to Get There

Simple, Inexpensive Building Blocks That Grow With Your Business

It doesn't cost a lot to create a useful system with building blocks that form the basis of a more complex system as your business gets larger and more complex. And you can avoid the heavy expense of having to redesign and redeploy your website once your business has outgrown it. The software built for your website becomes increasingly useful and integrated into your entire business enterprise.

Learn More About Our Team and What We Have to Offer

Click here to find out more about the HigherMath programming team, experience and capabilities. We feature web design and programming as well as optimization and promotion services.

N-Tier Architecture: Getting There One Step at a Time

by Cal Moffett for HigherMath

N-tier architecture is a means to an end. It's a solid foundation upon which an entire enterprise can be built. That doesn't mean that your business has to be put on hold during the construction. Instead, while necessary improvements are being made to your site to meet customer needs and to further integrate it into the whole business, these changes are made with the n-tier idea clearly in mind.

We can help you get there one building block at a time. No extra expense, just clear thinking, planning and good, solid programming backed by experience.

Windows services not accessible via .NET
Third-party DLLs
Routines requiring speed optimization
C++ Modules
ATL COM Wrapper
DLL (inproc COM server component)

Routines Requiring Speed or Access to Functionality Otherwise Inaccessible to Higher Level COM Languages


VB.NET is the preferred platform for programming Windows applications. That is because it has a strong object model and an extremely rich set of classes for accessing most aspects of Windows. It retains most of the features of the old VB making it ideal for rapid prototyping then finishing into the final product.

A (very) few aspects of Windows do not lend themselves readily to treatment under VB.NET. Most features are accessible either via the classes made available by .NET or by accessing the Windows dll's directly. But, some of these dll's are not well-suited to VB access methods.

Some third-party software has not been upgraded to include a COM interface compatible with VB or still uses a plain dll interface. On top of this, some calculation-intensive algorithms are more effectively coded in C.

These require C++ routines preferrably wrapped in a COM interface to make them accessible to VB test routines or to become part of a larger system of interchangeable components.

Windows Services
(Your) Data
C++ COM dll
.NET
3rd Party dll
C++ COM dll
VB.NET Modules
User Interface
EXE (installable application)

Rapid Prototyping, Full Development and Rich Implementation of a Professional-Looking User Interface


The richness of the .NET implementation upon which VB.NET relies means that programs of greater complexity can be produced with much less code. This platform is available and already installed on the vast majority of Windows machines. The flip side of .NET's richness is its sheer volume. Only programmers with many years of experience with the Windows "mindset" and terminology can fully appreciate its capabilites and quickly locate the appropriate class implementations. Also, VB.NET presents a big learning curve to programmers who are mostly familiar with only Visual Basic or only C++ (or Java).

Our team has had just the right experience to take full advantage of this powerful platform. We also believe in paying attention to detail without losing sight of the big picture. That is why we think it is important for our clients to fully understand the software architecture being delivered and how it can be expanded and improved in the future--we believe in thorough planning and documentation.

VB.NET permits the rapid development of the "look and feel" so that it can be agreed upon well before project completion. And, its robustness allows for the "tweaking" necessary to give the interface a clean, professional appearance. The .NET runtime can handle the lion's share of Windows and data access. But, as outlined in the first section above, we can add or communicate with other dll's as needed.

Business Data
XML, MS Access, SQL Server, etc.
ADO.NET/DB Service Provider
VB.NET Modules
Data Access Layer
VB.NET Modules
Business Rules
Database Component

Complete Database Design and Addition of Business Rules


As the business requirements become more complex it becomes necessary to use well-established database technology. A simple database in MS Access grows to one that requires the power of SQL Server. At the same time for the sake of data integrity, the database requires a growing number of tables that should be designed in third normal form and beyond.

Migration from one kind of data input to another is facilated by the separation of a set of objects that enforce the "business rules" of the enterprise. All data access will use this same interface and, thus, will not have to change if the form of the incoming or outgoing data changes. This is possible by introducing a layer of interchangeable objects based on virtual base classes. These "data access" objects are tuned to the requirements of the underlying data access methods and return the data in a homogenized fashion.

For example, it is possible to read data from an XML file and, after massaging it, store in the main database. Without changing the application, it should also be possible to read the same kind of data from another database instead of XML simply by selecting the appropriate data access object from the data access layer.

Database Component
Web Server
XML Data Island
Javascript
Client-Side HTML
Javascript
Events/Validation
HTML/CSS
User Interface
Web Page as Presented in the Browser

Enhancing the User's Web Experience While Optimizing Server Access


The vast majority of users employ the later browser technologies yet few sites take advantage of this. Features we can help you implement:

  • Presentation that is eye-catching and more professional.
  • Dynamic creation of display elements that respond to user input completely on the client-side.
  • More intelligent form validation.
  • Structured XML data that allows for much more functionality to take place on the client thus avoiding many client-server round trips.
Data Layer
Data Access Layer
Business Layer
Workflow Layer
Presentation Layer
Five-Tier Architecture

Evolution Towards a Complete Five Tier Architecture


The components presented above all add up to a robust five tier architecture. The Workflow Layer consists initially of simple ASP.NET VBScript commands to direct traffic between the Presentation and Business Layers. As more standalone applications such as interactive reporting systems are developed, this layer becomes a series of objects representing "forms" in, say, VB or HTML.

Whether your business is just getting into software or needs to expand its product offerings we can help.

  • Programming
  • Training
  • Advice

Contact us at

irb.support@highermath.com



Copyright (C) 2003,2004,2005 by Higher Math, All Rights Reserved
All trademarks are the property of their respective owners