OOPortal OOPortal


Architectural Partitioning  «Prev  Next»
Lesson 2Design strategies based on technology
ObjectiveExplain the value of partitioning technological responsibilities.

Design Strategies Based on Technology and the Value of Partitioning Technological Responsibilities

Design and technology


For many years, computing technology did not change radically. Big computers were attached to “dumb” terminals that displayed information and captured user actions. You could attach larger computers and additional terminals, but the basic design remained the same. The intelligence resided in the central computer(s) and the terminals were little more than electronic versions of paper forms.

Technology changes and architectural opportunities

Technology is a tool that makes new architectural opportunities possible. For example, the advent of PCs distributed the computing power to devices other than the large central computer. A cooperative relationship formed between these technologies, which is now typically referred to as a two-tier or client-server relationship.
The PC now controls the interface to the user, so this new client device initiates requests to the central computer, which now plays the role of a server. A server is primarily passive; it waits for a request, processes the request, returns a response, and waits for another request.

Distribution of responsibilities

A significant aspect of this change is the distribution of responsibilities.
What is the value or benefit of this set-up?
On a simple level you can picture the total system need as a spectrum that runs from access to raw data, through logic that interprets the data, to presentation of the information.

Total System as Spectrum: 1) Presentation, 2) Logic, 3) Data
Total System as Spectrum: 1) Presentation, 2) Logic, 3) Data
Similar to the (MVC) model-view-controller architecture, 1) The presentation layer is represented by the view, 2) The logic layer is represented by the controller, 3) The model layer represents where the data is stored
  1. Visual components like the Java FX and Swing classes, OCX Controls, ADO, .NET Architecture
  2. CORBA, RMI, DCOM and a number of middleware products provide communication mechanisms between components of the architecture.
  3. Visual programming environments support the development of client applications and visual interfaces.
  4. Transaction processing monitors like Tivoli and Tuxedo handle volume transaction processing and transaction management
  5. Database management systems (DBMS) support data (or object) persistence and access.

Dividing these different responsibilities supports the development of specialized products. It also creates a market for products that provide the 'glue,' or connectivity, between the new architectural partitions.

Dividing Responsibilities

Reuse

Each product is aimed at solving one part of the total data processing need. Because the products are so focused, they tend to become more specialized and reusable. This change in software development is identical in nature to the change in manufacturing, from custom production of one item at a time to assembly line production using interchangeable parts.