exit icon
Press enter to confirm search term

As technology becomes a key differentiator, business leaders are rapidly engaging in strategic discussions with IT leaders to better understand how the solutions they develop will meet their business needs. At this juncture, it’s critical that they need a basic understanding of how software and system architecture work and the way decisions made choosing the correct architecture will affect the ultimate business application or solution in terms of usability, scalability, flexibility, and more.

As technology becomes a key differentiator, business leaders are rapidly engaging in strategic discussions with IT leaders to better understand how the solutions they develop will meet their business needs. At this juncture, it’s critical that they need a basic understanding of how software and system architecture work and the way decisions made choosing the correct architecture will affect the ultimate business application or solution in terms of usability, scalability, flexibility, and more.

System architecture refers to the position of those software components on physical machines. Two closely related components are often co-located or placed on different machines. the placement of components will also affect performance and reliability. The resulting style of architecture ultimately determines how components are connected, data is exchanged, and the way all of them work together as a coherent system.

System architecture encompasses decisions on where to position-specific software components. Should certain components be placed on an equivalent server or different machines? Enterprises may have a specific high-speed processing server or high-end reliable storage facility that they’ll want to leverage for specific components. These decisions will result in differing kinds of architectural organizations. we will broadly categorize them into centralized and decentralized organizations.

Centralized Organizations: Client-Server Systems

A server may be a process implementing a selected service (e.g. database service). The client may be a process requesting that service from a server. The client sends the request and waits for the reply (request-reply behavior). Where these processes are physically distributed will cause different multitiered architectural styles.

The simplest organization is using two sorts of machines:

During this case, everything is handled by the server while the client is nothing over a dumb terminal. This is often called a (physically) two-tiered architecture.

In (physically) three-tiered architectures, one among the servers also has got to act as a client. The application is spread across three machines, one client, and two servers. one amongst the servers may have input from the opposite server to process the client request, acting as a client.

Multitiered client-server architectures are an immediate consequence of dividing distributed applications into a user interface, processing components, and data-management components. Different tiers correspond directly with the logical organization of applications (software architecture corresponds to system architecture). This can be called vertical distribution during which logically different components are placed on different machines. This enables every machine to be tailored to a selected function, for instance, placing the processing layer on a high-end processing server.

Decentralized Organization: Peer-to-Peer Systems

In modern architectures, clients and servers themselves are distributed, in so-called horizontal distribution. A client or server could also be physically split, but each part operates on its share of complete data thus balancing the load. So, rather than having one data store, all components have access to, potentially turning into a bottleneck, each component has its dataset. These are called peer-to-peer systems. Each process acts as a client and server at a similar time, often mentioned as a servant.

Peer-to-peer architectures evolve around the question of a way to organize processes in an overlay network — a network during which nodes are formed by processes and links represent possible communication channels.