3-Tier Web Architecture Flashcards
Components of Data-Intensive Systems
• Presentation
o Primary interface to the user
o Needs to adapt to different display devices(PC, cell phone etc)
• Application(business) logic
o Implements business logic(implements complex actions, maintains state between different steps of a workflow)
o Accesses different data management systems
• Data management
o One or more standard database management systems
Thin Client
o Client implements only graphical user interface
o Server implements business logic and data management
Thick Client
o Client implements both graphical user interface and business logic
o Server implements data management
Two-Tier Architecture [Thick clients]
• Advantages:
o Applications can be easily developed due to simplicity
o Database serves and business logic is physically close, which offers higher performance
• Disadvantages:
o No central place for business logic
o Security issues: Server needs to trust clients
o Lack of scalability as it only supports a limited number of user
Single-Tier Architectures
All functionality are combined into a single tier on a mainframe and user access is done through dumb terminals. • Advantages: o Easy maintenance and administration o Easy to implement • Disadvantages: o Users expect graphical user interfaces o Heavy load on central system
Three-Tier Architecture
- Presentation Tier – Client Program (Web Browser) – HTML, CSS, Javascript, Cookies
- Middle Tier – Application Server – JSP, Servlets, CGI…
- Data Management Tier – Data Management System – Tables, XML, JSON …
Three-Tier Architecture
Pros vs Cons
o Advantages:
Modularity: Tiers can be independently maintained or modified or replaces
Scalability
Enhanced security as clients do not directly interact with the database
Integrated data access: Several database systems handled transparently at middle tier
Easier software development
Thin clients: only presentation layer at client
o Disadvantages:
Complexity of communication: the communication points are increased (client to middle tier to server, instead of directly to server)
Kind of more difficult to implement and maintain
Where to keep application state?
• Client-side state
o Information is stored on the client’s computer in the form of a cookie
• Hidden state
o Information is hidden within dynamically created web pages
• Server-side state
o Information is stored in a database, or in the application layer’s local economy