SlideShare a Scribd company logo
Presentation-Abstraction-Control




                 Islamgozhayev Talgat
What is PAC?
 The Presentation-Abstraction-
 Control pattern (PAC) defines a
 structure for interactive software
 systems in the form of a
 hierarchy of cooperating agents.
Moreover…
 Every agent is responsible for a specific
  aspect of the application's functionality
  and consists of three components:
  presentation, abstraction, and control. This
 subdivision separates the human-computer
 interaction aspects of the agent from its
 functional core and its communication with
 other agents.
As the comparison
 The PAC abstraction component corresponds roughly
  to the model component of MVC.
 The presentation component in PAC is a combination
  of the view and control components in MVC.
 The control component of PAC mediates between
  agents and has no equivalent in MVC.
Example
 Consider a simple information system for political elections with
  proportional representation. This offers a spreadsheet for entering data
  and several kinds of tables and charts for presenting current standings.
  Users interact with the software through a graphical interface.
  Different versions, however, adapt the user interface to specific needs.
  For example, one version supports additional views of the data, such as
  the assignment of parliament seats to political parties.
 The classic example of a PAC architecture is an air traffic control
  system. One PAC Agent takes input from a radar system about the
  location of an incoming 747, and uses the Presentation component to
  paint a picture of that blip on a canvas (screen). Another Agent
  independently takes input about a DC-10 that is taking off, and paints
  that blip to the canvas as well. Still another takes in weather data and
  paints clouds, while another tracks the incoming enemy bomber and
  paints a red blip instead.
Example
PAC Agents
 In the context of the Presentation-Abstraction-
 Control pattern, an agent is an information
 processing component that includes:
– Event receivers and transmitters.
– Data structures to maintain state.
–  processor that handles incoming events,
  A
 updates its own state, and may produce new
 events.
 Agents can be a s small as a single object, but also
 as complex as a complete software system.
Context
 Interactive systems can often be viewed as a set of
  cooperating agents.
– Agents specialized in human-computer interaction accept
  user input and display data.
– Other agents maintain the data model of the system and
  offer functionality that operates on this data.
– Additional agents are responsible for diverse tasks such as
  error handling or communication with other software
  systems.
 Besides this horizontal decomposition of system
  functionality, we often encounter a vertical decomposition.
 In such an architecture of cooperating agents, each agent is
  specialized for a specific task, and all agents together
  provide the system functionality. This architecture captures
  both a horizontal and vertical decomposition.
Forces
 Agents often maintain their own state and data.
–  example, in a production planning system, the
   For
  production planning and the actual production control
  may work on different data models, one tuned for planning
  and simulation and one performance- optimized for
  efficient production.
 Interactive agents provide their own user interface, since
  their respective human-computer interactions often differ
  widely.
–  example, entering data into spreadsheets is done using
   For
  keyboard input, while the manipulation of graphical
  objects uses a pointing device.
 Systems evolve over time.
– Their presentation aspect is particularly prone to change.
Solution
 Structure the interactive application as a tree-like
  hierarchy of PAC agents.
 There should be one top-level agent, several
  intermediate- level agents, and even more bottom-
  level agents.
 Every agent is responsible for a specific aspect of the
  application's functionality, and consists of three
  components: presentation, abstraction, and control.
 The whole hierarchy reflects transitive dependencies
  between agents. Each agent depends on all higher-
  level agents up the hierarchy to the top-level agent.
How it works?
 The agent's presentation component provides the
  visible behavior of the PAC agent.
 Its abstraction component maintains the data model
  that underlies the agent, and provides functionality
  that operates on this data.
 Its control component connects the presentation and
  abstraction components, and provides functionality
  that allows the agent to communicate with other PAC
  agents.
Top-Level
 The top-level PAC agent provides the functional core
 of the system.
– The top-level PAC agent includes those parts of the
 user interface that cannot be assigned to particular
 subtasks, such as menu bars or a dialog box displaying
 information about the application.
– Most other PAC agents depend or operate on this
 core.
Bottom-level
 Bottom-level PAC agents represent self-contained
 concepts on which users of the system can act, such as
 spreadsheets and charts.
– The bottom-level agents present these concepts to the
 user and support all operations that users can perform
 on these agents, such as zooming or moving a chart.
Intermediate-level
 Intermediate-level PAC agents represent either
 combinations of, or relationships between, lower-level
 agents, e.g. a floor plan and an external view of a house
 in a CAD system for architecture.
PAC Benefits
 Separation of concerns.
–  Different semantic concepts in the application domain are
  represented by separate agents.
– Each agent maintains its own state and data, coordinated
  with, but independent of other PAC agents.
– Individual PAC agents also provide their own user interface.
– This allows the development of a dedicated data model and
  user interface for each semantic concept or task within the
  application, independently of other semantic concepts or tasks.
 Support for change and extension.
– Changes within the presentation or abstraction components of
  a PAC agent do not affect other agents in the system.
– New agents are easily integrated into an existing PAC
  architecture without major changes to existing PAC agents.
Continue….
 Support for multitasking.
– PAC agents can be distributed easily to different
 threads, processes, or machines. Extending a PAC
 agent with appropriate inter-process communication
 functionality only affects its control component.
– Multitasking also facilitates multi-user applications.
 For example, in our information system a newscaster
 can present the latest projection while data entry
 personnel update the data base with new election
 data.
Liability of PAC
 Increased system complexity.
– The implementation of every semantic concept within an application
  as its own PAC agent may result in a complex system structure.
– If the level of granularity is too fine, the system could drown in a sea
  of agents. Agents must also be coordinated and controlled, which
  requires additional coordination agents.
 Complex control component.
– The quality of the control component implementations is therefore
  crucial to an effective collaboration between agents, and therefore for
  the overall quality of the system architecture.
 Efficiency.
– The overhead in the communication between PAC agents may impact
  system efficiency especially if agents are distributed.
 Applicability.
– The smaller the atomic semantic concepts of an application are, and
  the more similar their user interfaces, the less applicable this pattern is.
Usage examples
 On the server side, Drupal follows the PAC (Presentation-
  Abstraction-Control) design pattern.
 The Drupal Core provides the controller. It responds to user
  requests and routes them to the appropriate handlers.
 The theme system provides the presentation layer. The modules
  (including the built-in modules like Node) access and
  manipulate the data which is the job of the abstraction layer.
 The menu system acts as the Controller. It accepts input via a
  single source (HTTP GET and POST), routes requests to the
  appropriate helper functions, pulls data out of the Abstraction
  (nodes and, in Drupal 5, forms), and then pushes it through a
  filter to get a Presentation of it (the theme system). It even has
  multiple, parallel PAC agents in the form of blocks that push
  data out to a common convas (page.tpl.php).
PAC

More Related Content

What's hot

Context model
Context modelContext model
Context model
Ubaid423
 
Cohesion and coupling
Cohesion and couplingCohesion and coupling
Cohesion and coupling
Aprajita (Abbey) Singh
 
Spm software effort estimation
Spm software effort estimationSpm software effort estimation
Spm software effort estimation
Kanchana Devi
 
Lecture 5 - Agent communication
Lecture 5 - Agent communicationLecture 5 - Agent communication
Lecture 5 - Agent communication
Antonio Moreno
 
Data Designs (Software Engg.)
Data Designs (Software Engg.)Data Designs (Software Engg.)
Data Designs (Software Engg.)
Arun Shukla
 
Distributed document based system
Distributed document based systemDistributed document based system
Distributed document based systemChetan Selukar
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patternsHimanshu
 
Distributed Systems Architecture in Software Engineering SE11
Distributed Systems Architecture in Software Engineering SE11Distributed Systems Architecture in Software Engineering SE11
Distributed Systems Architecture in Software Engineering SE11koolkampus
 
Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2
Sudarshan Dhondaley
 
Replication in Distributed Systems
Replication in Distributed SystemsReplication in Distributed Systems
Replication in Distributed Systems
Kavya Barnadhya Hazarika
 
Component and Deployment Diagram - Brief Overview
Component and Deployment Diagram - Brief OverviewComponent and Deployment Diagram - Brief Overview
Component and Deployment Diagram - Brief Overview
Rajiv Kumar
 
Coda file system
Coda file systemCoda file system
Coda file system
Sneh Pahilwani
 
Conceptual dependency
Conceptual dependencyConceptual dependency
Conceptual dependency
Jismy .K.Jose
 
System models in distributed system
System models in distributed systemSystem models in distributed system
System models in distributed system
ishapadhy
 
Communication primitives
Communication primitivesCommunication primitives
Communication primitives
Student
 
Domain Modeling
Domain ModelingDomain Modeling
Domain Modeling
Harsh Jegadeesan
 
Agent architectures
Agent architecturesAgent architectures
Agent architectures
Antonio Moreno
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case Diagram
Ashesh R
 
Case study-the next gen pos
Case study-the next gen posCase study-the next gen pos
Case study-the next gen pos
Vignesh Saravanan
 

What's hot (20)

Context model
Context modelContext model
Context model
 
Cohesion and coupling
Cohesion and couplingCohesion and coupling
Cohesion and coupling
 
Spm software effort estimation
Spm software effort estimationSpm software effort estimation
Spm software effort estimation
 
Lecture 5 - Agent communication
Lecture 5 - Agent communicationLecture 5 - Agent communication
Lecture 5 - Agent communication
 
Data Designs (Software Engg.)
Data Designs (Software Engg.)Data Designs (Software Engg.)
Data Designs (Software Engg.)
 
Distributed document based system
Distributed document based systemDistributed document based system
Distributed document based system
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patterns
 
Distributed Systems Architecture in Software Engineering SE11
Distributed Systems Architecture in Software Engineering SE11Distributed Systems Architecture in Software Engineering SE11
Distributed Systems Architecture in Software Engineering SE11
 
Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2
 
Replication in Distributed Systems
Replication in Distributed SystemsReplication in Distributed Systems
Replication in Distributed Systems
 
Component and Deployment Diagram - Brief Overview
Component and Deployment Diagram - Brief OverviewComponent and Deployment Diagram - Brief Overview
Component and Deployment Diagram - Brief Overview
 
Coda file system
Coda file systemCoda file system
Coda file system
 
Conceptual dependency
Conceptual dependencyConceptual dependency
Conceptual dependency
 
System models in distributed system
System models in distributed systemSystem models in distributed system
System models in distributed system
 
Communication primitives
Communication primitivesCommunication primitives
Communication primitives
 
Domain Modeling
Domain ModelingDomain Modeling
Domain Modeling
 
Agent architectures
Agent architecturesAgent architectures
Agent architectures
 
Use Case Diagram
Use Case DiagramUse Case Diagram
Use Case Diagram
 
Case study-the next gen pos
Case study-the next gen posCase study-the next gen pos
Case study-the next gen pos
 
Spm unit 1
Spm unit 1Spm unit 1
Spm unit 1
 

Similar to PAC

Component based models and technology
Component based models and technologyComponent based models and technology
Component based models and technologySaransh Garg
 
Component based models and technology
Component based models and technologyComponent based models and technology
Component based models and technology
Mayukh Maitra
 
Design pattern
Design patternDesign pattern
Design pattern
Pawan Kumar Tiwari
 
Pattern oriented architecture for web based architecture
Pattern oriented architecture for web based architecturePattern oriented architecture for web based architecture
Pattern oriented architecture for web based architecture
shuchi tripathi
 
Day01 01 software requirement concepts
Day01 01 software requirement conceptsDay01 01 software requirement concepts
Day01 01 software requirement concepts
Namtướcbóngđêm Virut
 
Object oriented sad-5 part ii
Object oriented sad-5 part iiObject oriented sad-5 part ii
Object oriented sad-5 part ii
Bisrat Girma
 
A Model of Local Area Network Based Application for Inter-office Communication
A Model of Local Area Network Based Application for Inter-office CommunicationA Model of Local Area Network Based Application for Inter-office Communication
A Model of Local Area Network Based Application for Inter-office Communication
theijes
 
Ppt slides 05
Ppt slides 05Ppt slides 05
Ppt slides 05locpx
 
Software engg. pressman_ch-8
Software engg. pressman_ch-8Software engg. pressman_ch-8
Software engg. pressman_ch-8Dhairya Joshi
 
Network Monitoring and Traffic Reduction using Multi-Agent Technology
Network Monitoring and Traffic Reduction using Multi-Agent TechnologyNetwork Monitoring and Traffic Reduction using Multi-Agent Technology
Network Monitoring and Traffic Reduction using Multi-Agent Technology
Eswar Publications
 
Lec 4.ppt
Lec 4.pptLec 4.ppt
Lec 4.ppt
Sami Mughal
 
DEVELOPMENT OF A MULTIAGENT BASED METHODOLOGY FOR COMPLEX SYSTEMS
DEVELOPMENT OF A MULTIAGENT BASED METHODOLOGY FOR COMPLEX SYSTEMSDEVELOPMENT OF A MULTIAGENT BASED METHODOLOGY FOR COMPLEX SYSTEMS
DEVELOPMENT OF A MULTIAGENT BASED METHODOLOGY FOR COMPLEX SYSTEMS
International Journal of Technical Research & Application
 
UML and Software Modeling Tools.pptx
UML and Software Modeling Tools.pptxUML and Software Modeling Tools.pptx
UML and Software Modeling Tools.pptx
Nwabueze Obioma
 
Unit-3.doc
Unit-3.docUnit-3.doc
Unit-3.doc
chitranshidheeraj6
 
Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principlessaurabhshertukde
 
11.3.14&22.1.16
11.3.14&22.1.1611.3.14&22.1.16
11.3.14&22.1.16
Rajes Wari
 
Software Design
Software Design Software Design
Software Design
Anas Bilal
 
System analysis and design
System analysis and designSystem analysis and design
System analysis and design
Kiruthika Veerappan Nagappan
 
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptxUNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
LeahRachael
 

Similar to PAC (20)

Component based models and technology
Component based models and technologyComponent based models and technology
Component based models and technology
 
Component based models and technology
Component based models and technologyComponent based models and technology
Component based models and technology
 
Design Pattern
Design PatternDesign Pattern
Design Pattern
 
Design pattern
Design patternDesign pattern
Design pattern
 
Pattern oriented architecture for web based architecture
Pattern oriented architecture for web based architecturePattern oriented architecture for web based architecture
Pattern oriented architecture for web based architecture
 
Day01 01 software requirement concepts
Day01 01 software requirement conceptsDay01 01 software requirement concepts
Day01 01 software requirement concepts
 
Object oriented sad-5 part ii
Object oriented sad-5 part iiObject oriented sad-5 part ii
Object oriented sad-5 part ii
 
A Model of Local Area Network Based Application for Inter-office Communication
A Model of Local Area Network Based Application for Inter-office CommunicationA Model of Local Area Network Based Application for Inter-office Communication
A Model of Local Area Network Based Application for Inter-office Communication
 
Ppt slides 05
Ppt slides 05Ppt slides 05
Ppt slides 05
 
Software engg. pressman_ch-8
Software engg. pressman_ch-8Software engg. pressman_ch-8
Software engg. pressman_ch-8
 
Network Monitoring and Traffic Reduction using Multi-Agent Technology
Network Monitoring and Traffic Reduction using Multi-Agent TechnologyNetwork Monitoring and Traffic Reduction using Multi-Agent Technology
Network Monitoring and Traffic Reduction using Multi-Agent Technology
 
Lec 4.ppt
Lec 4.pptLec 4.ppt
Lec 4.ppt
 
DEVELOPMENT OF A MULTIAGENT BASED METHODOLOGY FOR COMPLEX SYSTEMS
DEVELOPMENT OF A MULTIAGENT BASED METHODOLOGY FOR COMPLEX SYSTEMSDEVELOPMENT OF A MULTIAGENT BASED METHODOLOGY FOR COMPLEX SYSTEMS
DEVELOPMENT OF A MULTIAGENT BASED METHODOLOGY FOR COMPLEX SYSTEMS
 
UML and Software Modeling Tools.pptx
UML and Software Modeling Tools.pptxUML and Software Modeling Tools.pptx
UML and Software Modeling Tools.pptx
 
Unit-3.doc
Unit-3.docUnit-3.doc
Unit-3.doc
 
Design concepts and principles
Design concepts and principlesDesign concepts and principles
Design concepts and principles
 
11.3.14&22.1.16
11.3.14&22.1.1611.3.14&22.1.16
11.3.14&22.1.16
 
Software Design
Software Design Software Design
Software Design
 
System analysis and design
System analysis and designSystem analysis and design
System analysis and design
 
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptxUNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
UNIT 3-DEMONSTRATING A COMPREHENSIVE UNDERSTANDING OF SOFTWARE DESIGN.pptx
 

Recently uploaded

FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 

PAC

  • 1. Presentation-Abstraction-Control Islamgozhayev Talgat
  • 2. What is PAC?  The Presentation-Abstraction- Control pattern (PAC) defines a structure for interactive software systems in the form of a hierarchy of cooperating agents.
  • 3. Moreover…  Every agent is responsible for a specific aspect of the application's functionality and consists of three components: presentation, abstraction, and control. This subdivision separates the human-computer interaction aspects of the agent from its functional core and its communication with other agents.
  • 4. As the comparison  The PAC abstraction component corresponds roughly to the model component of MVC.  The presentation component in PAC is a combination of the view and control components in MVC.  The control component of PAC mediates between agents and has no equivalent in MVC.
  • 5. Example  Consider a simple information system for political elections with proportional representation. This offers a spreadsheet for entering data and several kinds of tables and charts for presenting current standings. Users interact with the software through a graphical interface. Different versions, however, adapt the user interface to specific needs. For example, one version supports additional views of the data, such as the assignment of parliament seats to political parties.  The classic example of a PAC architecture is an air traffic control system. One PAC Agent takes input from a radar system about the location of an incoming 747, and uses the Presentation component to paint a picture of that blip on a canvas (screen). Another Agent independently takes input about a DC-10 that is taking off, and paints that blip to the canvas as well. Still another takes in weather data and paints clouds, while another tracks the incoming enemy bomber and paints a red blip instead.
  • 7. PAC Agents  In the context of the Presentation-Abstraction- Control pattern, an agent is an information processing component that includes: – Event receivers and transmitters. – Data structures to maintain state. –  processor that handles incoming events, A updates its own state, and may produce new events.  Agents can be a s small as a single object, but also as complex as a complete software system.
  • 8. Context  Interactive systems can often be viewed as a set of cooperating agents. – Agents specialized in human-computer interaction accept user input and display data. – Other agents maintain the data model of the system and offer functionality that operates on this data. – Additional agents are responsible for diverse tasks such as error handling or communication with other software systems.  Besides this horizontal decomposition of system functionality, we often encounter a vertical decomposition.  In such an architecture of cooperating agents, each agent is specialized for a specific task, and all agents together provide the system functionality. This architecture captures both a horizontal and vertical decomposition.
  • 9. Forces  Agents often maintain their own state and data. –  example, in a production planning system, the For production planning and the actual production control may work on different data models, one tuned for planning and simulation and one performance- optimized for efficient production.  Interactive agents provide their own user interface, since their respective human-computer interactions often differ widely. –  example, entering data into spreadsheets is done using For keyboard input, while the manipulation of graphical objects uses a pointing device.  Systems evolve over time. – Their presentation aspect is particularly prone to change.
  • 10. Solution  Structure the interactive application as a tree-like hierarchy of PAC agents.  There should be one top-level agent, several intermediate- level agents, and even more bottom- level agents.  Every agent is responsible for a specific aspect of the application's functionality, and consists of three components: presentation, abstraction, and control.  The whole hierarchy reflects transitive dependencies between agents. Each agent depends on all higher- level agents up the hierarchy to the top-level agent.
  • 11.
  • 12. How it works?  The agent's presentation component provides the visible behavior of the PAC agent.  Its abstraction component maintains the data model that underlies the agent, and provides functionality that operates on this data.  Its control component connects the presentation and abstraction components, and provides functionality that allows the agent to communicate with other PAC agents.
  • 13.
  • 14. Top-Level  The top-level PAC agent provides the functional core of the system. – The top-level PAC agent includes those parts of the user interface that cannot be assigned to particular subtasks, such as menu bars or a dialog box displaying information about the application. – Most other PAC agents depend or operate on this core.
  • 15. Bottom-level  Bottom-level PAC agents represent self-contained concepts on which users of the system can act, such as spreadsheets and charts. – The bottom-level agents present these concepts to the user and support all operations that users can perform on these agents, such as zooming or moving a chart.
  • 16. Intermediate-level  Intermediate-level PAC agents represent either combinations of, or relationships between, lower-level agents, e.g. a floor plan and an external view of a house in a CAD system for architecture.
  • 17. PAC Benefits  Separation of concerns. –  Different semantic concepts in the application domain are represented by separate agents. – Each agent maintains its own state and data, coordinated with, but independent of other PAC agents. – Individual PAC agents also provide their own user interface. – This allows the development of a dedicated data model and user interface for each semantic concept or task within the application, independently of other semantic concepts or tasks.  Support for change and extension. – Changes within the presentation or abstraction components of a PAC agent do not affect other agents in the system. – New agents are easily integrated into an existing PAC architecture without major changes to existing PAC agents.
  • 18. Continue….  Support for multitasking. – PAC agents can be distributed easily to different threads, processes, or machines. Extending a PAC agent with appropriate inter-process communication functionality only affects its control component. – Multitasking also facilitates multi-user applications. For example, in our information system a newscaster can present the latest projection while data entry personnel update the data base with new election data.
  • 19. Liability of PAC  Increased system complexity. – The implementation of every semantic concept within an application as its own PAC agent may result in a complex system structure. – If the level of granularity is too fine, the system could drown in a sea of agents. Agents must also be coordinated and controlled, which requires additional coordination agents.  Complex control component. – The quality of the control component implementations is therefore crucial to an effective collaboration between agents, and therefore for the overall quality of the system architecture.  Efficiency. – The overhead in the communication between PAC agents may impact system efficiency especially if agents are distributed.  Applicability. – The smaller the atomic semantic concepts of an application are, and the more similar their user interfaces, the less applicable this pattern is.
  • 20. Usage examples  On the server side, Drupal follows the PAC (Presentation- Abstraction-Control) design pattern.  The Drupal Core provides the controller. It responds to user requests and routes them to the appropriate handlers.  The theme system provides the presentation layer. The modules (including the built-in modules like Node) access and manipulate the data which is the job of the abstraction layer.  The menu system acts as the Controller. It accepts input via a single source (HTTP GET and POST), routes requests to the appropriate helper functions, pulls data out of the Abstraction (nodes and, in Drupal 5, forms), and then pushes it through a filter to get a Presentation of it (the theme system). It even has multiple, parallel PAC agents in the form of blocks that push data out to a common convas (page.tpl.php).