ITE 3106 - Lesson 03 - Application Architectures
ITE 3106 - Lesson 03 - Application Architectures
3.0 Introduction
In the fourth week of Advanced Software Engineering course, you are going to learn
about different application architectures used in computer systems. Generally you will
deal with different applications when providing software solutions in business
environments and understanding of generic application architecture will definitely
empower you to design a better applications.
Learning outcomes
After completing this lesson, you would be able to explain different application
architectures with following,
• Data processing systems
• Transaction processing systems
• Event processing systems
• Language processing systems
Software designer can use these generic application architectures in many ways.
• As a starting point for architectural design process, designers who are not
familiar with this type of application, can use generic architectures as a
basement of the initial designs As a design checklist.
Page 1 of 14
• Developed system architectural design can check against with the generic
application architecture as a way of organizing the work of the development
team.
• Can use to assign work to group members to implement different sub-systems
within the architectures as a means of assessing components for reuse.
• To check the possibility of reuse of components of the system as a vocabulary
for talking about application types.
• Can use concepts identified in the generic architecture to compare applications
in the same type or to discuss specific application
The classification of architecture into a particular type may be obvious from its
context and is, arguably, irrelevant to its success. But in this chapter describes the
architectures of four broad types of applications.
• Data processing systems
Billing systems;
Payroll systems.
• Transaction processing systems
E-commerce systems;
Reservation systems.
• Event processing systems
Word processors;
Real-time systems.
• Language processing systems
Compilers;
Command interpreters.
Data –Processing applications are applications that are data-driven. They process data
without explicit user interventions during the processing. The specific actions taken by
the applications depend on the data that is processing. Business rely on data-
processing systems to support many aspects of their business such as calculating and
printing invoices, paying salaries, maintaining accounts etc.
Page 2 of 14
Data processing systems are batch processing systems, where data is input and output
in batches from a file or a database rather than input from and output to a user
terminal.
The input component reads data from a file or database checks its validity and queues
the valid data for processing. The process component takes a transaction from the
queue (input), performs computations and creates a new record with the results of the
computation. The output component reads these records, formats them accordingly
and writes them to the database or sends them to a printer.
Figure 3.2 illustrates how a data flow diagram shows the more detail view of the
architecture of the payroll system.
Page 3 of 14
Figure 3.2 DFD of a payroll system
Page 4 of 14
Types of Transactions
Transactions can be internal or external. Transactions which are internal to the
company and are related with the internal working of any organization are called
internal transactions (Ex. Recruitment policy, production policy etc..) and transactions
those are related with external sources called external transactions. (Ex Sales,
purchases etc.).
A TPS records internal & external transactions for a company. It’s a repository of data
that frequently accessed by other systems.
A TPS performs routine, repetitive tasks. It is mostly used by lower level managers to
make operational decisions.
Transactions can be recorded in batch mode or online. In batch mode, the files are
uploaded periodically and on line mode, each transaction is recorded as it is occurs.
They are six steps in processing a transaction. They are data entry, data validation,
data processing and revalidation, storage, output generation and query support.
Page 5 of 14
Figure 3.3 Architecture of ATM software
All systems that involve interaction with a shared database can be considered to be
transaction- based information systems. An information systems allows controlled
Page 6 of 14
access to a large base of information, such as a library catalogue, a alight timetable
etc..
Information systems have a generic architecture that can be organized as a layered
architecture.
Layers include:
• The user interface
• User communications
• Information retrieval and modification
• Transaction management database
Page 7 of 14
Figure: 3.5 Architecture of the Library system Label
Page 8 of 14
Figure: 3.6 Layered model of an information system
Page 9 of 14
3.3 Event-Processing Systems
These systems respond to events in the system’s environment or user interface. The
key characteristic is that event timing is unpredictable. Therefore system architecture
must be able to organize these events when they occur. Many common systems such as
word processors, games, etc. are event processing systems. The system detects and
interprets events and user interface represent implicit commands to the system, which
make some action to follow that command. For example, if we are using a PowerPoint
and click on a slide, the click event means “start the slide shows”.
In addition Real-time systems and editing systems are the most common types of event
processing system. Real time systems are response to some external stimulus. However
real time systems events are not usually user interface events. But they are associated
with servers in the system. Because of the need for real- time response to
unpredictable events these systems are usually organized as a set of cooperating
processes.
Editing systems are porgrammes that run on PCs or workstations and that allow users
to edit documents such as diagrams or images, text documents etc. Some editors are
focus on editing a single type document while others editing different types including
text and diagrams. Editing systems have a number of characteristics that differentiate
them from other types of systems.
Editing systems have to provide rapid feedback on user actions such as “select” and
“delete”.
Editing sessions are normally much longer than sessions involving ordering goods or
making some other transaction.
A generic architecture for an editing system and responsibilities of the architectural
components are shown in figure 3.8.
Page 10 of 14
Figure: 3.8 Generic architecture for an editing system
Screen – this monitors the screen memory segment and detects events that occur.
Event – this object is generated by an event arriving from Screen.
Command - this object processes a command from the event object and calls the
appropriate method in the editor data object to execute the command.
Editor data – when the appropriate command method in editor data object is called, it
updates the data structure and calls the Update method in Display to display the
modified data.
Ancillary data – some editor commands are implemented by a method in this object.
File System – this object handles opening and saving files. These can be either editor
data or ancillary data.
Display – this object keeps tracks of the organization of the screen display. (Refresh
method in Screen)
Page 11 of 14
3.4 Language – processing systems
Language processing systems are systems where the user’s intentions are expressed in
a formal language such as Java. This system processes this language in to some internal
format and then interprets this internal representation. The best known language
processing systems are compilers. However, language processing systems are also used
to interpret command languages for databases, information systems and markup
languages such as XML. Language processing systems accept a natural or artificial
language as an input and generate some other representation of that language as an
output.
The figure 3.11 illustrates how a language processing systems can be part of an
integrated set of programming tools. In this figure, the symbol table and syntax tree
act as a central information repository. Tools or tool fragments communicate through
it.
Page 13 of 14
Summary
In this lesson you had opportunity to learn four different application architectures used
in application designing. When we consider Data processing systems you can see many
examples like accounting systems, payroll systems where it processes data and provide
you a result. Where as transaction processing systems, which you use daily, such as
ATM, e-commerce etc need to handle a complete transaction and provide you a output
if successful, otherwise whole transaction should be reversed and system should be
reversed back to last known state. Then we discussed about event processing systems
such as word processor, or real-time processing systems. Finally we discussed about
language processing systems like interpreters, compilers as generic application
architectures.
Page 14 of 14