Unit 05 Flashcards
action-oriented model
A software model in which the actions carried out by processors are central.
As opposed to an object-oriented model where objects are central.
Or a data-oriented model where data is central.
addressing
Identifying a particular computer on the internet using either a symbolic address or a numeric address.
application programming interface (API)
An interface provided by a computer system or program library. Services specified in a computer system/library can be made available to, and called on by, computer programs. The software that provides the functionality described by an API is said to be an implementation of the API.
application server
A server dedicated to running a number of applications.
asynchronous message passing
A form of communication in which the sending and receiving processes do not have to be at their synchronisation points at the same time. This form of message passing requires a buffer in order to store messages in the case of the receiving process not being ready to receive the message.
BitTorrent protocol
A protocol for file sharing among peers (in peer-to-peer systems), where a large data file is divided into smaller parts that are distributed among the peers. The peers cooperate by sharing the parts they have received with other peers, such that eventually all peers have all the parts of the original file.
blocking
When invoking methods, or calling procedures, a process is said to be blocked for the duration of the method call.
business logic
Refers to the logic that embodies business rules rather than the view/presentation or storage of data. Typically, this would be the calculations and processes appropriate for the business.
caching
A technique of temporarily storing frequently accessed data in a special area to reduce the time required to gain access to the data.
client–server
A software architecture style in which asymmetric roles are assigned to two collaborating processes. One process, the server, plays the role of a service provider which waits passively for the arrival of a request. The other, the client, issues specific requests to the server and awaits its response.
component model
Definition of standards for the implementation, documentation and deployment of components. Examples of such models are the Java EE framework, EJB and CORBA.
data partitioning
Dividing the data resources of a system and storing them on several servers which are distributed. Each server is responsible for maintaining its own partition.
data replication
Duplication of data and the storing of data on several servers such that multiple backup copies exist.
data-oriented model
A software model in which the focus is on data, and where actions are triggered as a result of data being exchanged.
See also action-oriented model.
deployment
The placing or installing of software on a target system so that it is ready to run. This process typically involves some configuration steps to tailor the software to the specific organisation, users, or application domain – for example, to specify location-specific information, such as a list of local users permitted to access the software, and the name of the local database.
distributed object paradigm
An extension of the object-oriented paradigm to a distributed setting, in which local objects and remote objects are treated in the same way and have the same capabilities.
distribution transparent
The requirement that users can remain unaware of some of the complexities of operating in a distributed setting.
event/notification model
A model in which an object can generate certain events, and when such an event occurs, it publishes a notification. The notification can be picked up by the objects that subscribed to this event.
fault tolerance
The ability of a system to respond gracefully to an unexpected hardware or software failure. By ‘gracefully’ we mean that if a system’s operating quality decreases at all due to a failure, the decrease is proportional to the severity of the failure. This is in contrast to a naively designed system in which even a small failure can cause total breakdown.
heterogeneity
Programs running on different computers with different operating systems, data representations and programming languages.
heterogeneous middleware
Middleware in which no assumptions are made about a shared language or whether all parties are running on the same platform. CORBA is a heterogeneous form of middleware.
homogeneous middleware
Middleware in which all parties are assumed to be implemented in the same language and running on the same platform. For example, Remote Method Invocation is a homogeneous form of middleware, in that it assumes that the whole system runs within the Java Virtual Machine environment and that one single programming language (Java) is used throughout.
interface (component/system)
Used to refer to the commands or operations (methods), including their syntax and semantics, that a software system or component provides to the clients of the system. Through the interface, the software entity presents methods for external communication, and the interface allows the entity to be internally modified without affecting the way outside entities interact with it.
Internet Protocol (IP) address
The numeric address of a device on the internet.
layer (of software)
A layer of software in which implementation details are hidden and where the functionality of the layer can be invoked through a well-defined interface.
leeching
A term used to describe the behaviour of those peers in a peer-to-peer system that cause a drain on the overall system – they wish to benefit only from the system and do not participate in helping other peers.
legacy system
A software system that is still required because it meets some useful purpose for an organisation. It is not considered to be replaceable and so is maintained, usually on a restricted budget.
load balancing
Balancing the load (the amount of work) in order to avoid having one component doing all the work, while other components remain idle.
local object
An object whose methods can be invoked only by a local process.
local process
A process that runs on the machine on which the objects it is dealing with reside.
marshalling
The process of taking a collection of data items and assembling them into a form (such as a byte stream) suitable for transmission in a message.
messaging system paradigm
A form of middleware in which messages are not sent directly from client to server, but go via the messaging system, which acts as the intermediary. The intermediary then looks after the message from that point onwards.
Also known as message-oriented middleware (MOM) or the message queuing system.
An example is the Java Message Service (JMS).
middleware
In a distributed system, the software that interfaces between a client and a specific operating system. It provides a common interface for clients and allows clients to use the same system calls, no matter what operating system is in use.
multicast
A means of communication whereby the sender sends a message once to a group of receivers who have previously registered to receive such messages.
object request broker (ORB)
Middleware that sits between the client and the objects the client wishes to invoke. The ORB is responsible for locating each object and communicating the client’s request to the object. The object carries out the request and replies.
Open Systems Interconnection (OSI) model
A layered, abstract description for the design of communication and network protocols.
orphan
A remote procedure call whose client (i.e. the node making the call) crashes after the request has been sent.
paradigm
A model, example or pattern, especially an outstandingly clear or typical example or archetype.
peer-to-peer (P2P)
A distributed system architecture where each computer has similar capabilities and responsibilities – each can act as a server as well as a client.
performance
A measurement of how well a system deals with its workload, usually expressed in terms of its responsiveness to users and the throughput of work.
port
A numbered conduit into a host on the internet, which allows a client to request a particular kind of service and allows a server to listen for particular kinds of request on a specific port.
For example, port 80 is normally used to access a web server.
procedure call
When a procedure is called, the code associated with the procedure is executed, and once this is finished and any necessary data has been returned, the execution of the main program continues with the next statement. This is similar to a method invocation.
proxy server
A server that acts as an intermediary between clients and other servers.
publish/subscribe messaging model
A communication model in which an object that generates events publishes the type of event it makes available for observation by other objects; and objects that want to receive notifications subscribe to events that are of interest to them.
Remote Method Invocation (RMI)
A form of middleware, the Java version of remote procedure calling. With RMI, methods can be invoked on objects whether they are local or are remote from the invoking client.
remote procedure call (RPC)
A call to a procedure located on a machine that is different from the machine from which the call is sent.
remote process
A process running on a different machine from (but connected to) the one on which the object it is dealing with resides.
responsiveness
The speed at which a response is generated.
scalability
The ability of a system to scale (shrink or grow) in order to support larger or smaller volumes of data and more or fewer users.
ServerSocket
A type of object used by a server program in a client–server application. The object has the role of waiting for a client and returning a connection socket once the connection with this client is established.
single point of failure
The part of a system that can cause the whole system to go down when a failure occurs in this particular part.
socket
An abstraction for each of the two sides of the connection between the client and server. It is identified by a combination of port and host name, and provides the facilities (e.g. input and output streams) to enable data to be transferred between client and server. In Java these are implemented with the Socket class.
software architecture
A software architecture is concerned with the structures of the system. These structures comprise software elements, the main properties of those elements and the relationships between them.
software component
An independent software unit that can be composed with other components to create a software system. Each component has a well-defined interface through which the services of the component can be invoked, while shielding its implementation details.
swarm
A group of connected peers working together in a peer-to-peer system.
synchronous message passing
A form of communication in which the sender waits (i.e. it is blocked) until it receives a response from the receiver.
See also asynchronous message passing.
thick client
Complex client software that carries out significant processing on the client machine in a client–server system.
thin client
In a client–server system, a simple client with very limited functionality, mainly limited to display and communication – for example, a web browser.
throughput
The rate at which computational work is done.
tier
The common functionality of computer processes or components at a very high conceptual level.
timeout
The expiry of a preset time interval causing a thread to stop running because it has used its allocated execution time.
two-tier model
A software architecture consisting of a database tier and a client applications tier.
unicast
The sending of information to a single destination.
unmarshalling
The process of extracting a data structure from a series of bytes.