It provides a link between requirement specifications and
system design processes. The best part is already designed architectures can be
re-used in new systems. Here I want to share something really interesting:
Missouri Department
of Transportation (MoDOT) is developing a statewide approach to Intelligent
Transportation Systems (ITS) implementation.
The six core ITS Program areas described in this
architecture package are based on prioritization tools developed as part of the
statewide plan. The prioritized areas are:
- Commercial vehicle operations
- Incident management
- Traffic control and monitoring
- Traveler and weather information
- Transit management
- Maintenance and construction operations
Here is the link for further information: http://epg.modot.org/index.php?title=910.4_its_achitecture
Architectural Patterns is a term in architecture design. The concept of an architectural pattern
has a broader scope than the concept of design patterns. It basically
is description of good design practices which have already been tested and a
description of when to use those patterns.
Now coming towards different types of architectures:
As there are
different architectural designs for buildings, there are several architectural
designs for designing a software system.
Model View
Controller:
In a typical application you will find these three
fundamental parts:
- Data
(Model)
- An
interface to view and modify the data (View)
- Operations
that can be performed on the data (Controller)
MVC pattern in simple words:
The model represents the data, and does nothing else. The
model does NOT depend on the controller or the view.
The view displays the model data, and sends user actions
(e.g. button clicks) to the controller.
The controller provides model data to the view,
and interprets user actions such as button clicks.
Let me give you example of a web application, here the view
is the actual HTML page, and the controller is the code that gathers dynamic
data and generates the content within the HTML. Finally, the model is represented
by the actual content, usually stored in a database or XML files, and the
business rules that transform that content based on user actions.
How things work in NustNews
The student editors and journalists cover the events and
compile other news items and articles. The readers of the newsletter also
provide feedback. The administration has also set some rules to allow the
publication of a certain article or a report. Next newsletter is published
after considering the suggestions and requests of the readers.
So here
Model is one who has data and rules.
View is one which is shown to user i-e the final newsletter.
Controller is one who interacts with user and update Model and influence model about what view should be shown to users.
View is one which is shown to user i-e the final newsletter.
Controller is one who interacts with user and update Model and influence model about what view should be shown to users.
Next Architectural Pattern I am going to discuss is layered architecture. This Architecture
use different layers for allocating responsibilities of an application. These
architectures can be used where security is an important aspect of the
software.
As an example, think about the way a restaurant works. The
main actors are:
- The
customer
- The
waiter
- The
Chef
They all have different responsibilities. Customer decides
what to eat, eat the meal and pay the bill. The waiter takes the order and forward
it to the Chef, he also clean tables and serve the bill. The Chef cooks or heat
the food.
It makes sense to have the waiter taking the customer’s
order and asking the Chef to cook the desired meal. No one ever let customer go
to the kitchen.
It is clear from the above example that layers have clear
separation of responsibilities. We can replace a layer without effecting the
other layers.
These architectures can be used where security is an
important aspect of the software.
Architecture has a central database which is shared with all the other sub
systems.
For example all the hospitals are linked to a central health
authority.
Client Server Architecture as name indicate is an
architectural design in which all the clients interact with the server and all
the work is done in the server.
The Pipes and Filters architectural
pattern provides a structure for systems that process a stream of data.
To send a message
from one application to another is not simple as it sounds. Normally you don’t
just send a message. In enterprise world, there are lot of guidelines, concerns
and lot other issues that you have to address from information exchange point
of view. This is because of the very fact is “INFORMATION IS EVERYTHING TODAY”.
This pattern states what filters should be applied after the
send has created the message and to the point that receiver has received the
message. This concept makes use of PIPES which are transmission from one box to
another and the boxes which are filters.
What have we learned? \
- Architectural Design
- Model view Controller
- Layered Pattern
- Repository Pattern
- Pipe and Filter Pattern