2 - Information System Architecture Flashcards
Information System Architecture
Fundamental concepts or properties of an IS in its environment, as embodied in its elements and relationships, and in the principles of its design and evolution
Architectural Model
An illustration, using available standards, in which the primary concern is to represent the architecture of an IS from a specific perspective and for a specific reason
Principles that can be applied to every IS architecture (9)
1) Architecture models Information Systems boundaries, inputs and outputs
2) An IS can be broken down into a set of smaller subsystems
3) An IS can be considered in interaction with other systems
4) An IS can be considered through its entire lifecycle
5) An IS can be linked to another information system via an interface
6) An IS can be modeled at various abstraction levels
7) An IS can be viewed along several layers
8) An IS can be described through interrelated models with given semantics
9) An IS can be described through different perspectives
Architectual Views (4)
- logical view
- process view
- development view
- physical view
The logical view
supports the realization of functional requirements, i.e. what the IS should provide in terms of services to its users. Decomposition of IS into a set of key abstractions taken from the problem domain, represented as objects (object-oriented decomposition)
The process view
Representation of dynamic aspects of an IS by explaining its runtime behavior, processes, and the interaction between processes
The development view
IS’s software is packed into small chunks (subsystems) that can be developed by a small number of developers (subsystem decomposition)
The physical view
Concerned with topology of IS components on physical layer, as well as physical interconnections. Used to ensure suitable mapping of software components to hardware components
Architectural Patterns
An architectural pattern is an abstract description of a recommended architectural approach that has been
tested and proven in different information systems and environments
Function of Client-Server Architectures
distribute tasks or workloads between the providers of a resource or service (servers) and service
requesters (clients)
Client-Server Architectures Attributes (2)
- A server runs one or more programs that share the server’s resources with clients.
- A client does not share any of its resources, but requests a server’s content or service function
Thin clients
server does most of the work, which may include performing complex calculations and
storing data. Optimized to establish a remote connection to the network, capturing user input, and
displaying output. (e.g. Web Clients)
Advantage Thin clients (1)
Distribution, editing and management of applications easier
Fat client (Application Client)
provides rich functionality independent of the servers and is often
characterized by the ability to perform many functions without this connection
Advantage Fat client (1)
Better perceived user experience
Advantages Client Server Architecture (2)
- easy to add and integrate new participants
- upgrade servers without directly affecting the IS’s
Disadvantages Client Server Architecture (1)
- every server constitutes a single point of failure that may become unavailable
Basic Idea of Tier Architectures
- layers are decoupled as much as possible from one another so as to minimize dependencies
between them - developers acquire the option of modifying or adding a specific layer
Layer
logical separation of functionality
Tier
physical separation of functionality
Typical layers of a system (3)
- Presentation Layer
- Application Layer
- Data management Layer
The Presentation Layer
- Information is presented in some form to external entities to allow interaction
Presentation layer ≠ IS’s client
Client can be completely external and not be part of IS
Example: Systems accessed through Web browser using plain HTML documents
The Application Layer
Programs that implement the operations necessary to fulfill clients’ requests through the presentation layer form the application layer
The Data Management Layer
The data management layer is comprised of all of an IS’s components that contribute in some way to the ongoing storage of the necessary data (e.g. database or file system)
Strict Layering
A layer is only allowed to request functionality from the layer immediately below
+ Only adjacent layers affected by change high flexibility
+ Easier testability and maintainability
- inefficient
Loose Layering
A layer is allowed to request functionality from any layer below
+ High efficiency no need to pass data through intermediate layers
- Higher interdependencies
One-Tier Architectures
-> emerged from computer architectures used several decades ago (limited computing power)
-> controls every aspect of the interaction with the client, including how information appears, how it is displayed, and how to react to input from the user
+ Architects are free to merge layers as much as necessary
+ Liberal use of assembly code and low level optimizations possible to increase throughput and reduce response time
- Difficult and expensive to maintain
- Difficult to modify, because of a lack of architectural understanding, insufficient documentation, and lack of qualified programmers
Two-Tier Architectures
-> Possibility of moving the presentation layer to the IS’s clients (i.e., to the PCs) led to the emergence of two tier architectures
+ More available resources for application and data management layers on server
+ Tailoring of presentation layer for different clients possible without increasing complexity
- Legacy problem : If client integrates services from different servers, it has many additional requirements, greatly increasing complexity, and resulting in another application layer in the client
Three Tier Architectures
-> introduce an additional tier between clients and servers in order to solve the problem of highly complex clients
-> Presentation Layer: Client; Application Layer: Middleware; Data Management Layer: all servers
+ Scalability by running each layer on a different server
+ Opportunity to write application logic that is less tied to underlying data management
- More communication effort between data management layer and application layer
- Legacy problem, when integration has to happen via the Internet
Multi Tier Architectures
-> arose for instance from the need to incorporate Web servers as part of the presentation layer
-> Web server is treated as an additional tier, due to high complexity
+ Horizontal scalability
+ Fault tolerance
+ Low latency
+ High number of connections possible
+ Easy integration of existing systems
- sometimes hard to identify where one system ends and the next begins
Peer-to-Peer Architectures basics (3)
- every participant/node has the same capabilities and responsibilities
- Peers make a portion of their resources available to other peers without need for central coordination
- modern peer-to-peer systems, participants are often divided into groups, depending on their qualifications, which take on specific tasks
Unstructured peer to peer networks
- do not impose a particular structure on the overlay network, but are formed by nodes that randomly form connections to one another
Structured peer to peer networks
- Overlay is organized into a specific topology protocol ensures that any node can efficiently search the network for a file or resources, even if this resource is extremely rare
Purpose and advantage of Peer-to-Peer networks
- software publication and distribution (e.g., file-sharing), content delivery networks (e.g., for Web caching or server load balancing), or streaming
+ highly resistant to almost any type of attack (more demand; system’s capacity increases, because new nodes that place demand on the system are also required to share their resources)
Model View Controller Architectures
- > Architectural pattern divides an IS into three subcomponents: Model, Presentation (View), Controller
- > Main objective: Flexible program design that facilitates later modification, as well as reusability of individual components
Model
contains data represented by the associated presentation and operations associated with that data
Presentation (View)
responsible for the representation of the model data and for the realization of user interactions
Controller
manages the presentation and the model
Three components in MVC interact in several ways with each other (3)
- View knows the model whose data it represents - is informed about changes to the data and can update the representation accordingly
- Controller manages both the view and the model
- View informs controller about user interactions, it evaluates these, and adjusts the view and changes the data in the model
Service-Oriented Architecture (SOA)
- Basic Goal: Increase re-usability of business processes by encapsulating them into services
- service requester can query the broker’s repository to find a service offering with matching characteristics. Once a matching service is found, the service broker passes the required information about the service to the requester, who can then bind the service interface and can invoke the underlying service
Main Components of SOA (3)
- Service Provider
- Service Broker
- Service Requester
Service Provider
hosts services and provides interfaces that allow a service requester to access these services
Service Broker
are the registries, where all means to access the service are published (mainly the interface)
Service Requester
can query the broker’s repository to find a service offering with matching characteristics
Advantages SOA (2)
+ highly flexible and reliable IT infrastructures, which is ideal for the composition or integration of heterogeneous IS
+ lowers the effort required involved in the provision and consumption of services via the Internet