Client_Server Flashcards

1
Q

What are the general questions to ask about client/server when considering how to structure your application

A
  • Type of service being procided
    • eg. file, name, web
  • Layers of co-dependant servers
  • How can client/server interactions vary?
    • Does server store info about client?
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are the two key questions/issues?

A

Division of labor

packets or streams

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are the PROs and CONs of client vs server?

A

PRO:

  1. Dustrubuted access (anytime anywhere)
  2. Load distribution and scalability
  3. Cost effectiveness

CON:

  1. Tech issues
  2. Sys admin overhead (more machines to maint)
  3. Hidden cost of main
  4. Security
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is the difference between a Thick or Thin Client?

A

Division of labour

Thick:

  • More functionality on client side

Thin:

  • The client acts as display only.
  • Relies on server to process everything.
  • Can be delays because of communication
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are the factors to consider when determining division of labour?

A

Location of resources required

  • If resources are on a single machine, then processesing should be completed there

Communication Costs

  • Chose a patht that minimizes communication

Workload balance/distribution

  • Try to balance workload across available machines
    • CONSIDER:
      • capability of machines
      • number of machines
      • application load variations
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are Server design considerations?

A
  • Stateful vs stateless
  • Multi vs Single-Threaded
  • Server Replication
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is a stateful server?

A

A server that maintains the “state” of clients

  • “What clients am I currently connected to?”
  • “What is each client currently doing?”
  • FAULT TOLLERANCE CONSIDERATION:
    • What happens when the server fails?
    • How is the state information reconstructed?

These states allow for more complex functionality

  • Shopping card
  • Saving information when filling our a web-form
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is a stateless server?

A

Does not maintain any information about clients

PRO: Easy to recover from failure, just need to restart the server

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What should be used to determine if you should create a concurrent or non-concurrent implementation?

A

Non-concurrent: Simple, quick tasks

Concurrent: Any time processesing would create any type of delay.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What are the advantages of multithreaded vs multi-process servers?

A
  • All threads share a single memory space
  • cheap to create and share data easily
  • NOTE: concurrency requires syncronization(because the data space is shared)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What are the 3 variations on concurrent server implementations?

A
  1. Thread per request
  2. Thread per connection
  3. Thread per object
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Draw the diagram of “Thread per request”

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Draw the diagram of “Thread per connection”

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Draw the diagram of “Thread per Object”

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is a server farm/pool

A

Using a bunch of “smaller”(and cheaper) machines

PRO: Enhanced performance and avialability

CON: Consistency

  • How do we keep all the servers up to date and in sync?
    • This may or may not matter
      • ATM machine vs Web Page
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are the two implementation sof a server-farm?

Draw the diagram of each

A

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

17
Q

What is Wide Area Server Replication?

How does it work with a CDN?

What is a CDN?

A

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.

18
Q

What are the challenges with a Wide Area Server Replication?

How do CDNs help with this?

A

Questions to consider

  • Where to replciate content to
  • What to replicate
  • When and how to maintain consistency

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

19
Q

Draw a diagram of a Centralization Application Logic

A
20
Q

Draw a diagram of a Single Tier client/server

A
21
Q

Draw a diagram of 2 tier client/server

A
22
Q

Draw a diagram of 3 Tier Client/Server

A
23
Q

How does a 3 tier design increase flexibility?

A

Any layer can be replicated

24
Q

What are the guiding principles for determering what type of tier design to use?

A

Location of resources accressed

Communication costs

Workload distribution

25
Q

Draw a diagram of the following:

A

Note: Business logic can also be replicated for each departmental system

26
Q

Structuring an existing system into clients and servers is commonly gleaned by what 3 key observations?

A
27
Q

What is the definition of middleware

A

“Any software that is used solely to connect applicaiton components together”

The name comes from software sitting in the middle

MUST:

  • Provide communications (messaging)
  • Be general enough to support a wide range of applications and provide simple APIs

Processing that is common to many distributed systems can be factored out into middleware

28
Q

What are the benefits of middleware

A
  • Less complexity (abstracted to middleware)
  • speed of development
  • Enhanced Reliability
29
Q

What are the examples provided from class of low(ish) level middleware?

A

Low level:

  • RPC, RMI
  • XDR, ASN 1

Other examples:

  • Transaction monitors and security frameworks
  • Object Request Brokers (ORBs)
  • Web services