Client-Server Model

Application Programming Interface (API)
A set of subroutines that enable one program to interface with another program
Websocket Protocol
Creates a connection between a client and a server. A set of rules is used that creates a persistent connection between two computers on a network to enable real-time collaboration
The main functions of a database can be translated in SQL commands:
- Create -> INSERT
- Retrieve -> SELECT
- Update -> UPDATE
- Delete -> DELETE
Representational State Transfer (REST)
A methodology for implementing a networked data. Uses HTTP to carry out each of the four CRUD operations on a networked database. Uses existing protocols within HTTP which has already been adopted as the standard way of transferring data:
- Create -> POST
- Retrieve -> GET
- Update -> PUT
- Delete -> DELETE
JavaScript Objection Notation (JSON)
A standard format for transmitting data. Easier to read, program and is more compact than XML while also being quicker to execute. Works with a limited range of data types
Extensible Markup Language (XML)
A method of defining data formats for data that will be transmitted around a network. Harder to read and requires more code. Slower at executing because data has to be extracted and is harder to program. Provides complete freedom over what data types are created and therefore allows greater flexibility
Thin Client
A network where one computer (server) contains the majority of the resources, processing power and storage capacity which is distribute throughout systems.
- Server can be configured to distribute all the hardware and software resources needed
- Easier for the network manager to control clients
- Greater security as clients have fewer access rights
- Hardware and Software changes only need to be implemented on the server
- Clients are dependent on the server
- Processing can slow down under heavy use
- High-specification are expensive
- May require greater bandwidth to cope with client requests
Thick Client
A fully specified computer that doesn't require a server to carry out the processing power. Resources are allocated between the client and server giving the client greater processing power, more local storage and access to software that is installed and run from a client machine
- Fewer servers and lower bandwidth used
- More processing power and no slow down
- Reduced pressure on the server leading to more uptime
- Reduced security if clients can download software or access the Internet remotely
- More difficult to manage and update as new hardware and software need installing on each client machine
- Data is more likely to be lost or deleted on the client side
- Can be difficult to ensure data integrity where many clients are working on local data