What are the general questions to ask about client/server when considering how to structure your application
What are the two key questions/issues?
Division of labor
packets or streams
What are the PROs and CONs of client vs server?
PRO:
CON:
What is the difference between a Thick or Thin Client?
Division of labour
Thick:
Thin:
What are the factors to consider when determining division of labour?
Location of resources required
Communication Costs
Workload balance/distribution
What are Server design considerations?
What is a stateful server?
A server that maintains the “state” of clients
These states allow for more complex functionality
What is a stateless server?
Does not maintain any information about clients
PRO: Easy to recover from failure, just need to restart the server
What should be used to determine if you should create a concurrent or non-concurrent implementation?
Non-concurrent: Simple, quick tasks
Concurrent: Any time processesing would create any type of delay.
What are the advantages of multithreaded vs multi-process servers?
What are the 3 variations on concurrent server implementations?
Draw the diagram of “Thread per request”

Draw the diagram of “Thread per connection”

Draw the diagram of “Thread per Object”

What is a server farm/pool
Using a bunch of “smaller”(and cheaper) machines
PRO: Enhanced performance and avialability
CON: Consistency
What are the two implementation sof a server-farm?
Draw the diagram of each
Round Robin
DNS request comes in and maps to one of avail local servers
Server Redirect
DNS request comes in, goes to one host and then redirects to a closer server geographically

What is Wide Area Server Replication?
How does it work with a CDN?
What is a CDN?
Allows for efficient delivery of content across a large geographic area via wide-area server replication
Often used to replicate websides
Akamai being one of the largest
CDN: Content Distribution/Delivery Network
Content is replicated to servers geographically located in strategic areas to increase the speed of access to these servers.
What are the challenges with a Wide Area Server Replication?
How do CDNs help with this?
Questions to consider
CDN:
Content provided maintians origin site and the CDN then replicates
Users acess the “edge servers”
Edge servers are hosted and maintained by network providers
Draw a diagram of a Centralization Application Logic

Draw a diagram of a Single Tier client/server

Draw a diagram of 2 tier client/server

Draw a diagram of 3 Tier Client/Server

How does a 3 tier design increase flexibility?
Any layer can be replicated

What are the guiding principles for determering what type of tier design to use?
Location of resources accressed
Communication costs
Workload distribution