Give an overview of distributed transactions
Keyword: COORDINATION
What are the goals of the Two-phase commit protocol and how does it work?
Perform commit on all agents in two phases:
1: receives EOT and send “prepare” message to all agents, waiting for a “failed” or “ready” response.
- Guarantees recoverability of changes
2: if all agents replied “ready”, send “commit” message to all of them, otherwise send “abort” message. Send ACK back to coordinator.
- Perform changes and release resources
What are the conceptual layers of an information system?
Presentation: accepts requests (input) and present information (output) (UI, reports, etc)
Application logic: implementation of services supported by the system (often retrieve/modify data)
Resource management: source of data. DB, files, “external” providers (encapsulation).
Compare the top-down and bottom-up approaches to the design of information systems.
TOP-DOWN
Ideal scenario, development from scratch
Steps of design/specification go from presentation down to necessary application logic (functionality) and data modelling.
Results usually in homogeneous tightly-coupled components.
High-level goals, addressing functional and non-functions requirements.
BOTTOM-UP
Necessity if reusing (RM), wrapping and integrating them on application logic, finally adapting presentation layer.
Functionality of components is predefined: high-level goals are achieved by adapting and combining them.
Results in loosely-coupled components, which remain autonomous and can be used stand-alone.
How can the conceptual layers be mapped into tiers?
Tiers = implementation architecture
Each tier provides well defined interfaces to access its functionality
Adding tiers improves flexibility, functionality, distribution, and scalability - but impacts performance and complexity.
What are the different tier architectures and their pros and cons? 1-Tier
1-tier: monolith system
What are the goals and benefits of a horizontally distributed information system?
Reduced costs (vs. mainframe) Organization separation, integration of existing components Increase performance, scalability, reliability!
What are the communication alternative in the distributed information system scenario?
Blocking (synchronous) versus non-blocking (asynchronous) interactions
What are the different tier architectures and their pros and cons? 2-tier
2-tier: client-server system
What are the different tier architectures and their pros and cons? 3-tier
3-tier: one tier for each IS layer (application logic introduces middleware)
What are the different tier architectures and their pros and cons? N-tier
N-tiers: generalization of 3-tier (dividing singles layer into multiples tiers)
Explain and compare the different alternative for distribution (for client transparency). ALTERNATIVE 1: unity of distribution = transaction
ALTERNATIVE 1: unity of distribution = transaction
Explain and compare the different alternative for distribution (for client transparency). ALTERNATIVE 2: unit of distribution = application component
ALTERNATIVE 2: unit of distribution = application component (program) (class or library)
Explain and compare the different alternative for distribution (for client transparency). ALTERNATIVE 3: unit of distribution = DB operation
ALTERNATIVE 3: unit of distribution = DB operation
Explain and compare the different alternative for distribution (for client transparency). ALTERNATIVE 4: distribution handled entirely by DB/RM
ALTERNATIVE 4: distribution handled entirely by DB/RM