views:

51

answers:

4

I am designing an Invoice Management system... Its an intranet system. I am writing technical specification document. The document has description of architecture. So my architecture has 3 layers.. 1. Database layer. 2. Business Logic layer. 2. User Interface Layer.

Do I need to include another layer "Intranet/internet layer" in between the UI layer and Business logic layer.. Thanx in advance

A: 

IMHO depends on whether you also intend providing a Service Oriented Architecture. If you do, you would typically add a Service Layer to the 'server' side, an a service agent facade on the client side.

nonnb
A: 

Keep your architecture view on the application level, describing the three-tier architecture with focussing on logical connections. There you basically declare that there is a interface between applications/components, maybe stating the protocol stack down to saying that it runs on top of TCP/IP.

Add another chapter on "deployment" or "physical view" where you describe hour hardware and platform environment including the networking inbetween. There you may show network topologies and on top of what TCP/IP runs.

Bernd
+1  A: 

Your question is a bit too abstract, I think.

When describing an architecture or any piece of design it is really important to keep in mind what your public (i.e. who's going to read the spec) knows in advance and what they are actually interested in, what they are going to use the documentation for.

A while ago I wrote a bit on this topic: http://fragmental.tw/2008/11/07/trying-to-write-architecture-specs-that-dont-suck-much-part-i-the-spec/ Maybe that will help.

Phillip Calçado
+1 - Well said! There's no point writing docs for the sake of it - keep the intent and audience firmly in mind.
Adrian K
A: 

The short anser is yes - if your system involves (or is made up of) another system then the relationship between them must be made clear.

Keep in mind that there's more to the architecture of systems than just the (horizontal) layers - there's also the (vertical) slices of functionality to consider, as well as cross-cutting concerns and common compoonents (like logging).

Also worth thinking about...

Do I need to include another layer "Intranet/internet layer" in between the UI layer and Business logic layer

First question is how does the invoicing system relate to the intranet.

Do users access your app (the invoicing system) via the intranet or is it built in the intranet? There's a key difference becaiuse if they acces it via the intranet then that suggests nothing more than adding some hyperlinks to the intranet - not exactly "integration".

In this case the answer to your question is possibly "no".

If the intranet is actually delivering you app (i.e.: you're directly using capability within the intranet as part of your app) - then the answer to your question is probably "yes"; but even then it's not straight forward - intranets usually have multiple layers themselves.

layer "Intranet/internet layer" in between the UI layer and Business logic layer

The way I read this doesn't make sense - you wouldn't just have the "intranet" in between the BL and UI. This begs the question - which parts of the intranet are you using?

Adrian K