Client Server Architecture - Tutorial
Client Server Architecture - Tutorial
2.
Contents
1.1 Introduction to Client/Server
Introduction to
1.2 Characteristics of the Client
Client/Server
And the Server
1.3 Merits and Demerits of the Client Server
2.1 Types of Servers
Client/Server Architecture 2.2 ORB
And Servers
2.3 Client Server Architectures
2.3.1 The knowledge about the Fat Servers
And the Fat Clients
2.3.2 The Architectures
3.0.1 Introduction
3.0.2 Role of the client and its services
3.0.3 Request for Services
3.0.4 Redirection
Client/Server Architecture
4.
5.
6.
Hardware
Client/Server Architecture
7
Application development
management issues
CORBA
Appendix
(COM)
Client/Server Architecture
UNIT I
Introduction to Client/Server
1.1 Introduction to Client/Server
1.2 Characteristics of the Client and the Server
1.3 Merits and Demerits of the Client Server
1.1 Introduction
1.1.1 The Vision of the Client/Server Computing
We are in the midst of a fundamental change in both technology and its
application. Organizations today expect to get more value from their
investments in technology.
Opportunities are available to organizations and people who are ready and
able to compete in the global market. A competitive global economy will
ensure obsolescence and obscurity to those who cannot or are unwilling to
compete. All organizations must look for ways to demonstrate value. We are
finally seeing a willingness to rethink existing organizational structures and
business practices.
Organizations are aggressively downsizing even as they try to aggressively
expand their revenue base. There is more willingness to continue
4
Client/Server Architecture
Client/Server Architecture
Client/Server Architecture
Mainframe
Terminals
Network
Minicomputers
Workstations
Server
Client/Server Architecture
Client/Server Architecture
Client/Server Architecture
2. Integrated Services
In the client/server model, all information that the client is entitled to use is
available at the desktop. There is no need to change into terminal mode or
log into another processor to access information.
All authorized information and processes are directly available from the
desktop interface. The desktop toolse-mail, spreadsheet, presentation
graphics, and word processingare available and can be used to deal with
information provided by application and database servers resident on the
network.
Desktop users can use their desktop tools in conjunction with information
made available from the corporate systems to produce new and useful
information.
3. Sharing Resources among Diverse Platforms
The client/server computing model provides opportunities to achieve true
open system computing. Applications may be created and implemented
without regard to the hardware platforms or the technical characteristics of
the software.
Thus, users may obtain client services and transparent access to the services
provided by database, communications, and applications servers.
10
Client/Server Architecture
11
Client/Server Architecture
12
Client/Server Architecture
example, the remaining nodes should still have the data needed to
complete the download.
UNIT 2
Client/Server Architecture and Servers
2.1 Types of Servers
2.2 ORB
2.3 Client Server Architectures
2.3.1 about the Fat Servers and the Fat Clients
2.3.2 The Architectures
2.4 Stored Procedure
2.5 Remote Procedure Call (RPC)
2.1 Types of Server
i.
File Server
File Servers are useful for sharing information across the network
The client passes a request for file records over a network to the file
server.
13
Client/Server Architecture
This is the most primitive type of data service used for exchanging
messages over the network to find the requested data.
The file servers provide access to the remote server processors. In the
typical implementation the software, shared data, databases and
backups are stored on disk, tape and optical storage devices that are
managed by the file server.
Application
Application
File Server
Application
14
Client/Server Architecture
SQL
CALLS
Application
DBMS Server
15
Client/Server Architecture
Application
TRANSACTIONS
Application
DBMS
TP Monitor
16
Client/Server Architecture
Groupware
Messages
Application
Groupware
Server
17
Client/Server Architecture
18
Client/Server Architecture
ORB
Remote Method
Invocation
ORB
S
E
R
V
E
R
ORB
Objects
Object
2.2ORB
An object request broker (ORB) is a middleware technology that manages
communication and data exchange between objects.
ORB is the object bus. It lets the objects transparently make request to - and
receive responses from other objects located locally or remotely.
The client is not aware of the mechanisms used to communicate with,
activate or store the server objects. A CORBA ORB provides a very rich set
of distributed middleware services.
An ORB is much more sophisticated than alternative forms of client/server
middleware including the traditional Remote Procedure Calls (RPCs) ,
Message-Oriented Middleware (MOM), database stored procedures, and
peer-to-peer services. CORBA is the best client/server middleware pipe ever
defined.
ORBs promote interoperability of distributed object systems because they
enable users to build systems by piecing together objects- from different
vendors- that communicate with each other via the ORB
19
Client/Server Architecture
Client/Server Architecture
Client/Server Architecture
22
Client/Server Architecture
23
Client/Server Architecture
Tier 1
Client/Server Architecture
But the real problem arises only when you deploy them beyond the
departmental LAN. Typically the applications that worked perfectly well in
prototypes and small installations failed for large-scale productions. It
actually went through a transition phase, where it grew beyond the
departmental LANs.Thus the complex world is now faced by the 3-tier and
the N-tier applications.
2. 3-tier Client/Server Architecture
The three-tier software architecture emerged in the 1990s to overcome the
limitations of the two-tier architecture.
The third tier (middle tier server) is between the user interface (client) and
the data management (server) components.
This middle tier provides process management where business logic and
rules are executed and can accommodate hundreds of users (as compared to
only 100 users with the two tier architecture) by providing functions such as
queuing, application execution, and database staging.
The three tier architecture is used when an effective distributed client/server
design is needed that provides (when compared to the two tier) increased
performance, flexibility, maintainability, reusability, and scalability, while
hiding the complexity of distributed processing from the user.
They are also easy to manage and deploy the network and most of the code
runs on the server. The protocol of interaction between the client and the
server is as follows:
The client calls for the business logic on the server, the business logic
on the behalf of the client accesses the database.
The 3-tier substitutes a few server calls for many SQL queries and updates
so it performs much better than 2-tier. A three tier distributed client/server
architecture includes a user system where user services (such as session, text
input, dialog, and display management) reside.
The middle tier provides process management services (such as process
development, process enactment, process monitoring, and process
resourcing) that are shared by multiple applications.
25
Client/Server Architecture
SQL data
access
RPC,ORB,
MOM,
HTTP
Tier 1
Tier 2
DBMS, Legacy
and other resource
managers
Tier 3
3-tier to N-tier
In the 3-tier applications, the middle tier is generally not a monolithic
program but is implemented as a collection of components that are initiated
by several client- initiated business transaction.
One component can call other components to help it implement a request;
also some components may act as gateways which may encapsulate legacy
applications running on mainframe.
26
Client/Server Architecture
Client/Server Architecture
Intergalactic Client/Server
The client/server applications stand at a new threshold brought on by the
exponential increase of low-cost bandwidth on Wide Area Network for
example, the Internet and AOL.
1. A new generation of Web-enabled desktops and devices. This new
threshold marks the beginning of a transition from 2-tier Ethernet
client/server to N-tier intergalactic client/server.
2. The client and the server do not have to be co-located on the same
campus; but they can be a world away. This is called as the
Irrelevance of proximity.
Client/Server Building Blocks
When we think of client/server systems there are few questions, which come
into our mind, like
1. How is the application split between the client and the server?
2. What function goes into the client and what function goes in the
server?
3. Can the client/server model accommodate business of all sizes?
4. Can the client/server play at home?
5. How are the new tribes of nomadic laptop users brought into the
client/server fold?
The answer for all these
The client/server model accommodates all types of users, it is simple and it
works well with todays technologies. Let us now see which are the 3
building blocks of the client/server system, which meet a wide spectrum of
client/server needs from the tiny to the intergalactic.
The 3 building blocks are
1. Client
2. Server
3. Middleware
28
Client/Server Architecture
Now let us see are they used for the following four situations:
1. Client/Server for tiny shops and nomadic tribes
Here the client, middleware software and most of the business
services run on the same machine.
Suggested for implementation is home office, one-person shops
and mobile user with well-endowed laptops.
2. Client/Server for small shops and departments
This is the classic Ethernet client/server building block
implementation.
Used in small shops, departments and branch offices.
This is one of the predominant forms of client/server today.
3. Client/Server for intergalactic enterprise
This forms the multiserver building-block implementation of
client/server.
The server presents a single-system image to the client.
They can be spared throughout the enterprise, but they can be
made to look like they are part of the local desktop.
This implementation meets the initial needs of intergalactic
client/server computing.
4. Client/Server for a post-scarcity world
Transforms every machine in the world into both a client and a server.
Personal agents on very machine will handle all the negotiations with
their peer agents anywhere in the universe.
Building Blocks in Nutshell
Let us now view each of the building blocks in detail.
1. The client building block
Runs the client side of the application
It runs on the Operating System that provides a Graphical User
Interface (GUI) or an Object Oriented User Interface (OOUI)
The thin clients require a Web Browser to download JavaBeans
and applets on demand.
29
Client/Server Architecture
30
Client/Server Architecture
2.4
Stored Procedure
Stored Procedure is a named collection of SQL statements and
procedural logic that is compiled, verified and stored in the server
database.
Sybase pioneered this concept of stored procedure in 1986 to improve
the performance of SQL on networks.
The major database vendors are now offering an RPC-like mechanism
for executing functions that are stored in their databases. This
mechanism is sometimes referred to as TP-Lite or stored
procedure.
A stored procedure is typically treated like any other database object
and registered in the SQL catalog. The access to the stored procedure
is controlled through the servers security mechanisms.
They are
1. Used to enforce business rules and data integrity
2. Perform system maintenance and administration functions
3. To extend the database servers functions
4. Used to create the server side of application logic.
5. It is also well suited for creating performance-critical applications
known as Online Transaction Processing OLTP
Typically these applications can
1. Receive a fixed set of inputs from remote clients
2. Perform multiple precompiled SQL commands against a local
database
3. Commit the work
4. Return a fixed set of results.
5. Stored Procedures are database-centric, RPC-like SQL entity that
is persistent, shared and has a name,
6. It reduces the network traffic and improves the response time.
7. Provide better site autonomy because the remote modification of
tables can only occur through locally executing programs.
31
Client/Server Architecture
8. Any changes are made to the tables need not be recompiled in all
applications in the remote machines.
9. They provide better distribution of intelligence than static or
dynamic SQL.
10.It provide service-oriented interface that is well suited for OLTP
applications.
Major Drawbacks of Stored Procedure
They provide less ad hoc flexibility than remote dynamic
SQL.
They may perform very poorly if their plans are not refreshed/
rebound to take advantage of the optimize statistics.
They are totally non-standard. Results in number of problems,
no two-vendor implementations are alike.
There is no standard way to pass or describe the parameters.
The language for describing the stored procedure is not portable
across vendor platform.
There is no transactional synchronization- i.e., two-phase
commit between stored procedures; where each stored
procedure is a separate transaction.
32
Client/Server Architecture
33
Client/Server Architecture
UNIT 3
Client Side Services
3.0 Services
3.0.1 Introduction
3.0.2 Role of the client and its services
3.0.3 Request for Services
3.0.4 Redirection
3.1 Print Services
3.2 Remote Services
3.3 Utility Services
3.4 Message Services
3.6 Network Services
3.6 Application Services
3.7 Database Services
3.8 Dynamic Data Exchange (DDE)
3.9 Object Linking and Embedding (OLE)
3.10 Client Tools
3.11 GUI Clients
3.12 Non-GUI Clients
3.13 OOUI (Object Oriented User Interface) Clients
3.0 Services
3.0.1 Introduction
The client in the client/server model is the desktop workstation. Any
workstation that is used by a single user is a client, if multiple users share
the same workstation simultaneously, then it is a server.
The famous servers like Apple Macintosh SE, an IBM PS/2 Model 30, an
ALR 386/220, a Compaq System Pro, an NCD X-Terminal, Sun
SPARCstation, a DEC station 6000 all are used somewhere as a client
workstation. There are no specific technological characteristics of a client.
34
Client/Server Architecture
35
Client/Server Architecture
3.0.4 Redirection
This service intercepts client workstation operating system calls and
redirects them to the server operating system.
Thus in this way the request for disk directories or disk files, printers, printer
queues, serial devices, application programs and named pipes are trapped by
the redirection software and redirected to the correct server location.
How does this redirection work?
Let the local disk driver be labeled A: and C: and the remote drivers labeled
D: , E: and F:
1. Any request for drive A: of C: is passed through to the local file
system by the redirection software. Then the request is sent to the
server OS.
2. The NOS requester software constructs the remote procedure call
(RPC) to include the API call to the NOS server.
3. The NOS server then processes the request as if it was executed
locally and ships the response back to the application.
36
Client/Server Architecture
37
Client/Server Architecture
38
Client/Server Architecture
If the server link ceases to exist at some point, use a warm link rather
than hot link to ensure that the last data iteration is available. You can
create request links to enable direct copy-and paste operations between
a server and client without the need for an intermediate clipboard.
DDE also facilitates the feature of extending applications. These
facilities, available to the desktop user, considerably expand the
opportunity for application enhancement by the user owner.
39
Client/Server Architecture
40
Client/Server Architecture
UNIT 4
Server Side Services
4.1 Server Functionality
4.1.1 Role of the Server
4.2 Request Processing
4.3 Print Services
4.4 Database Services
4.6 Security Services
4.6 File Services
4.7 Communication Services
4.1 Server Functionality
4.1.1 The Role of the Server
Servers provide application, file, database, print, fax, image,
communications, security, systems, and network management services.
It is important to understand that a server is an architectural concept, not a
physical implementation description. The same physical device can provide
client and server functions.
Application servers provide business functionality to support the operation
of the client workstation. In the client/server model these services can be
provided for an entire or partial business function invoked through an
InterProcess Communication (IPC) request for service. Either messagebased requests i.e. OLTP or RPCs can be used.
A collection of application servers may work in concert to provide an entire
business function. For example, in a payroll system the employee
information may be managed by one application server, earnings calculated
by another application server, and deductions calculated by a third
application server.
These servers may run different operating systems on various hardware
platforms and may use different database servers. The client application
invokes these services without consideration of the technology or geographic
location of the various servers.
41
Client/Server Architecture
42
Client/Server Architecture
43
Client/Server Architecture
44
Client/Server Architecture
Relational database management systems are the current technology for data
management.
Relational database technology provides the current data management
solution to many of the problems inherent in the flat-file and hierarchical
technologies.
The primary design objective (of E.F Codd) behind SQL was to provide a
data access language that could be shown mathematically to manipulate the
desired data correctly.
Use of SQL
- The secondary objective was to remove any sense of the physical storage
of data from the view of the user. SQL is another flat-file implementation;
there are no embedded pointers. SQL uses extracted indexes to provide
direct access to the rows (records) of the tables (files) of interest. Each
column (field) may be used as part of the search criteria.
- SQL provides (especially with SQL2 extensions) a very powerful data
access language. Its algebra provides all the necessary syntax to define,
secure, and access information in an SQL database.
- The elegance of the language intrigued the user and vendor community to
the extent that standards committees picked up the language and defined a
set of standards around the language syntax.
- SQL1 and SQL2 define an exact syntax and a set of results for each
operation. As a consequence, many software vendors have developed
products that implement SQL.
- Dr. Codd has published a list of 13 rules that every SQL database engine
should adhere to in order to be truly compliant.
No products today can meet all of these criteria. The criteria, however,
provide a useful objective set for the standards committees and vendors to
strive for. We have defined another set of product standards that we are
using to evaluate SQL database engines for the development of client/server
applications. In particular, products should be implemented with support for
the following products and standards:
45
Client/Server Architecture
Support for and compatibility with server NOS: NetWare, OS/2 (LAN
Manager, LAN Server), Windows NT, Mac System 7, and/or UNIX
(VINES, SCO, Sun, HP/UX USL, SVR4_), and MVS
Client/Server Architecture
answer set to the client requestor. The database engine should provide
support for stored procedures or triggers that run on the server.
The client/server model implies that there will be multiple concurrent user
access. The database engine must be able to manage this access without
requiring every developer to write well-behaved applications. The following
features must be part of the database engine:
The enterprise on the desk implies that a single logon ID and logon
sequence is used to gain the authority once to access all information
and process for the user has a need and right of access. Because data
may be stored in a less physically secure area, the option should exist
to store data in an encrypted form. A combination of the user ID and
password should be required to decrypt the data.
Client/Server Architecture
48
Client/Server Architecture
49
Client/Server Architecture
UNIT 5
Network and Protocol Basics
5.0 Communication Network
5.1 Local Area Network
5.2 Metropolitan Area Network
5.3 Wide Area Network
5.4 Network Structure
5.6 OSI Model
5.6 TCP/IP Architecture
5.7 TCP/IP Protocols
50
Client/Server Architecture
Client/Server Architecture
52
Client/Server Architecture
ii. Protocol
iii. Architecture
5.4.1 Topology
Topology specifies the geometric arrangement of the network. Common
topologies are a bus, ring, and star.
Bus Topology:
A bus topology means that each computer on the network is attached to a
common central cable, called a bus or backbone. This is a rather simple
network to set up.
Ethernets use this topology.
Ring Topology:
A ring topology means that each computer is connected to two others, and
they arranged in a ring shape. These are difficult to set up, but offer high
bandwidth.
Star Topology:
A star topology means all computers on the network are connected to a
central hub. These are easy to set up, but bottlenecks can occur because all
data must pass through the hub. The Figure 5.4.a below depicts these three
topologies:
53
Client/Server Architecture
Fig5.4.a
5.4.2 Protocols
Protocol specifies a common set of rules and signals the computers on the
network use to communicate. There are many protocols, each having
advantages over others. The most popular ones are:
TCP/IP :
54
Client/Server Architecture
IPX/SPX:
o Developed by Novell for use with its NetWare NOS, but
Microsoft built compatibility into both NT and Windows 9x.
IPX is like an optimized TCP/IP.
o It, too, is a routable protocol, making it handy for large
networks, but it allows quicker access over the network than
TCP/IP. The downfall is that it doesnt work well over analog
phone lines.
o
IPX continually checks the status of transmission to be sure all
the data arrives. This requires extra bandwidth, where analog
phone lines dont have much to begin with. This results in slow
access. Of course, the data is more reliable with IPX.
NetBEUI :
o
o
o
5.4.3 Architecture
Architecture refers to one of the two major types of network architecture:
Peer-to-peer or client/server.
In a Peer-to-Peer networking configuration, there is no server, and
computers simply connect with each other in a workgroup to share files,
printers, and Internet access.
This is most commonly found in home configurations, and is only practical
for workgroups of a dozen or less computers.
In a client/server network, there is usually an NT Domain Controller, which
all of the computers log on to. This server can provide various services,
55
Client/Server Architecture
56
Client/Server Architecture
1. Physical Layer
The physical layer is the lowest level of the OSI model and defines
the physical and electrical characteristics of the connections that make
up the network.
It includes such things as interface specifications as well as detailed
specifications for the use of twisted-pair, fiber-optic, and coaxial
cables.
Standards of interest at this layer for client/server applications are
IEEE 802.3 (Ethernet), and IEEE 802.6 (Token Ring) that define the
requirements for the network interface card (NIC) and the software
requirements for the media access control (MAC) layer.
Other standards here include the serial interfaces EIA232 and X.21.
2.Data Link Layer
The data link layer defines the basic packets of data expected to enter
or leave the physical network. Bit patterns, encoding methods, and
tokens are known to this layer.
The data link layer detects errors and corrects them by requesting
retransmission of corrupted packets or messages.
This layer is actually divided into two sublayers:
The media access control (MAC)
The MAC sublayer has network access
responsibility for token passing, collision sensing,
and network control. The LLC sublayer operates
above the MAC and sends and receives data
packets and messages.
The logical link control (LLC).
Ethernet, Token Ring, and FDDI define the record format of the
packets (frames) being communicated between the MAC layer and
Network layer. The internal formats are different and without
conversion workstations cannot interoperate with workstations that
operate with another definition.
57
Client/Server Architecture
3.Network Layer
The network layer is responsible for switching and routing messages
to their proper destinations. It coordinates the means for addressing
and delivering messages.
It provides for each system a unique network address, determines a
route to transmit data to its destination, segments large blocks of data
into smaller packets of data, and performs flow control.
4.Transport Layer
When a message contains more than one packet, the transport layer
sequences the message packets and regulates inbound traffic flow.
The transport layer is responsible for ensuring end-to-end error-free
transmission of data.
The transport layer maintains its own addresses that get mapped onto
network addresses. Because the transport layer services process on
systems, multiple transport addresses (origins or destination) can
share a single network address.
5.Session Layer
The session layer provides the services that enable applications
running at two processors to coordinate their communication into a
single session.
A session is an exchange of messagesa dialog between two
processors.
This layer helps create the session, inform one workstation if the other
drops out of the session, and terminate the session on request.
6.Presentation Layer
The presentation layer is responsible for translating data from the
internal machine form of one processor in the session to that of the
other.
58
Client/Server Architecture
7.Application Layer
The application layer is the layer to which the application on the
processor directly talks. The programmer codes to an API defined at
this layer.
Messages enter the OSI protocol stack at this level, travel through the
layers to the physical layer, across the network to the physical layer of
the other processor, and up through the layers into the other processor
application layer and program
5.6TCP/IP Architecture
History
Many organizations were unable to wait for the completion of the OSI
middle-layer protocols during the 1980s. Vendors and users adopted the
Transmission Control Protocol/Internet Protocol (TCP/IP), which was
developed for the United States military Defense Advanced Research
Projects Agency (DARPA) ARPANET networks. ARPANET was one of the
first layered communications networks and established the precedent for
successful implementation of technology isolation between functional
components.
Today, the Internet is a worldwide-interconnected network of universities,
research, and commercial establishments; it supports thirty million US users
and fifty million worldwide users. Additional networks are connected to the
Internet every hour of the day. In fact growth is now estimated at 16 percent
per month. The momentum behind the Internet is tremendous.
The TCP/IP protocol suite is now being used in many commercial
applications. It is particularly evident in internetworking between different
LAN environments.
The TCP/IP
TCP/IP is specifically designed to handle communications through
"networks of interconnected networks."
In fact, it has now become the de facto protocol for LAN-based
Client/Server connectivity and is supported on virtually every computing
platform.
59
Client/Server Architecture
60
Client/Server Architecture
3. Telnet
Telnet is an application service that uses TCP. It provides terminal
emulation services and supports terminal-to-host connections over an
internetwork. It is composed of two different portions: a client entity that
provides services to access hosts and a server portion that provides services
to be accessed by clients. Even workstation operating systems such as OS/2
and Windows can provide telnet server support, thus enabling a remote user
to log onto the workstation using this method.
4. File Transfer Protocol (FTP)
FTP uses TCP services to provide file transfer services to applications. FTP
includes a client and server portion. Server FTP listens for a session
initiation request from client FTP. Files may be transferred in either
direction, or ASCII and binary file transfer is supported. FTP provides a
simple means to perform software distribution to hosts, servers, and
workstations.
5. Simple Network Management Protocol (SNMP)
SNMP provides intelligence and services to effectively manage an
internetwork. It has been widely adopted by hub, bridge, and router
manufacturers as the preferred technology to monitor and manage their
devices.
SNMP uses UDP to support communications between agentsintelligent
software that runs in the devicesand the manager, which runs in the
management workstation. Two basic forms of communications can occur:
SNMP polling (in which the manager periodically asks the agent to provide
status and performance data) and trap generation (in which the agent
proactively notifies the manager that a change of status or an anomaly is
occurring).
6. Network File System (NFS)
The NFS protocol enables the use of IP by servers to share disk space and
files the same way a Novell or LAN Manager network server does. It is
useful in environments in which servers are running different operating
systems. However, it does not offer support for the same administration
facilities that a NetWare environment typically provides.
61
Client/Server Architecture
62
Client/Server Architecture
UNIT 6
Hardware
6.1 Introduction
6.1.1 The Hardware Issues:
6.1.2 Connectivity
6.1.3 Communication Server
6.2 Hardware/Network Acquisition
6.3 Different types of Computing Devices
6.3.1 PC-Level Processing Units
6.3.2 Macintosh
6.3.3 Notebooks
6.3.4 Pen
6.3.5 UNIX Workstation
6.4 Server Hardware
6.5 Data Storage
6.51 Magnetic Disk
6.5.2 Mirrored Disk
6.5.3 RAID-Disk Array
6.5.4 Tape
6.5.5 Optical Disks
6.5.6 CD-ROM
6.5.7 WORM
6.5.8 Erasable Optical
6.5.9 Erasable Optical
6.5.10 Network Interface Cards (NICs)
6.5.11 Power Protection Devices
6.5.12Uninterruptible Power Supply (UPS)
6.1 Introduction
6.1.1 The Hardware Issues:
We already know by now that the "Advantages of Client/Server
Computing," the cost of powerful hardware for client/server computing has
declined dramatically in the last few years. Nevertheless, this power must be
packaged properly, and cost still must be considered in the design and
purchasing decision.
63
Client/Server Architecture
64
Client/Server Architecture
6.1.2 Connectivity
Connectivity requires every client workstation to be connected to a LAN
or through a WAN to a remote server. In the usual situation, the
workstation is connected through an Ethernet, Token Ring, FDDI, CDDI,
or occasionally a parallel or serial interface to the LAN.
The primary connection types require a network interface card (NIC) to
be inserted in the workstation to provide the protocol processing
necessary to establish and maintain the connection. The cost of LAN
connectivity has declined rapidly in parallel with the industry reduction
in workstation costs.
Cabling costs vary widely, depending on the physical difficulty of
installation and whether the network planners choose unshielded twistedpair (UTP), shielded twisted-pair (STP), or glass-fiber cables. Glass-fiber
termination equipment is more costly than twisted-pair, although the
costs are declining.
Today, many vendors provide the hardware for these connections. Each
vendor offers some advantages in terms of cost, performance, and
reliability.
6.1.3 Communication Server
WAN connectivity requires each workstation to be directly connected
to the WAN or to a communications server connected to the WAN.
Most new LANs are installed using communications servers. There
are cost, performance, and especially network management reasons
for using a LAN communications server.
A substantial advantage accrues because there is no need to cable each
workstation to the WAN. Workstations that are individually
connected to the WAN require an embedded controller card for
synchronous communications and either a modem or serial connection
for asynchronous communications.
A major advantage of the communications server is its ability to
multiplex a high-speed communications line and provide bandwidth
on demand to each client workstation. Only the single LAN cable and
LAN controller are needed to provide workstation connectivity in the
server implementation.
65
Client/Server Architecture
66
Client/Server Architecture
Client/Server Architecture
The current technology in this area is available for Intel PC, Apple
Macintosh, and SPARC UNIX processors.
Relatively slower speed of disk I/O on notebooks makes it preferable
to install extra RAM, creating "virtual" disk drives.
A minimal configuration is a processor with the equivalent processing
power of a 33 MHz Intel 486SX, 8mbytes of RAM and 140Mbytes of
disk.
In addition, the notebook with battery should weigh less than seven
pounds and have a battery life of three hours.
If the application will run a remote GUI, it is desirable to install
software to compress the GUI and V.32 modem communications at
9600 bps or V.32bis at 14400 bps, employing V.42 and V.42bis
compression, respectively. T
The introduction of PCMCIA technology, credit card size modems,
and flash memory are available to upgrade the notebook.
6.3.4 Pen
Pen-based clients provide the capability to operate applications using
a pen to point and select or write without the need for a mouse or
keyboard.
Frequently, they are used for verification, selection, and inquiry
applications where selection lists are available. Developers using this
technology use object-oriented software techniques that are RAMintensive.
The introduction of personal digital assistant (PDA) technology in
1993 has opened the market to pocket size computing. During 1994,
this technology will mature with increased storage capacity through
cheaper, denser RAM and flash memory technology. The screen
resolution will improve, and applications will be developed that are
not dependent upon cursive writing recognition.
In combination with wireless technology advances, this will become
the personal information source for electronic news, magazines,
books, and so on.
6.3.5 UNIX Workstation
UNIX client workstations are used when the client processing needs
are intensive. In many applications requiring UNIX, X-terminals
connected to a UNIX presentation server will be the clients of choice.
68
Client/Server Architecture
69
Client/Server Architecture
70
Client/Server Architecture
These enable data files to be spread across several physical drives. Data also
can be mirrored as part of this configuration.
RAID technology provides a considerable performance advantage because
many parallel I/O operations can be processed at the same time.
High capacity caches must be used in conjunction with RAID to achieve
optimum performance. The size will be identified as part of the architecture
definition.
6.5.4 Tape
Although most permanently stored data uses disk, tape is a very popular
form of low-cost magnetic storage and is used primarily for backup
purposes.
The standard backup tape device today is digital audiotape (DAT). These
tapes provide approximately 1.2 Gigabytes of storage on a standard
cartridge-size cassette tape.
Tape is a sequential medium and does not adequately support direct
(random) access to information.
If an organization standardizes on a single tape format and technology,
distribution of information by mailing tapes can be a cost-effective
communications mechanism for large quantities of information that do not
require real-time transmission or accessibility.
6.5.5 Optical Disks
Optical disk storage technology provides the advantage of high-volume,
economical storage with somewhat slower access times than traditional
magnetic disk storage.
6.5.6 CD-ROM
Compact disk-read only memory (CD-ROM) optical drives are used for
storage of information that is distributed for read-only use. A single CDROM can hold up to 800MB of information.
71
Client/Server Architecture
Software and large reports distributed to a large number of users are good
candidates for this media. CD-ROM also is more reliable for shipping and
distribution than magnetic disks or tapes.
The advent of multimedia applications and the resulting storage
requirements will further drive the demand for CD-ROM.
In 1993, the speed of CD-ROM technology was doubled through a doubling
of the rotation of the drive. Newer drives will triple-spin and quad-spin. The
speed of the drive is very critical for applications that use the CD-ROM
interactively.
The addition of large cache SCSI-2 controllers can also significantly
improve performance. The architecture definition must look at the business
requirement in determining the appropriate configuration. Poor selection will
result in unacceptable performance, excessive cost, or both.
6.5.7 WORM
Write once, read many (WORM) optical drives are used to store information
that is to be written to disk just once but read many times. This type of
storage is frequently used to archive data that should not be modified.
Traffic tickets issued by police departments are scanned and stored on
WORM drives for reference on payment or nonpayment.
The WORM technology guarantees that the image cannot be tampered with.
A magnetic drive can be used to store an index into the data on the WORM
drive.
Data can be effectively erased from a WORM by removing reference to it
from the index. This can be useful when a permanent audit trail of changes is
required.
6.5.8 Erasable Optical
Erasable optical drives are used as an alternative to standard magnetic disk
drives when speed of access is not important and the volume of data stored
is large.
72
Client/Server Architecture
They can be used for image, multimedia, backup, or high-volume, lowactivity storage.
6.5.9 Network Interface Cards (NICs)
Client and server processors are attached to the LAN through NICs. These
provide the physical connectivity to the wire and the protocol support to
send/receive messages. The most popular network protocols today are Token
Ring, Ethernet, and FDDI.
6.5.10 Power Protection Devices
A lot has been written in books, magazines, and journals about computer
hardware and software; and a number of computer specialty businesses are
dedicated to helping you work through issues of specific concern to your
business objectives.
6.5.11 Uninterruptible Power Supply (UPS)
Prices for UPS have declined to the point where they are widely used for
LAN server protection. These units contain battery backups to enable at least
a graceful power-down sequence.
All buffers can be purged and files closed so that no information is lost.
Other units provide 16-90 minutes of power backup to handle most power
failure situations.
6.5.12 Surge Protectors
The electronics in computer systems are affected by power fluctuations.
Protection can be obtained through the use of surge protection equipment.
Every client and server processor and all peripherals should be wired
through a surge protector. Most UPS systems include integrated surge
protectors.
73
Client/Server Architecture
Unit 7
Application development management issues
7.0 Need to Improve Technology Professional Productivity
7.0.1 Need for Platform Migration and Reengineering of Existing
Systems
7.0.2 Need for a Common Interface Across Platforms
7.0.3 Increase in Applications Development by Users
7.2 Client/Server Systems Development Methodology
7.3Project Management
7.4 Architecture Definition
7.5 Systems Development Environment (SDE)
7.6 CASE
7.7 Object-Oriented Programming (OOP) and CASE Tools
74
Client/Server Architecture
Client/Server Architecture
76
Client/Server Architecture
77
Client/Server Architecture
78
Client/Server Architecture
SILC Phase
Systems Planning
Major Activities
Initiate systems planning
Gather data
Identify current situation
Describe existing systems
Define requirements
Analyze applications and data architectures
Analyze technology platforms
79
Client/Server Architecture
Implementation
Post-implementation
Support
Prepare site
Plan hardware installation
Install and test hardware
Develop contingency procedures
Develop maintenance and release procedures
Train system users
Ensure that production environment is ready
Convert existing data
Install application system
Support acceptance test
Provide warranty support
Initiate support and maintenance
Services
Support hardware and communication configuration
Support software
Perform other project completion tasks as appropriate
Client/Server Architecture
Identify tasks and estimates
Establish project organization and staffing
Document assumptions
Identify client responsibilities
Define acceptance criteria
Define requirements for internal quality assurance review
Determine project schedules and milestones
Document costs and payment terms
81
Client/Server Architecture
products provide among the more powerful available tools to facilitate this
process.
7.4 Architecture Definition
The purpose of the architecture definition phase in the methodology is to
define the application architecture and select the technology platform for the
application. To select the application architecture wisely, you must base the
choice on an evaluation of the business priorities. Your organization must
consider and weight the following criteria:
Client/Server Architecture
83
Client/Server Architecture
Human interface
What are the requirements?
What is in place today?
What are users expecting?
One should not drive the other. It is unrealistic to assume that the application
architects can ignore the technical platform, but they should understand the
business priorities and work to see that these are achieved. Interfaces must
isolate the technical platform from the application developers. These
interfaces offer the assurance that changes can be made in the platform
without affecting functioning at the application layer.
With the technical architecture well defined and the application architecture
available for reference, you're prepared to evaluate the product options. The
84
Client/Server Architecture
Interfaces that isolate the user and developer from the specifics of the
technical platform should be used to support the creation of a singlesystem image.
85
Client/Server Architecture
86
Client/Server Architecture
Every platform includes a set of services that are provided by the tools. This
is particularly true in the client/server model, because many of the tools are
new and take advantage of object-oriented development concepts. It is
essential for an effective SDE to use the facilities and not to redevelop these.
87
Client/Server Architecture
Client/Server Architecture
Client/Server Architecture
90
Client/Server Architecture
Client/Server Architecture
Client/Server Architecture
Store and retrieve all types of data: drawings, documents, fax, images,
pictures, medical information, voice, and video
93
Client/Server Architecture
94
Client/Server Architecture
UNIT 8
CORBA
8.1 Common Request Broker Architecture (CORBA)
8.1.1 OMG (Object Management Group)
8.1.2 CORBA what is it?
95
Client/Server Architecture
8.1.3 who is using CORBA already?
8.1.4 what is CORBA good for?
8.1.5 ORB and CORBA Architecture
8.1.6 Technical Details of CORBA
96
Client/Server Architecture
97
Client/Server Architecture
Client/Server Architecture
99
Client/Server Architecture
Fig 8.1.6
Domain
Interface
Common
Facilities
OBJECT
SERVICES
100
Client/Server Architecture
101
Client/Server Architecture
Client/Server Architecture
103
Client/Server Architecture
104
Client/Server Architecture
105
Client/Server Architecture
RFP 3 (COSS3)
Security
Time
RFP 1 (COSS1)
LifeCycle
Naming
Persistence
Event
Notification
RFP 2 (COSS 2)
Transaction
Concurrency
Relationships
Externalization
RFP 4 (COSS4)
Query
Licensing
Properties
RFP 6 (COSS6)
Trader
Collections
Fig 8.2 the OMGs Road Map for Delivering Object Services.
8.3 CORBA Common Facilities
The CORBA facilities are collections of IDL defined frameworks that
provide services of direct use to application objects.
OR
It is a collection of services that many applications may share, but which are
not as fundamental as the Object Services.
For instance, a system management or electronic mail facility could be
classified as a common facility.
Common Facilities are divided into two major categories:
1. Horizontal Common Facilities - which are used by most systems,
106
Client/Server Architecture
107
Client/Server Architecture
So, "CORBA 2" sometimes refers to CORBA interoperability and the IIOP
protocol, and "CORBA 3" sometimes refers to the CORBA Component
Model CCM (even though the term CORBA 3 really refers to a suite of ten
specifications!).
CORBA 3.0
Server Components
CORBA 2.0
Intergalactic ORBs
CORBA 1.1
Distributed Objects
Basic ORB
IR, BOA
C bindings
Naming
Events
Life Cycle
Persistence
IIOP
Federated IR
C++ bindings
Transactions
Concurrency
Externalization
Relationships
Query
Licensing
Compound Documents
Trader
Security
Collections
Messaging (MOM)
Server Portability (POA)
Multiple Interfaces
CORBA Beans/Business
Objects
Java Bindings
RMI-over-IIOP
Objects-by-Value
Mobile Agents
CORBA/DCOM
Automatic Persistence
IIOP Firewall Support
Workflow
Domain-level Framework
108
Client/Server Architecture
OLE 1 was a clumsy and slow protocol built on top of DDE. When an
application was launched from within a compound document, it was given
its own window, and the data it needed was copied into its address space.
There was no way for the application to directly access the document.
Then OLE 2 introduced in 1993, fixed many of these shortcomings with a
new object-encapsulation technology called the Component Object Model
(COM). All of OLE2 is built on top of COM.
Here Microsoft added a new custom, control architecture OCX to the
compound document framework.
Whereas in early 1996, Microsoft announced ActiveXs, which is minimalist
OLE objects for the Internet. During the same time, Microsoft released the
first distributed version of COM called as the Distributed Component Object
Model (DCOM).
DCOM was part of the NT4.0, and then in 1997 Microsoft announced
COM+ which formed the next generation of COM. With this it also
introduced a new marketing architecture called the Distributed internet
Application Architecture (DNA).
8.6.2 About COM
COM separates the object interface from its implementation and requires
that all interfaces be declared using an Interface Definition Language (IDL).
The Microsofts IDL is based on DCE it is of course, not CORBA
compliant.
The COM object is not an object in the Object Oriented sense.
COM objects do not have a persistent identity, where a COM object
reference is simply an interface pointer to an object in memory.
i.e., COM clients are given a pointer to access the functions in an interface;
this pointer is not related to state information. A COM client cannot
reconnect to exactly the same object instance with the same state at a later
time.
COM provides both the static and dynamic interfaces for method invocation.
109
Client/Server Architecture
Client/Server Architecture
As a programmer, you need to change and focus from being propertyoriented to service-oriented. For this you need thinking in different
perspective that takes some time.
111
Client/Server Architecture
3. The Surrogate
There is an exception point between ActiveX EXEs and DLLs. We know
that EXEs are out-of-process components and DLLs are in-process ones.
But when writing components for Microsoft Transaction Server (MTS) or
COM+, you need to create DLLs. This makes it difficult to create a
multipurpose components that can run in MTS or as stand-alone server-side ,
out-of-process components.
In order to address this problem Microsoft created a concept called
Surrogate Process. This process wraps a DLL component in an EXE so
that it can run as an out-of-process DCOM component.
This exception will allow you to use components that were built as ActiveX
DLLs on a server as DCOM components.
4. Remote Procedure Call (RPC)
DCOM is entirely dependent on Microsoft RPC to provide the distributed
capabilities. RPC only turns COM into DCOM. Microsoft infact extends
RPC to accommodate DCOM via a mechanism known as the Object RPC
(ORPC).
112
Client/Server Architecture
ORPC extended RPC is how the calls are made on remote objects, as well as
how references are transmitted and referenced.
It has 3 concepts in it as listed below:
RPC as Middleware
RPC Functions
RPC Steps
5. Marshaling
It is an important concept when dealing with DCOM. We know that when
you pass data from your application to a regular in-process COM
component, the components stack is used to store the parameters; similar to
the function call in the application.
But the same is not possible for the out-of-process DCOM components; here
we need different machines to move the data across the process boundary.
This mechanism is called as Marshaling.
The Marshaling works through a mechanism that user objects known as
proxies and stubs.
The proxy function is built into the client and a stub function is built into the
component. The proxy portion marshals the data and prepares it for
shipment across the process boundary to the component.
The stub function in the component unmarshals the data for use by the
component.
113
Client/Server Architecture
8.6COM Server
A COM Server is a piece if code a DLL or an EXE or a Java Class that
houses one or more object classes each with its own CLSID (Class ID).
When a client asks for an object of a given CLSID, DCOM loads the server
code and asks it to create an object of that class.
The server must provide a class factory for creating a new object. Once a
object is created, a pointer to its primary interfaces is returned to the client.
The server is not the object itself. The word server in DCOM is used to
emphasize the serving agent.
A COM server must satisfy the following:
1. Implement a class factory interface
The server must implement a class factory with the IClassFactory
interface for each supported CLSID. The class factory creates instance
of a class. If a class supports licensing then it must implement the
IClassFactory2 Interface.
This interface creates an object only if a valid license file is present or
a license key is provided.
2. Register the classes it supports
The server must register a CLSID for each class it supports with the
NT Registry. For each CLSID, it must create one or more entries that
provide the pathname to the server DLL or EXE (or to both).
The information is recorded using the NT Registry APIs.
Generally classes are registered at the installation time.
3. Initialize the COM library
The server issues a call to the COM API CoInitialize to initialize
DCOM. The COM library provides run-time services and APIs.
These are functions with the Co prefix, which stands for Component.
114
Client/Server Architecture
115
Client/Server Architecture
Appendix
1. Network Operating System
Client/Server Architecture
The early NOSs like the NetWare 3.X and LAN Manager
were mainly in the business of providing shared file and
printer access to DOS client machines.
The newer OSs like the NT 5.0 , NetWare 5.0 and
various Unixes are now bundling the NOS functions in
the OS.
117
Client/Server Architecture
118