CISC322 03 ArchitectureStyles
CISC322 03 ArchitectureStyles
Software Architecture
Lecture 03:
Architecture Styles
Ahmed E. Hassan
Architectural Design
Topics in
Architectural Design
Shared Data
Memory
pipes
text code
Lex Syn Sem Opt CGen
Symbol Table
text code
Lex Syn Sem Opt CGen
text code
Lex Syn Sem Opt CGen
Attributed
Parse Tree
Attributed
Parse Tree
Symbol Table
Edit Flow
obj
obj
obj
obj
obj
obj
Broadcasting System
Useful System
sets of
Basic Utilities
procedures
Core Layer
procedure
calls
Plain Cooked
Socket File Cooked Raw Raw TTY
Block Block TTY
File Line
Protocols Interface Interface Interface
System Disc.
Network
Block Device Driver Character Device Driver
Interface
Hardware
Computation
State Machine store
selected
instruction
Current
outputs Execution State of
Engine Execution
Selected
data (fetch) Engine
Software Design (Software Architecture) © SERG
Interpreter Style Examples
• Programming Language Compilers:
– Java
– Smalltalk
• Rule Based Systems:
– Prolog
– Coral
• Scripting Languages:
– Awk
– Perl
Software Design (Software Architecture) © SERG
Interpreter Style Advantages
• Simulation of non-implemented hardware.
• Facilitates portability of application or
languages across a variety of platforms.
Java Interpreter
Compiler
Run-time
INTERNET
Environment
Java
Hardware
Bytecode
sensor for
controlled variable
wheel
active/inactive rotation
variables
Engine
Controller
desired throttle
speed setting
Network
Queue Manager
put get
A B
Queue
Channel
Queue Manager
get
B
Queue
Q
Trigger
Client
Request Queue
Manager
(QM) S1
Data
(Response)
R
S3
Trigger
Software Design (Software Architecture) © SERG
OMG’s CORBA
• The Common Object Request Broker
Architecture (CORBA) is a standard
distributed object architecture developed by
the Object Management Group (OMG)
consortium.
Client Server
Stubs Skeletons
Adapter
(CORBA OBJECT)
ORB
Software Design (Software Architecture) © SERG
Object Adapters in CORBA
• The Figure shows how an adapter can act as
a proxy between a set of services and the
ORB.
• Clients will access each service through the
adapter that is responsible for that service.
• The adapter will be responsible for finding
the appropriate filters to handle each client
request.