473,320 Members | 1,867 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,320 software developers and data experts.

Re: Another option for keeping application tiers independent

On Jun 13, 3:09*pm, "Bob Powell [MVP]" <b...@spamkillerbobpowell.net>
wrote:
I think this is possibly the longest post I've ever seen on this group.
I will try to be brief in my response.
I apologize for the size. I should have probably put this on a blog or
something.
>
Dependencies within any architecture are inevitable. How those dependencies
affect the physical structure of the application is important. Detailed
information on levelization of an architecture, the mastering of the
physical rather than the logical structure of the application can be
obtained easily in a .Net context using nDepend.
I'm not interested in tools. I interested in concepts / better ways of
handling day-to-day design decisions.
>
Your point about authentication seems to be confused and I don't see how it
might change the way your dependencies work. The role or rights of the user
may be specific but unless your architecture is lousy that shouldn't make
the application more monolithic.
The point with authentication was that there is no such thing as a
perfect separation between the user interface and the data tier. With
that unavoidable fact, it really doesn't make sense for there to be a
tier in the middle that, more than likely, also needs to be aware of
the data tier. This huge post was really identifying that single fact
and finding ways of eliminating unnecessary dependencies. I never said
the solution proposed should be accepted by anyone; I just thought
someone might find a different approach to system architecture useful.
The folks in my shop did. I would recommend reading "Patterns of
Enterprise Architecture" by Martin Fowler. He touches on the common
problem of keeping tiers separated. In many shops, the solidity of a
system takes months to be realized. Furthermore, keeping things
independent increases the ease of testing. I am kind of questioning
the viability of a layered architecture as is found in many newer
applications. There is a strong assumption by developers that an
application will always stay within the boundaries of a DLL. The
architecture I presented eliminated some of these issues . . . but
obviously came with problems of its own . . .

This article had nothing to do with the size of the application. I
have successfully implemented a few applications with this
architecture. It turned out to be a very useful architecture for
maximizing code reuse. In fact, by cutting a few corners, I was able
to implement these applications with about the same amount of code as
any other architecture. I kind took the goals of the architecture to a
higher degree than necessary. My goal in doing that was to show that
complete independence can be achieved.
>
I think that you are describing a need for a service oriented architecture
in which the authentication plays a primary role.
Not a primary role. Not even close! The problem is that even a single
log on screen can impact the entire application if the architecture
isn't carefully chosen. Most layered architectures rely on a static
data source. Some risk can be mitigated by hiding the data source
behind the data tier. However, this will not be 100% possible. 99% of
the time in single-point applications, this probably doesn't even
matter. However, in multi-point architectures, assuming one data
source can totally ruin a system. Even switching between on database
vendor to another can be a massive change, since the authentication
method may change.
>
I work in a very secure environment; a bank. We have to deal with
authentication and data oriented architectures all the time and we pay
careful attention to the way we build our applications. We certainly don't
have the sort of problems you seems to complain of and we deal with trades
of millions of dollars per day.
The size of the application is inconsequential. Your bank probably has
a very specific way of authenticating and a very specific type of
storage. It is probably okay for your shop to assume Oracle or SQL
Server. How aware is your user interface of the database? How aware of
the databases are your business processes? How much of the business
logic is repeated across applications? How well could your software
handle switching between Oracle and SQL Server . . . XML documents?

All I am saying is that it is almost impossible for a change in the
data tier to affect only the data tier. The reality is that it will
undoubtably affect the user interface. If you are using a layered
architecture, it is also likely that it will affect the domain layer.
How do you minimize the impact?
--
--
Bob Powell [MVP]
Jun 27 '08 #1
0 1487

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
by: Edward | last post by:
I have a data entry form that allows the user to navigate around entirely using the keyboard. However, it contains various option button controls which are in the tab order. Whenever they are...
2
by: swoozie | last post by:
This may not be a MSSQL-specific question, but I wanted to ask it here first, in case there's a MSSQL and/or SourceSafe solution that will help. Our dev team is having some difficulty with...
2
by: Pablo | last post by:
My application uses a class to access to the dataBase, there are several ones who are bussines objects (and uses the first one to work with the database) and, finally, I have the interface objects....
4
by: tsui | last post by:
Dear all Someone say that past is Client/Server application, and now is distributed application, but i don't understand these terms Is it Client/Server application is mean two tiers, and only one...
7
by: Venkat Venkataramanan | last post by:
Hello: I have a UI layer that interacts with the business layer which interacts with the DB layer. I have developed the business layer as a class library that complies to a DLL that will be...
1
by: Robert Strickland | last post by:
We are developing a several web applications that use 'services' that perform key business functions for our applications. These same 'services' are avaible to paying clients through web services. ...
4
by: Navin Mishra | last post by:
Hi, Are there any implications of having ASMX and ASPX in same ASP.NET application ? Both would share the same global varriables, etc. Regards Navin
13
by: mehdi_mousavi | last post by:
Hi folks, In an N-tier application, what is the possible values of N??? I'm not kidding, I just interviewed with a programmer today, and he started the "2-tier application" conversation. From then...
4
by: tobin | last post by:
Hi folks, We're looking for a CMS system for our organisation, and we're picking potential solutions. We need something that is scalable cause we're a growing company, so there's potentially...
0
by: DolphinDB | last post by:
Tired of spending countless mintues downsampling your data? Look no further! In this article, you’ll learn how to efficiently downsample 6.48 billion high-frequency records to 61 million...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
1
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
by: Vimpel783 | last post by:
Hello! Guys, I found this code on the Internet, but I need to modify it a little. It works well, the problem is this: Data is sent from only one cell, in this case B5, but it is necessary that data...
0
by: ArrayDB | last post by:
The error message I've encountered is; ERROR:root:Error generating model response: exception: access violation writing 0x0000000000005140, which seems to be indicative of an access violation...
1
by: PapaRatzi | last post by:
Hello, I am teaching myself MS Access forms design and Visual Basic. I've created a table to capture a list of Top 30 singles and forms to capture new entries. The final step is a form (unbound)...
0
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
1
by: Shællîpôpï 09 | last post by:
If u are using a keypad phone, how do u turn on JavaScript, to access features like WhatsApp, Facebook, Instagram....
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.