This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
An architectural style, sometimes called an architectural pattern, is a set of principles-a coarse grained pattern that provides an abstract framework for a family of systems. An architectural style improves partitioning and promotes design reuse by providing solutions to frequently recurring problems. You can think of architecture styles and patterns as sets of principles that shape an application.
Client/Server Architectural Style
The client/server architectural style describes distributed systems that involve a separate client and server system, and a connecting network. The simplest form of client/server system involves a server application that is accessed directly by multiple clients, referred to as a 2-Tier architectural style.
Client-server is a computing architecture which separates a client from a server, and is almost always implemented over a computer network.
Historically, client/server architecture indicated a graphical desktop UI application that communicated with a database server containing much of the business logic in the form of stored procedures, or with a dedicated file server. More generally, however, the client/server architectural style describes the relationship between a client and one or more servers, where the client initiates one or more requests (perhaps using a graphical UI), waits for replies, and processes the replies on receipt. The server typically authorizes the user and then carries out the processing required to generate the result. The server may send responses using a range of protocols and data formats to communicate information to the client.
Today, some examples of the client/server architectural style include Web browser-based programs running on the Internet or an intranet; Microsoft Windows® operating system-based applications that access networked data services; applications that access remote data stores (such as e-mail readers, FTP clients, and database query tools); and tools and utilities that manipulate remote systems (such as system management tools and network monitoring tools).
Different Patterns of Client Server architecture:
We use five ways of describing the different c/s
styles based on how they split the three components of any application:
user interface, business or application logic, data management. The five
styles are distributed presentation, remote presentation, distributed
function, remote data management, and distributed data management.
1)distributed or remote presentation
For people whose roots are embedded in the mainframe IBM world,
client-server is essentially distributed or remote presentation. This style
maps a workstation Graphical User Interface (GUI) front end onto an
existing application's text-based screen. This is also called Remote,
Mapping, Front-ending or HLLAPI (High-Level Language Application
Programming Interface). The mode of operation is typically intelligent
workstations intercepting and interrogating text-screen (e.g. 3270) data
streams sent from a host for display in a windowed environment.This is
"frontware" solution, where a GUI front end is added to an IBM/MVS
3270/5250 application and is placed on a workstation. However, most
processing remains on the host or server, with the exception of user
interface translation logic and possibly validation logic. For example,
data from an application program is sent to a 3270 screen program on the
mainframe to be displayed. The merged data is sent to the workstation as
a 3270 data stream.The workstation interprets the data and converts it to
graphical form in a window. (Typically every mainframe screen used by
the application has a corresponding window on the workstation and vice
versa). When the user enters the data in a GUI window, it is transformed
by the frontware application into a corresponding 3270 data format and is sent to the host computer.
1)If you are building a desktop application (Windows Forms application), you might prefer to have a client that sends a request to a program on the server. Deploy the client and server using the client/server architecture style. Use the component-based architecture to decompose the design further into independent components that expose the appropriate communication interfaces. It is recommended that you use the object-oriented approach to improve reuse, testability, and flexibility.
2) Web browser-based programs running on the Internet or an intranet:
use HTTP, FTP, Telnet, email etc.
2) Remote Data Management
In remote data management, the entire application resides on the client and
the data managment is located on a remote server/host. Remote Data
Management is relatively easily to program for because there is just one
application program. The client communicates with the server using SQL,
the server then responds with data that satisfies the query. RDBMS
products that offer remote data management provide a layer of software on
the client to handle the communication with the DBMS server.This style
represents a more traditional LAN database server or file server approach.
Workstations support the presentation and function logic and interface
with the data server through the data manipulation language.Distributed
data management is an extension of remote data management and uses the
distributed facilities of the DBMS to access distributed data in a manner
transparent to users. This is most relevant for architectures having data
spread across several servers and when access to a DBMS on another server is required.
3)distributed function processing
Here the split occurs in the application functionality, one part going to the
client, other to the server. Distributed function applications are the most
complex of the three typologies since two separately compiled application
programs must be developed. Developers must analyze where each
function should reside and what type of dialog must occur between the
two programs. The underlying communications facilities may implement
either a message-based or remote procedure call (RPC) mechanism for
transfer of dialog and data. However, there are many variants of this
typology. One variant of the distributed function style is where data
management and application function occur at both the client and server.
In this instance, data management at the client would include referential,
read-only data. Data frequently updated or accessed by many users would reside on the server.