CSA M2 Ktunotes.in
CSA M2 Ktunotes.in
CSA M2 Ktunotes.in
Advantages:
• communication is faster
Disadvantages:
Application 1
(Power Builder)
Application 2 DB 2
(Visual Basic)
Network Interface
Network A Network B
Client Server
Network Interface
Database
N-tier Servers
N-tier Server 1
Client RDBMS Server
Responsible
Responsible N-tier Server 2
for database
for GUI
processing
N-tier Server 3
Middleware
2. Service-specific middleware:
The service-specific middleware is another broad class of
middleware in a client-server environment that needs to
accomplish a particular Client/Server type of services which
includes:
MVC Architecture
MVC is an architectural pattern which means it rules the whole
architecture of the applications.
MVC Architecture
Model
It is known as the lowest level which means it is responsible for
maintaining data. Handle data logically so it basically deals
with data.
The model is actually connected to the database so anything
you do with data.
Adding or retrieving data is done in the model component.
View
Data representation is done by the view component. It actually
generates UI or user interface for the user.
So at web applications when you think of the view component
just think the Html/CSS part.
Views are created by the data which is collected by the model
component but these data aren’t taken directly but through the
controller, so the view only speaks to the controller.
Controller
It’s known as the main man because the controller is the
component that enables the interconnection between the views
and the model so it acts as an intermediary.
The controller doesn’t have to worry about handling data logic,
it just tells the model what to do.
After receiving data from the model it processes it and then it
takes all that information it sends it to the view and explains
how to represent to the user. Note: Views and models can not
talk directly.
Advantages of MVC
- MVC architecture will separate the user interface from
business logic
- Components are reusable.
- Easy to maintain.
Downloaded from Ktunotes.in
- Different components of the application in MVC can be
independently deployed and maintained.
- This architecture helpt to test components independently.
Disadvantages of MVC
-The complexity is high.
-Not suitable for small applications.
-The inefficiency of data access in view.
Conclusion
MVC is an architecture that divides your software into smaller
components. The model deals with data and the logic of our
system. The view only displays data and the controller
maintains the connection between the model and the view. This
‘division’ enables readability and modularity as well it easier the
testing part.
As we know, the client is any process that requests services from the server process. The
client is proactive and will, therefore, always initiate the conversation with the server. The
client includes the software and hardware components. The desirable client software and
hardware feature are:
(i) Powerful hardware.
(ii) An operating system capable of multitasking.
Downloaded from Ktunotes.in
(iii) Communication capabilities.
(iv) A graphical user interface (GUI).
(i) Powerful hardware: Because client processes typically requires a lot of hardware
resources, they should be stationed on a computer with sufficient computing power,
such as fast Pentium II, III, or RISC workstations. Such processing power
facilitates the creation of systems with multimedia capabilities. A Multimedia system
handles multiple data types, such as voice, image, video, and so on. Client processes
also require large amount of hard disk space and physical memory, the more such a
resource is available, the better.
(ii) An operating system capable of multitasking: The client should have access to
an operating system with at least some multitasking capabilities. Microsoft Windows
98 and XP are currently the most common client platforms. Windows98 and XP
provide access to memory, pre-emptive multitasking capabilities, and a graphical user
interface, which makes windows the platform of choice in a majority of Client/Server
implementations. However, Windows NT, Windows 2000 server, OS/2 from IBM
corporation, and the many “flavours” of UNIX, including Linux are well-suited to
handle the Client/Server processing that is largely done at the server side of the
Client/Server equation.
(iii) Communication capabilities: To interact efficiently in a Client/Server environment,
the client computer must be able to connect and communicate with the other
components in a network environment. Therefore, the combination of hardwareand
operating system must also provide adequate connectivity to multiple network
operating systems. The reason for requiring a client computer to be capable of
connecting and accessing multiple network operating systems is simple servicesmay
be located in different networks.
(iv) A graphical user interface (GUI): The client application, or front-end, runs on top
of the operating system and connects with the communication middleware to access
services available in the network. Several third generation programming languages
(3GLs) and fourth generation languages (4GLs) can be used to createthe front-end
application. Most front-end applications are GUI-based to hide the complexity of the
Client/Server components from the end user. The Fig. 3.5 given below illustrates the
basic client components.
Front-end
Application
Communication
Network layer components
Software provide access to the
Interface network and to the
GUI services
Multitasking
services
Operating
System
Software
Computer
Fig.3.5: Client Components
Back-end
Server Communications
layer components
Network provide access to the
Software Network. Request
Standard OS
Operating
System through the Network
Software
Introduction
In this section, we will discuss several patterns for distributing business information systems that
are structured according to a layered architecture. Each distribution pattern cuts the architecture
into different client and server components. All the patterns discussed give an answer to the
same question: How do I distribute a business information system? However, the consequences
of applying the patterns are very different with regards to the forces influencing distributed
systems design. Distribution brings a new design dimension into the architecture of information
systems. It offers great opportunities for good systems design, but also complicates the
development of a suitable architecture by introducing a lot of new design aspects and trap
doors compared to a centralized system.
While constructing the architecture for a business information system, which will be deployed
across a set of distributed processing units (e.g., machines in a network, processes on one
machine, threads within one process), you are faced with the question:
How do I partition the business information system into a number of client and server
components, so that my users’ functional and non-functional requirements are met?
There are several answers to this question. The decision for a particular distribution
style is driven by users’ requirements. It significantly influences the software design and requires
a very careful analysis of the functional and non-functional requirements.
Three-Layer Architecture
A Business Information System, in which many (spatially distributed) users work in parallel on a
large amount of data. The system supports distributed business processes, which may span a
single department, a whole enterprise, or even several enterprises.
Generally, the system must support more than one type of data processing, such as On-Line
Transaction Processing (OLTP), off-line processing or batch processing. Typically, the application
architecture of the system is a Three-Layer Architecture, illustrated in Fig. 3.8.
The user interface handles presentational tasks and controls the dialogue the application
kernel performs the domain specific business tasks and the database access layer connects the
application kernel functions to a database.
Our distribution view focuses on this coarse-grain component level. In developing
Presentation
User Interface
Dialogue Control
Database Access
Data Management
Database
General Forces
• Business needs vs. construction complexity: On one hand, allocating functionality and
data to the places where it is actually needed supports distributed business processes
every well, but on the other hand, distribution raises a system’s complexity. Client server
systems tend to be far more complex than conventional host software architectures. To
name just a few sources of complexity: GUI, middleware, and heterogeneous operating
system environments. It is clear that it often requires a lot of compromises to reduce the
complexity to a level where it can be handled properly.
• Processing style: Different processing styles require different distribution decisions.
Batch applications need processing power close to the data. Interactive processing should
be close to input/output devices. Therefore, off-line and batch processing may conflict
with transaction and on-line processing.
• Distribution vs. performance: We gain performance by distributed processing units
executing tasks in parallel, placing data close to processing, and balancing workload
between several servers. But raising the level of distribution increases the communication
overhead, the danger of bottlenecks in the communication network, and complicates
performance analysis and capacity planning. In centralized systems the effects are much
more controllable and the knowledge and experience with the involved hardware and
software allows reliable statements about the reachable performance of a configuration.
• Distribution vs. security: The requirement for secure communications and transactions
is essential to many business domains. In a distributed environment the number of
possible security holes increases because of the greater number of attack points.
Therefore, a distributed environment might require new security architectures, policies
and mechanisms.
• Distribution vs. consistency: Abandoning a global state can introduce consistency
problems between states of distributed components. Relying on a single, centralized
database system reduces consistency problems, but legacy systems or organizational
structures (off-line processing) can force us to manage distributed data sources.
Distribution Pattern
To distribute an information system by assigning client and server roles to the components of the
layered architecture we have the choice of several distribution styles. Figure 3.9 shows the styles,
which build the pattern language. To take a glance at the pattern language we give an abstract
for each pattern:
• Distributed presentation: This pattern partitions the system within the presentation
component. One part of the presentation component is packaged as a distribution unit and
is processed separately from the other part of the presentation, whichcan be packaged
together with the other application layers. This pattern allows of an easy
implementation and very thin clients. Host systems with 3270-terminals is a classical
example for this approach. Network computers, Internet and intranet technology are
modern environments where this pattern can be applied as well.
• Remote user interface: Instead of distributing presentation functionality the whole user
interface becomes a unit of distribution and acts as a client of the application kernel on the
server side.
• Distributed application kernel: The pattern splits the application kernel into two parts
which are processed separately. This pattern becomes very challenging if transactions
span process boundaries (distributed transaction processing).
Distribution Pattern
Presentation
Distributed Presentation
Dialogue Control
Remote User Interface
Database Access
Remote Database
Database
Distributed Database
3.8
Mainframe-based Environment
In mainframe systems all the processing takes place on the mainframe and usually dumb
terminals that are known as end user platform are used to display the data on screens.
Mainframes systems are highly centralized known to be integrated systems. Where dumb
terminals do not have any autonomy. Mainframe systems have very limited data manipulation
capabilities. From the application development point of view. Mainframe systems are over
structured, time-consuming and create application backlogs. Various computer applications were
implemented on mainframe computers (from IBM and others), with lots of attached (dumb, or
semi-intelligent) terminals see the Fig. 3.10.
Terminal Terminal Terminal
Mainframe Database
LAN-based Environment
Database
File Printer
Internet-based Environment
What the Internet brings to the table is a new platform, interface, and architectures. The Internet
can employ existing Client/Server applications as true Internet applications, and integrate
applications in the Web browser that would not normally work and play well together. The
Internet also means that the vast amount of information becomes available
from the same application environment and the interface. That’s the value. See the Fig.
3.12 given below:
Server Client
The internet also puts fat client developers on a diet. Since most internet applications are
driven from the Web server, the application processing is moving off the client andback onto
the server. This means that maintenance and application deployment become much easier, and
developers don’t have to deal with the integration hassles of traditional Client/Server (such as
loading assorted middleware and protocol stacks).
The web browsers are universal clients. A web browser is a minimalist client thatinterprets
information it receives from a server, and displays it graphically to a user. The client is simply
here to interpret the server’s command and render the contents of anHTML page to the user.
Web browsers-like those from Netscape and Spyglass – are primarily interpreters of HTML
commands. The browser executes the HTML commands to properly display text and images on a
specific GUI platform; it also navigates from one page to another using the embedded hypertext
links. HTTP server produce platform independent content that clients can then request. A server
does not know a PC client from a Macclient – all web clients are created equal in the eyes of
their web server. Browsers are there to take care of all the platform-specific details.
At first, the Web was viewed as a method of publishing informaton in an attractive format that could
be accessed from any computer on the internet. But the newest generation of the Web includes
programmable clients, using such programming environments as Sun Microsystem’s Java and
Microsoft’s ActiveX. With these programming environments, the Web has become a viable and
compelling platform for developing Client/Server applications on the Internet, and also platform of
choice for Client/Server computing. The World Wide Web (WWW) information system is an excellent
example of client server “done right”. A server system supplies multimedia documents (pages), and
runs some application programs (HTML forms and CGI programs, for example) on behalf of the
client. The client takes complete responsibility for displaying the hypertext document, and for the
user’s response to it. Whilst the majority of “real world” (i.e., commercial) applications of Client/
Server are in database applications.