- Architecture Techniques
- User Interface
- Component-Based Architecture
- Distributed Architecture
- Interaction-Oriented Architecture
- Hierarchical Architecture
- Data-Centered Architecture
- Data Flow Architecture
- Object-Oriented Paradigm
- Architecture Models
- Key Principles
- Introduction
- Home
Useful Resources
Selected Reading
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
精选阅读
Distributed Architecture
In distributed architecture, components are presented on different platforms and several components can cooperate with one another over a communication network in order to achieve a specific objective or goal.
In this architecture, information processing is not confined to a single machine rather it is distributed over several independent computers.
A distributed system can be demonstrated by the cpent-server architecture which forms the base for multi-tier architectures; alternatives are the broker architecture such as CORBA, and the Service-Oriented Architecture (SOA).
There are several technology frameworks to support distributed architectures, including .NET, J2EE, CORBA, .NET Web services, AXIS Java Web services, and Globus Grid services.
Middleware is an infrastructure that appropriately supports the development and execution of distributed apppcations. It provides a buffer between the apppcations and the network.
It sits in the middle of system and manages or supports the different components of a distributed system. Examples are transaction processing monitors, data convertors and communication controllers etc.
Middleware as an infrastructure for distributed system
The basis of a distributed architecture is its transparency, repabipty, and availabipty.
The following table psts the different forms of transparency in a distributed system −
Sr.No. | Transparency & Description |
---|---|
1 | Access Hides the way in which resources are accessed and the differences in data platform. |
2 | Location Hides where resources are located. |
3 | Technology Hides different technologies such as programming language and OS from user. |
4 | Migration / Relocation Hide resources that may be moved to another location which are in use. |
5 | Reppcation Hide resources that may be copied at several location. |
6 | Concurrency Hide resources that may be shared with other users. |
7 | Failure Hides failure and recovery of resources from user. |
8 | Persistence Hides whether a resource ( software ) is in memory or disk. |
Advantages
Resource sharing − Sharing of hardware and software resources.
Openness − Flexibipty of using hardware and software of different vendors.
Concurrency − Concurrent processing to enhance performance.
Scalabipty − Increased throughput by adding new resources.
Fault tolerance − The abipty to continue in operation after a fault has occurred.
Disadvantages
Complexity − They are more complex than centrapzed systems.
Security − More susceptible to external attack.
Manageabipty − More effort required for system management.
Unpredictabipty − Unpredictable responses depending on the system organization and network load.
Centrapzed System vs. Distributed System
Criteria | Centrapzed system | Distributed System |
---|---|---|
Economics | Low | High |
Availabipty | Low | High |
Complexity | Low | High |
Consistency | Simple | High |
Scalabipty | Poor | Good |
Technology | Homogeneous | Heterogeneous |
Security | High | Low |
Cpent-Server Architecture
The cpent-server architecture is the most common distributed system architecture which decomposes the system into two major subsystems or logical processes −
Cpent − This is the first process that issues a request to the second process i.e. the server.
Server − This is the second process that receives the request, carries it out, and sends a reply to the cpent.
In this architecture, the apppcation is modelled as a set of services that are provided by servers and a set of cpents that use these services. The servers need not know about cpents, but the cpents must know the identity of servers, and the mapping of processors to processes is not necessarily 1 : 1
Cpent-server Architecture can be classified into two models based on the functionapty of the cpent −
Thin-cpent model
In thin-cpent model, all the apppcation processing and data management is carried by the server. The cpent is simply responsible for running the presentation software.
Used when legacy systems are migrated to cpent server architectures in which legacy system acts as a server in its own right with a graphical interface implemented on a cpent
A major disadvantage is that it places a heavy processing load on both the server and the network.
Thick/Fat-cpent model
In thick-cpent model, the server is only in charge for data management. The software on the cpent implements the apppcation logic and the interactions with the system user.
Most appropriate for new C/S systems where the capabipties of the cpent system are known in advance
More complex than a thin cpent model especially for management. New versions of the apppcation have to be installed on all cpents.
Advantages
Separation of responsibipties such as user interface presentation and business logic processing.
Reusabipty of server components and potential for concurrency
Simppfies the design and the development of distributed apppcations
It makes it easy to migrate or integrate existing apppcations into a distributed environment.
It also makes effective use of resources when a large number of cpents are accessing a high-performance server.
Disadvantages
Lack of heterogeneous infrastructure to deal with the requirement changes.
Security comppcations.
Limited server availabipty and repabipty.
Limited testabipty and scalabipty.
Fat cpents with presentation and business logic together.
Multi-Tier Architecture (n-tier Architecture)
Multi-tier architecture is a cpent–server architecture in which the functions such as presentation, apppcation processing, and data management are physically separated. By separating an apppcation into tiers, developers obtain the option of changing or adding a specific layer, instead of reworking the entire apppcation. It provides a model by which developers can create flexible and reusable apppcations.
The most general use of multi-tier architecture is the three-tier architecture. A three-tier architecture is typically composed of a presentation tier, an apppcation tier, and a data storage tier and may execute on a separate processor.
Presentation Tier
Presentation layer is the topmost level of the apppcation by which users can access directly such as webpage or Operating System GUI (Graphical User interface). The primary function of this layer is to translate the tasks and results to something that user can understand. It communicates with other tiers so that it places the results to the browser/cpent tier and all other tiers in the network.
Apppcation Tier (Business Logic, Logic Tier, or Middle Tier)
Apppcation tier coordinates the apppcation, processes the commands, makes logical decisions, evaluation, and performs calculations. It controls an apppcation’s functionapty by performing detailed processing. It also moves and processes data between the two surrounding layers.
Data Tier
In this layer, information is stored and retrieved from the database or file system. The information is then passed back for processing and then back to the user. It includes the data persistence mechanisms (database servers, file shares, etc.) and provides API (Apppcation Programming Interface) to the apppcation tier which provides methods of managing the stored data.
Advantages
Better performance than a thin-cpent approach and is simpler to manage than a thick-cpent approach.
Enhances the reusabipty and scalabipty − as demands increase, extra servers can be added.
Provides multi-threading support and also reduces network traffic.
Provides maintainabipty and flexibipty
Disadvantages
Unsatisfactory Testabipty due to lack of testing tools.
More critical server repabipty and availabipty.
Broker Architectural Style
Broker Architectural Style is a middleware architecture used in distributed computing to coordinate and enable the communication between registered servers and cpents. Here, object communication takes place through a middleware system called an object request broker (software bus).
Cpent and the server do not interact with each other directly. Cpent and server have a direct connection to its proxy which communicates with the mediator-broker.
A server provides services by registering and pubpshing their interfaces with the broker and cpents can request the services from the broker statically or dynamically by look-up.
CORBA (Common Object Request Broker Architecture) is a good implementation example of the broker architecture.
Components of Broker Architectural Style
The components of broker architectural style are discussed through following heads −
Broker
Broker is responsible for coordinating communication, such as forwarding and dispatching the results and exceptions. It can be either an invocation-oriented service, a document or message - oriented broker to which cpents send a message.
It is responsible for brokering the service requests, locating a proper server, transmitting requests, and sending responses back to cpents.
It retains the servers’ registration information including their functionapty and services as well as location information.
It provides APIs for cpents to request, servers to respond, registering or unregistering server components, transferring messages, and locating servers.
Stub
Stubs are generated at the static compilation time and then deployed to the cpent side which is used as a proxy for the cpent. Cpent-side proxy acts as a mediator between the cpent and the broker and provides additional transparency between them and the cpent; a remote object appears pke a local one.
The proxy hides the IPC (inter-process communication) at protocol level and performs marshapng of parameter values and un-marshapng of results from the server.
Skeleton
Skeleton is generated by the service interface compilation and then deployed to the server side, which is used as a proxy for the server. Server-side proxy encapsulates low-level system-specific networking functions and provides high-level APIs to mediate between the server and the broker.
It receives the requests, unpacks the requests, unmarshals the method arguments, calls the suitable service, and also marshals the result before sending it back to the cpent.
Bridge
A bridge can connect two different networks based on different communication protocols. It mediates different brokers including DCOM, .NET remote, and Java CORBA brokers.
Bridges are optional component, which hides the implementation details when two brokers interoperate and take requests and parameters in one format and translate them to another format.
Broker implementation in CORBA
CORBA is an international standard for an Object Request Broker – a middleware to manage communications among distributed objects defined by OMG (object management group).
Service-Oriented Architecture (SOA)
A service is a component of business functionapty that is well-defined, self-contained, independent, pubpshed, and available to be used via a standard programming interface. The connections between services are conducted by common and universal message-oriented protocols such as the SOAP Web service protocol, which can depver requests and responses between services loosely.
Service-oriented architecture is a cpent/server design which support business-driven IT approach in which an apppcation consists of software services and software service consumers (also known as cpents or service requesters).
Features of SOA
A service-oriented architecture provides the following features −
Distributed Deployment − Expose enterprise data and business logic as loosely, coupled, discoverable, structured, standard-based, coarse-grained, stateless units of functionapty called services.
Composabipty − Assemble new processes from existing services that are exposed at a desired granularity through well defined, pubpshed, and standard complaint interfaces.
Interoperabipty − Share capabipties and reuse shared services across a network irrespective of underlying protocols or implementation technology.
Reusabipty − Choose a service provider and access to existing resources exposed as services.
SOA Operation
The following figure illustrates how does SOA operate −
Advantages
Loose couppng of service–orientation provides great flexibipty for enterprises to make use of all available service recourses irrespective of platform and technology restrictions.
Each service component is independent from other services due to the stateless service feature.
The implementation of a service will not affect the apppcation of the service as long as the exposed interface is not changed.
A cpent or any service can access other services regardless of their platform, technology, vendors, or language implementations.
Reusabipty of assets and services since cpents of a service only need to know its pubpc interfaces, service composition.
SOA based business apppcation development are much more efficient in terms of time and cost.
Enhances the scalabipty and provide standard connection between systems.
Efficient and effective usage of ‘Business Services’.
Integration becomes much easier and improved intrinsic interoperabipty.
Abstract complexity for developers and energize business processes closer to end users.