Please enable JavaScript.
Coggle requires JavaScript to display documents.
Interaction Oriented Architecture - Coggle Diagram
Interaction Oriented Architecture
Motivation
Software grows more complex when richer user interaction is required
Many problems! Examples?
Update of user view however business logic is not changed
Validating user input
buffer overflow
SQL injection attack
Key Idea
Decompose user-interaction software
Data module
Flow control module
View presentation module
Benefits:
Loose coupling
Exchangeability
Maintainability
Extensibility
Categories
Two Major Categories
Model View Controller (MVC)
Presentation-Abstraction-Control (PAC)
Model View Controller
Widely used in web applications
E.g., MS ASP.Net, Java Swing
First introduced in 1980’s SmallTalk
Key Idea
Model:
model of application’s logic
View
: deal with graphic representation
Controller
: contains the interface between model and view
Note:
model does not (and should not) know view and controller. It should not depend on the other two components.
Concept for model:
The Model manages the behavior and data of the application domain.
The model responds to requests for information about its state (usually from the view), and
responds to instructions to change state (usually from the controller).
Concept for View:
The View renders the model into a form suitable for interaction, typically a user interface element.
Multiple views can exist for a single model for different purposes.
A view port typically has a one to one correspondence with a display surface and knows how to render to it.
Concept for Controller:
The Controller receives user input and initiates a response by making calls on model objects.
A controller accepts input from the user and instructs the model and a view port to perform actions based on that input.
Summary MVC
Applicable domain
Suitable for where multiple views needed for a single data model and the graphics interfaces prone to data changes.
There are clear divisions between controller, view, and data modules so that different professionals can be assigned to work on different aspects of such applications.
Benefits:
Easy to plug in new or change interface views,
Very effective for developments (team working by different professionals)
Limitations:
Does not fit agent-oriented application such as robotics applications
Multiple pairs of controllers and views make data model change expensive
The division between the View and the Controller is not very clear in some cases
PAC
Applicable domain of PAC architecture:
Suitable for where there are many cooperating agents in a hierarchical structure.
The coupling among the agents is expected very loose
Benefits:
Supporting agent reusability and extensibility
Easy to plug in new agent or replace an existing agent
Supporting multi-tasking, multi-viewing
Supporting concurrency
Limitations:
Overhead due to the control bridge.
Difficult to design agents
Difference of MVC and PAC
They differ in their flow of control and organization.
PAC is an agent based hierarchical architecture, whereas MVC does not have any clear hierarchical architecture. All three modules are connected together.