12 - Networked Appl. Architectures Flashcards
What is a monolithic application?
- A single tiered software app where UI and data access code are combined in a single program
- run mainframe w/ dumb terminals
- char based interfaces
What is a network app?
- provide ability to split apps along various lines
- client server, 2/3 tier, objects
- P2P, parallel computing, web appl
Benefits of network appl?
- Easier programming, sociability, security, less code on client
Details of mobile, web and framework tech
- Became very easy to write web app, (.Net, Python/Django, Ruby on Rails)
- Hard to split functionality neatly into business and logic layers
- Clients need to be smart and efficient, cache local data
What is a frameworks setup?
An abstraction where in software can be selectively added to or edited
Name client appl.
- Mobile: iOS, Android
- Portable: PhoneGap, HTML5, JQuery
- Frameworks: AngularJS, Meteor
Cloud/Web Appl Adv.
- Easier to build through frameworks
- Scalable through cloud computing
Load Balancing Alg characteristics
- Allows for multiple web servers
- Load balanced for between 1 - (n-1) servers
- Server Load,
- Num of connections
- Round-robin
What is DevOps?
- Collaboration between development and operations for deployment
HTTP is …
session-less, so state needs to be saved between requests from a client
Cookies..
Used to store IDs and Auth codes
For load-balancing servers, may need..
- Sticky sessions (method used w/ App load balancing to achieve server affinity)
- Shared session state server (in-memory, database)
Benefits of load balancing (3)
- Update servers by: - Drain connections, remove from LB, update it, add back to LB
- Scaling allows for additional servers to be added
- SSL access: terminate SSL at LB and pass traffic on HTTP
What is typical database?
Relational database as data store
What efficiencies does a database have?
- Horizontal: through partitioning, replicas & load balancing
- Vertical: larger servers
Network Comms ….
- Low-level sockets,
- RMI (Remote Method Invocation), takes method invocation and creates proxies with socket comms in between
HTTP Request Method Types:
- GET
- POST
HTTP Response Codes 200 302 400 500 502
- 200 OK
- 302 Found
- 400 Bad Request
- 500 Int Server Error
- 502 Bad Gateway