Saturday, 29 August 2015

Linear Programming

Any industrial organization is faced with the problem of taking right decisions or sequence of actions in a decision problem under the restriction of limited resources.  Operations research or Operational research (OS) provides methods for finding the best (optimum) solutions to these problems.

The two factors attributed to the rapid growth of OR are:-

  1. The substantial progress that was made in improving the techniques like linear programming, dynamic programming, queuing theory and inventory theory available.
  2. The development of the electronic digital computers, with their ability to perform arithmetic calculations millions of times faster than a human, was a tremendous boon.

Mathematical Model

The phases of an OR study includes:-

  1. Formulating the problem.
  2. Constructing a mathematical model to represent the system under study.
  3. Deriving a solution from the model.
  4. Testing the model and the solution derived from it.
  5. Establishing the controls over the solution.
  6. Putting the solution to work-implementation.
Model construction and development represents the crucial step in the implementation of OR. For the construction of a real system one should concentrate primarily on identifying the dominant factors (Variables, constraints, and parameters) that control the behavior of real system. Based on these factors we consider a assumed real system which provides us some relationships in the form of an objective and a set of constraints.

Linear Programming Problems

A mathematical representation of maximizing or minimizing an objective, subject to constraints on decision variables is

Maximize/Minimize Z = f(x1,x2,x3,…..xn)
Subject to  

          g1(x1,x2,x3,…..xn b1

          g2(x1,x2,x3,…..xn) ≥ b2
           ...................................
              gm(x1,x2,x3,…..xn) ≥ bm    
  


which is usually referred to as mathematical programming.

If all the functions involved above are linear in the variables x1,x2,x3,…..xn with the additional requirement of non-negativity for x1,x2,x3,…..xn, we have  a linear programming problem (LP Problem).

LP Problem, in general, is presented in two forms:
  1. Canonical form 
  2. Standard form 
1. Canonical form:

Maximize Z = C1X1+C2X2+…..+CnXn

Subject to 
                         a11x1+a12x2+…..+a1nxn= b1
                                  …………………………………
                         am1x1+am2x2+……+amnxn= bn

                         x≥ 0, i = 1,2,.....,n

2. Standard form

Maximize Z =  C1X1+C2X2+…..+CnXn

Subject to 
                         a11x1+am2x2+…..+a1nxn= b1
                                  …………………………………
                         am1x1+am2x2+……+amnxn= bm

                         x≥ 0, i = 1,2,.....,n

where n ≥ m and  b≥ 0, i = 1,2,.......,m

In both forms the objective functions are maximized.

The situations, which can be modeled through LP, have the following characteristics:

  1. There are n competing activities.
  2. It is desired to determine the levels of activities.
  3. There are m scarce resources.
  4. The unit level of each activity consumes a constant amount of every resources.
  5. It is desired to maximize(minimize) some measure of effectiveness of the activities.
  6. Each unit increase in any level of activity is assumed to have a proportion of increase in the over all measure of effectiveness
  7. We rule out the possibility of negative activity levels.

Example:

One of the classical problems of LP is the diet problem. The objective is to determine the quantities of certain foods that should be eaten to meet certain nutritional requirements at a minimum cost. Assume that we have limited our consideration to milk, fish and eggs and to vitamin A,C and D. The following table gives the number of milligrams of each of these vitamins contained within a unit of each food.

Food
Vitamin A                        
Vitamin C
Vitamin D
Cost
Gallon of Milk
1
100
5
Rs. 1.50/Gallon
Pound of Fish
2
10
90
Rs. 15.00/Pound
Dozens of eggs
10
5
10
Rs.12.00/Dozen

Minimum daily
Requirements
1mg
60mg
10mg


LP formulation:

Let x1, x2, x3 be the number of gallons of milk, pounds of fish and dozens of eggs, respectively, in the daily diet.
The objective is to minimize the cost.
Therefore LP model for this problem is the following:

Minimize Z = 1.5x1+15x2+12x3
Subject to
                      x1+2x2+10x≥ 1
                           100 x1+10x2+5x3 ≥ 60
                      5x1+90x2+10x3 ≥ 10

and x1 ≥ 0, x2 ≥ 0, x3 ≥ 0

The construction of a mathematical model can be initiated by answering the following three questions:

  1. What are the decision variables of the problem?
  2. What constraints must be imposed on the variables?
  3. What is the measure of effectiveness that needs to be achieved to determine the best solution?

Assumptions of LP problem

The assumptions of LP problem that limits its applicability are:
  1. Proportionality:
    • The objective function and every constraint function must be linear on variables under consideration.
    • The measure of effectiveness and resource usage must be proportion to the values of decision variables.
  2. Additivity:
    • The activities be additive with respect to the measure of effectiveness and each resource usage.
  3. Divisibility:
    • Require integer optimal solution to decision variables.
  4. Deterministic:
    • All the coefficients in the LP model are assumed to be known constants.
Graphical Procedure


The method of finding solution graphically to a LP problem involving 2 decision variables, called simplex method. For three or more number of variables this procedure is impractical.

Depict graphically the values of ( x1, x2) which satisfies the constraints:

 a11x1+a12x2  ≤  b1 
 a21x1+a22x2  ≥  b2 
 a31x1+a32x2  ≥  b3 

Since uncountable number of values( x1, x2) satisfy each constraint, we follow the procedure given below for each constraint.

Step 1: Treat the constraint a11x1+a12x2  ≤  b1 as if it were an equality.

                   a11x1+a12x =  b1               

rewrite this as 
                     
      x1                           x
___________ + ___________       = 1         

    b1a11            b1 / a12  


   


                                                                    



To determine which half space represents the inequality  a11x1+a12x2  ≤  b1 , one should observe the sign of b1. If b1 is positive, the half space which contains the origin (0,0) represents the feasible region for 'less than' type inequality and the other half space represents that of 'greater than' type inequality.

Step 2: Once the feasible region for each constraint is obtained, their intersection is the feasible region for the totality of all the constraints.

Step 3: If the objective function is Z = C1X1+C2X2, draw the straight lines


C1X1+C2X= Z 1 and  C1X1+C2X= Z 2 for two different constants Z 1 and Z 2.

These two lines will be parallel and one can determine the direction in which the objective function C1X1+C2Xincreases, for increasing values of Z. If the problem is maximization of objective function Z = C1X1+C2X2, we should determine the objective function line which has the longest distance from the origin but still intersects the set of feasible solutions. One may conclude that such a line will be passing through one of corners or will be coinciding with a side of the set of feasible region. If the former is the case, we get a unique solution to our problem and in the later, an infinite number of solutions.







Wednesday, 26 August 2015

Client/Server Systems Development - Service & Support

Contents:

System Administration
Network Management
Client/Server Systems Development Training

System Administration

We have to ensure that the client/server hardware are to the organizational standards and tested prior to implementation. Softwares should be installed according to standards and works with trained people. This is the first phase of the success of a client/server applications.

Availability

Availability means system, the system availability for processing data and doing its expected work whenever needed. Minicomputer and mainframe data centers provide atleast 99.8 percent availability with today's technology.

To achieve this level of availability, a combination of technological and procedural steps are followed. Most availability failure is due to human error. To reduce this, data centers implement rigid procedures to manage.

Whether the change is hardware, network,system or application software, stringent procedures to request, validate,test and implement the change are defined and adhered. Backout procedures are defined and tested to ensure that if a failure occurs after implementation of the change, the data center can fall back to its previous status.

Technological features such as separate electrical power sources, backup and battery power sources, redundant processors and disk devices all are used to ensure that failure of a single component will not take down the data center.

Data centers use highly skilled professionals in the central location. They are expected to be able to recover the site quickly after any failure.

Reliability

Reliability requires applications to be protected from overwriting each other and requires shared memory to be accessed only by authorized tasks.

Security must be implemented to allow access to resources only by authorized users. The software must automatically handle multiple user contention, provide full recovery after failure of in-flight updates, and provide utility functions to recover a damagedd magnetic disk.

Serviceability

Products based on standard protocols such as the Simple Network Management Protocol (SNMP) provide the necessary feedback of event alerts to support the remote systems management function. It is necessary that the architecture design take into account the issues of standards and products to be serviceable.

Performance

In the centralized minicomputer and mainframe environment, trained technical support personnel and operations staff monitor performance on an ongoing basics. Sophisticated monitoring tools, track the system's day-to-day performance. If trends show performance degrading, systems managers can add hardware or make adjustments to improve performance before it affects the use community. Additional tools are available to simulate new applications before they move into production. This means that the organization learns in advance the resource requirements of new applications. Changes can be made to the operating environment to ensure that performance will be acceptable.

In the client/server environment, neither UNIX, Windows NT, nor OS/2 yet provides these sophisticated performance monitoring tools.

Network Management

Network management involves active and passive monitoring of network resources for the purpose of troubleshooting, detecting potential problems, improving performance, documentation and reporting. A diversity of management applications and protocols are available. The network administrator, working at a management console, produces reports and graphs about the state of the network from this information. Agents may also provide alerts that warn of problems of performance degradations. Most management applications of this type are built around the internet's SNMP.

Desktop management software to remotely manage client systems and control desktops. Software installation, updating and licensing to automatically install or update software over a network and ensure that an organization is within its usage license. Network asset management to track hardware and software inventories. Help desk management to provide user assistance over the network. Network protocol analysis Hub and router management Network design, capacity planning and simulation software.

One of the problems with network management is that most enterprise networks consist of a wide variety of computer platforms, network topologies, communication protocols, operating systems and applications. Therefore, the network itself is often used to extend the reach of the network administrator by single remote monitoring and control tools.

Remote Systems Management

LAN administrator should be able to connect remotely to and then manage the workstation of any user who has problem.

Security

Security is  all about protecting data and data streams. Physical security techniques are fairly straightforward- you lock things up in secure rooms. Software security includes user logon, authentication, authorization and access controls.

Client server systems development training

Client/Server computing provides an opportunity to reengineer the business process by using technology earlier and in a more integrated manner. It does not eliminate the need to train for the new process.

Training advantages of GUI applications 

A major training benefit of the graphical user interface GUI is the opportunity to provide an intuitive interface. Each time standard functions are used in a GUI platform, thhey are invoked in the same way.

Components of Client/Server Applications - Connectivity

Contents:

Open System Interconnect (OSI)
Inter Process Communications
Communications Interface Technology
Wide Area Network Technologies
Client/Server Systems development software
Client/Server development methodolgy
Client/Server System Development Hardware
Level Processing Units

Components of Client/Server Applications - The Server


Contents:

Role of the server
Server Functions
Network Operating System
The Server Operating System
System Application Architecture (SAA)


A Server is a network connected computer system that provides services to network users. Most large companies have banks of relatively inexpensive computers that operate as file servers, application servers, database servers, e-mail gateways and communication servers. These systems run network operating system.

The "new" server is often a scalable system into which additional processors and other components may be added at any time. Such systems are platforms for future expansion and growth. They provide centralized services to support the new class of network computers and Net PCs.

Clustered systems protect against the loss of any one system. Data is stored in separate fully redundant arrays than any server can access. The system can be scaled by simply adding more servers. A simple application can also be run across the cluster and all the servers are used as a single processor.

A typical intel-based multiprocessor system has four processors. To take advantage of this system, you will need an operating system that supports SMP (Symmetrical Multiprocessing)
eg: Windows NT, Novell

An SMP system breaks processing tasks into separate threads and each thread is processed by a separate CPU. Thus, a four processor system could theoretically complete a task four times faster than a single-processor system. SMP systems implement shared memory, disk storage and other system features.

Role of the Server

Servers provide application, file, database, print, fax, image, communications, security, systems and network management services.

An application server is a machine that serves as a host replacement. For client/server applications that are classified as host-based, the host is the server to the GUI - based clients.

File servers mange a work group's applications and data files. So that they may be shared by the group. File servers are very I/O oriented. File locking is handled by locking the entire file or by locking byte ranges.

Two techniques used to minimize the amount of data that passes over the network are:

  • organizing data so that the data needed by a particular application request is stored in a single contiguous block.
  • storing copies of data accessed by more than one user to help with concurrency problems.
Database server is the most typical use of server technology in client/server applications. Data base servers can have a lock manager, multi-user cache management and scheduling and thus have no need for redundant data.

Database and data/compute servers improve request handling by processing a SQL client request and sending back to the client only the data that satisfies the request.

Print servers provide support to receive client documents, queue them for printing, prioritize them, and execute the specific print driver logic required for the selected printer.

Fax servers provide support similar to that provided by print server. The fax server must be capable of dynamically compressing and decompressing documents for distribution, printing and display.

Image servers operate in a manner similar to fax server. Communication servers provide gateways to other LAN's, networks, mid range computers and mainframes.

Server Functions

The term server has two general connotations:
  1. A piece of hardware that provides shared services in a networked environment.
  2. A software component that provides a generalized functional service to other software components.
File Services

File Services handle access to the virtual directories and files located on the client workstation operating environment. The file services provide this support to the remote server processor.

Print Services

  • The server can manage several printers.
  • The server can keep track of special paper.
  • Print jobs can be scheduled to run at regular intervals.
  • The server can restart the job from its spool file without asking the user to re-enter the print request.
  • Access to printers can be both extended and restricted.
The same as printer services is fax services and image services.

Database Services

Client/Server database engines such as Sybase, IBM's Database Manager, Ingress, Oracle and Informix provide support at the server to execute SQL requests issued from the client workstation. The file services are still used for space allocation and basic directory services, but all other services are provided directly by the database server. Relational database management systems are the current technology for data management.
  • Flat Files: In 1960s flat files is used in database technology through the media like punched cards and disk files.
  • Hierarchical Databases: The next generation of database technology is the hierarchical database which could store related record types physically or logically next to each other. o The disadvantage is that only applications that access data according to its physical storage sequence benefit from locality of reference.
  • Relational Database: This technology provides the current data management solution to many of the problems inherent in the flat-file and hierarchical technologies. Many database engines were used in the client/server technology. Many features are included in the database engines.
    1. Performance optimization tools.
    2. Dynamic transaction back out.
    3. Roll back transaction back out.
    4. Audit File Recovery.
    5. Automatic error detection and recovery.
    6. File reclamation and repair tools.
    7. Support for mirrored databases.
    8. Capability to split database physical disk drives.
    9. Remote distributed database management features.
    10. Maintenance of accurate and duplicate audit files on any LAN node.
    11. Locking mechanisms to guarantee data integrity.
    12. Deadlock detection and prevention.
    13. Multi threaded application processing.
    14. User access to multiple databases on multiple services.
  • Object Oriented Databases: Object Oriented Databases are designed for the nested structure. The object model supports browsing of object class libraries, which allows the reuse, rather than the reinvention of commonly used data elements. Objects in an object oriented survive multiple sessions, they are persistent. OODBS can issue a single message that contains multiple transactions. Object oriented databases are favored for applications where the relationships among elements in the database carry the key information. Object oriented models capture the structure of the data.

Network Operating System

Network operating system provide features for controlling LANs and internet works and for serving clients. A NOS provides a set of protocols for accepting requests from clients and responding to those requests. A NOS also provides a shared file system and set of security features and controls to control user access to network resources.
  1. Novell Netware
  2. LAN Manager
  3. Banyan's VINES
  4. PC Network File Services (NFS)
The features of NOS are:
  • Services provided such as virus checking, software distribution, software and hardware inventory, ans server to server application.
  • OS features such as support for SMP (Symmetrical Multiprocessing), processor support, protocol support and automatic hardware detection.
  • File and print service features.
  • Fault tolerance features such as clustering, RAID and backup services.
  • Security features such as authentication, authorization, logon restrictions and access controls.
  • Support for name and deliver services.
  • Management, administration and auditing features.
  • Internet working, routing and WAN support.
  • Client OS support and support for remote dial-up users.
Novell Netware

Novell Netware is a network operating system that works on LDAP principles to offer users a robust platform for hosting files, printers and other network related services.
  • Early design in 1983
  • Designed to host files to DOS workstations
  • First OS to use Network Drive Mapping to local workstations
  • Propriety designer of the IPX Network Interface
  • Originally manufactured by the Superset Corporation bought by Novell in 1983 to support a network OS for the hardware Novell was making at the time.
With the introduction of Netware 5 Novell offers its users and administrators a never before seen level off server management. Meaning that the majority of all work can be done without directly accessing the server through console 1 or Novell's IManager Software.

LAN Manager

Microsoft LAN Manager is a network operating system that run on Microsoft's version of OS/2. The product was also marketed by IBM as IBM LAN Server. Both products have been superseded by new products. In the case of Microsoft, LAN Manager was replaced by Windows NT Server, a self sufficient operating system that does not require OS/2. In the case if IBM, LAN  Server was replaced with OS/2 warp Server. Windows NT server maintains compatibility with servers running LAN Manager. It also includes many of the features that were in the original LAN Manager product. 

Banyan VINES

Banyan VINES is a networking operating system with a UNIX Kernel that allows users of popular PC desktop OSs such as DOS, OS/2, Windows, and those for Macintosh Systems to share information and resources with each other and with host computing systems. VINES first appeared in the 1980s. It provides full UNIX NFS (Network File System) support in its core services and TCP/IP for transport. It also includes Banyan's Street Talk Directory Services, possibly the most popular component of the operating system.

VINES features:
  • built around servers that provide services to client workstations. 
  • designed to help organizations build fully distributed computing environments around a suite of enterprise network services including security, messaging, administration host connectivity and wide area network communication.
  • provides enterprise network services that are not server-centric but services-centric
Banyan Street Talk allows VINES users to quickly find and access all resources regardless of where they reside in the enterprise. Banyan's Street Talk Director Service is designed to integrate and manage a growing variety of heterogeneous environments including Banyan networks, Windows NT, UNIX and Netware. Street Talk Directory Assistance provides distributed directory services.

VINES support a wide range of messaging capabilities. VINES establishes a framework for highly scalable, standards based SNMP (Simple Network Management Protocol) management, allowing administrators to cost effectively manage the network from any point.

VINES runs on an Intel-based processor system and supports Ethernet, Token Ring or FDDI (Fiber Distributed Data Interface) network adapters. It support popular clients including DOS, OS/2, Windows and Macintosh. The package comes on CD-ROM with licenses for 100, 250, 500 and 1,000 users.

PC Network File Services (NFS)

NFS is the standard file system support for UNIX. PC NFS is available from SunSelct and FTP to provide file services support from a UNIX server to Windows, OS/2, Mac and UNIX clients.

NFS lets a client mount on NFS host's filing system as an extension of its own resources. SunSelect includes instructions for adding PC NFS to an existing LAN manager or Windows for workgroups network using Network Driver Interface Specification (NDIS) drivers.

With the increasing use of UNIX Servers for application and database services, there is an increase realization that PC NFS may be all that is required for NOS support for many workgroups. This can be a low-cost and low maintenance option because the UNIX Server is easily visible from a remote location.

The Server Operating System

Servers provide the platform for application, database and communication services. The OS platforms that have the greatest potential and are prevalent today are:
  1. Novell Netware
  2. OS/2
  3. Windows NT
  4. MVS
  5. VMS
  6. UNIX

Novell Netware

Netware is used by many organizations, large and small, for the provision for file, printer and network services. Netware is a self-contained operating system.

Novell has three primary network operating systems. They are:

  1. Novell Netware 4.11: A high end network operating system that includes NDS (Novell Directory Services) and SFT (System Fault tolerance) features that guard against downtime by integrating two physically separate servers.
  2. Novell intranetware: An intranet platform product that has all the features of Netware 4.11.
  3. Novell Netware 3.12: Novell traditional Netware Operating System without NDS, SFT and intranet features.
Netware 4.11 is an NSE (Network Services Engine) that provide a wide range of built in services, including directory services, security, routing, messaging, management, file and print services and TCP/IP support. It also provides a platform for expanded services such as telephony, multimedia services, internet and intranet browsing and publishing and more.

OS/2

OS/2 is IBM's 32bit desktop OS that runs on Intel processors. A server version is called OS/2 warp server.

The current version of OS/2 includes voice recognition software, internet access and peer-to-peer network support. Networking services include support for the TCP/IP protocols and internet protocols such as Telnet, Gopher and FTP. The peer-to-peer network services in OS/2 let users easily share resources such as files, printers and modems with other OS/2 users or with other network servers such as OS/2 LAN Server, Microsoft Windows for Workgroups, Microsoft Windows NT, Microsoft Wnidows 95, Microsoft LAN Manager 2.x and Artisoft LAN tastic6.0.

OS/2 also supports Novell Directory Services, which allows OS/2 users to access resources globally across an organization without having to know exactly which Netware server contains the information.The OS also includes IBM personal communications/3270, a communication package that lets users connect with IBM SNA (Systems Network Architecture) systems over TCP/IP networks.

A remote access dial up service feature lets telecommuters and mobile workers connect to the network resources at the home office networks.

Windows

  • Graphical User Interface
  • Multitasking capabilities
  • Full-featured OS for desktop users and network server application.
Windows CE

  • a "small foot print" OS
  • designed for specialized computing devices
  • handheld PCs, telephone, television sets
Windows 95

  • 32 bit desktop OS
  • scalable
  • performance improve when memory is increased
  • built in networking, fax, electronic messaging, internet accss software, mobile computing support and support for DOS applications.
Windows 98

  • Fully integrated with internet/web technologies
  • Support new multimedia hardware technologies and entertainment platforms
Windows NT Workstation 4.0

  • High end desktop OS
  • Powerful 32 bit and high end performance
  • Provide very high level of security, reliability, manageability, networking and performance
Windows NT Server 4.0

  • 32 bit modular architecture
  • Flat address space
  • Processor support
  • Preemptive multitasking
  • Multithreading
  • Network and distributed computing support
  • Internet and web support
  • Future enhancement
MVS (Multiple Virtual Storage)

  • Primary OS in 1974 for IBM mainframes 
  • Batch oriented
  • Run on IBM S/390 and ES/9000 series computer
  • Provides powerful database server using DB2 and LU 6.2
  • Sybase provide high performance static SQL support
Open VMS

  • DEC mutiuser OS that supports Digital's VAX and Alpha Series computers
  • Open software environment that includes networking support, distributed computing support and multiprocessing
  • Effective database server for client/server applications- RDB, Sybase, Oracle etc.
UNIX

  • Developed at AT & T Bell Laboratories by Ken Thompson and Dennis Ritchie.
  • UNIX comes from UNICS (Uniplexed Information and Computer System)
  • Highly Portable
  • Digital UNIX OS is a 64 bit advanced kernel architecture
  • Sun Microsystem's solaris is the most popular UNIX system.
  • Linux is another free UNIX like OS that runs on a variety of platforms
Features include
  • Multiuser system that supports networking and distributed file systems such as NFS (Network File System) and AFS (Andrew File System)
  • Interact with the OS through shell such as Bourne shell, C shell and the Korn Shell
  • Hierarchical file system
  • Unix and the TCP/IP protocols are closely linked.
UNIX provides in one package the ability to install a powerful OS on a computer that lets users share files and run programs on other user's computers through one of the most common and powerful networking protocols in the industry.

Distributed Computing Environment

Distributed computing is basically client/server computing on a wide scale. Data is not located in one server, but in many servers, and these servers might be at geographically diverse areas, connected by WAN links into enterprise networks that join the many formerly autonomous computer systems in workgroups, departments, branches and divisions of an organization.
  • Networks built with web technologies
  • Support access to data already located at diverse sites
  • Provides protection from local disasters
The components needed for the distributed environment includes
  1. The network platform that supports a variety of multivendor products and communication protocols necessary to link those systems.
  2. Application interfaces that let users make requests to servers using real-time connection oriented methods or message passing systems.
  3. A directory naming service that keeps track of resources and information and where they are located.
  4. A time service to synchronize events among servers that hold related information.
  5. DBMS that support partitioning and replication
  6. A distributed file system that operates in a peer-to-peer mode to allow users working at workstations to act as both clients and servers.
  7. Security features such as authentication and authorization.

Systems Application Architecture (SAA)

SAA is a set of application and user-interface specification for IBM Mainframe OSs. There are three main components in the architecture.
  1. Common Programming Interface (CPI): It provides a common environment across the SAA platforms for executing programs.
  2. Common User Access (CUA): Defines how information is presented to the user using an interface that is common over different platforms.
  3. Common Communication Support (CCS): Defines the interconnection of SAA systems and the protocols used for communications and data exchange.
SAA is a failed strategy because it only linked IBM systems. The open BluePrint is IBM's newest vision that encompasses support for multiple application interfaces, networking protocols and transmission methods such as frame relay and ATM.

Tuesday, 25 August 2015

Components of Client/Server Applications-The Client

Contents:

Role of the Client
Client Services
Request for services
Dynamic Data Exchange(DDE)
Object Linking and Embedding(OLE)
Common Object Request Broker Architecture(CORBA)



The client in the client/server model is the desktop workstation. Any workstation that is used by a single user is a client. The same workstation, when shared simultaneously by multiple users, is a server. The client workstation may use the DOS, Windows, Windows NT, OS/2, Mac OS, or UNIX operating system. When the client workstation is connected to a LAN, it has access to the services provided by the network operating system(NOS) in addition to those provided by the client workstation.

In a client/server application, functions are provided by a combination of resources using both the client workstation processor and the server processor. The capability to cut and paste input from several different sources is one of the most powerful aspects of a client workstation. It provides the end user with tools to create new applications.


The Role of the Client

In the client/server model, the client is primarily a consumer of services provided by one or more server processors. The client almost always provides presentation services. Current technology provides cost effective support for a graphical user interface (GUI).The windowing environment enables the client user to be involved in several simultaneous sessions. Windows NT, OS/2 and UNIX are preemptive multitasking operating systems and thus will support any number of active communications sessions.

Dynamic Data Exchange (DDE), Object Linking and Embedding (OLE) and Communicating Object Request Broker Architecture (CORBA) provides support for cut and paste operations in a windowing environment.

Client Services

The ideal client/server platform operates in an open systems environment using a requester server discipline that is based on well-defined standards. This enables multiple hardware and software platforms to interact. 

In the client/server implementation of this system, the workstation user deals on with a GUI. Thus workstation technology supports the new business paradigm of employee empowerment. It provides the windowing capabilities to simultaneously access and display all information necessary to complete the business process. The capability of powerful workstation technology to recommend and make decisions based on historical precedent can dramatically reduce cost and improve service by shortening the decision- making cycle.


Request for Service

Client request services from the attached server. Inter-process communication (IPC) is used to describe communication communication between running processes. In the client/server model, these processes might be on the same computer, across the LAN or across the WAN.

IPC is a set of techniques used by programs and process running in multitasking operating systems or between networked computers. There are two types IPCs:

  1. Local Procedure Call
  2. Remote Procedure Call
Local Procedure Call

An LPC is used in multitasking operating systems to allow concurrently running task to talk to one another. They can share memory spaces, synchronize tasks and send messages to one another.

Remote Procedure Call

An RPC is similar to the LPC but works over networks. RPCs provide the communication mechanism for a client to communicate its request for service to a back-end server.

The normal IPC mechanism in UNIX is the pipe, and the socket is the IPC mechanism that works across networks. 

  • involves peer to peer messaging
  • transparent to a user making it very easy to use
  • provides facility for the invocation and execution of  requests from processors running different operating systems and using different hardware platforms from the callers.
The most basic service provided by the network operating system (NOS) is redirection. This intercepts client operating system calls and redirects them to the server operating system.

A redirector is  a program running in a network attaches workstation that intercepts network related requests and redirects them over the network to file servers or peer workstations.

Fax/Print Services

The NOS enables the client to generate print requests even when the printer is busy. These are redirected by the NOS redirector software and managed by the print server queue manager. The client workstation can view the status of the print queues at any time. Many print servers notify the client workstation when the print request is completed. Fax services are made available in exactly the same manner as print servers, with the same requester server interface and notification made available.

Window Services

A client may have several windows open on-screen at any time. Application programs are written with no sensitivity to the windowing. Each application is written with the assumption that it has a virtual screen.

The application, using GUI software places data into the virtual screen, and the windowing services handle placement and manipulation of the application window. This greatly simplifies application development, because there is no need for the developer to build or manage the windowing services. The client user is totally in control of his or her desktop and give priority to the most important tasks at hand simply by positioning the window of interst to the "front and center". The NOS provides software on the client workstation to manage the creation of popup windows that dsplay alerts generated from remote servers. 

eg: Email receipt, Print Operation, Fax availability

Remote Boot Services

The client must be provided with sufficient software in EPROM (Erasable Programmable Read Only Memory) to start the initial program load (IPL) that is boot process. E-PROM is included in all workstations to hold the Basic Input/Output System (BIOS) services.

eg: X-terminals, Workstations

Other remote services

Applications can be invoked from the client to execute remotely on a server. Software is provided by the NOS to run on the client workstation to initiate these remote applications.

eg: Backup services

Utility Services

The operating system provides local functions such as copy, move, edit, compare and help that execute on the client workstation.

Message Services

The message services provide the buffering, scheduling and arbitration services to support this function.

Network services

The services provide support for communication protocols auch as NetBios, IPX, TCP/IP, APPC, Ethernet, Token Ring, FDDI, X.25 and SNA

Application Services

Custom application will use their own APIs embedded in an RPC to invoke specialized services from a remote server.

Database Services

Database requests are made using the SQL syntax. Because the language uses a standard form, the same application may be run on multiple platforms.

Network Management Services - ALERTS

Most network interface cards (NICs) can generate alerts to signify detected errors and perhaps to signify messages send and received. Support for a remote client may be greatly simplified if alerts are generated by the applications. This should be part of every standard SDE.

Dynamic Data Exchange (DDE)

DDE is an inter-process mechanism for exchanging messages between processes running in computer. It is implemented in Microsoft Windows product. Successor technologies include OLE (Object Linking and Embedding), COM (Component object model and DCOM (Distributed COM)

Object Linking and Embedding (OLE)

Linking  is one way of attaching information from one application to another. Link can locked, broken, or reconnected. Linked information is stored in source application.

Embedding makes the information to be embedded, a part of the destination document, thus increase its size.

OLE is designed to let users focus on data rather than on the software required to manipulate the data. A document becomes a collection of objects, rather than a file. Applications that are OLE - capable provide an API that passes the description of the object to any other application that requests the object. OLE is perhaps the most powerful way to share information between documents. In order to link an object created in another application to another file, but applications need to be running in the same environment. ie either DDE or OLE.

Advantages of OLE:

  • We can display an embedded or linked object as an icon instead of its full size.
  • We can convert an embedded or linked to a different application.
Common Object Request Broker Architecture

CORBA is a specification from the object management group (OMG), a UNIX vendor consortium. OLE focuses on data sharing between applications on a single desktop and CORBA addresses cross-platform data transfer and the process of moving objects over networks. CORBA support enables Windows and UNIX clients to share objects. A word processor operating on a Windows desktop can include graphics generated from a UNIX workstation.






Monday, 24 August 2015

Introduction to Client Server Computing


Contents:

Client/Server computing
Mainframe-centric client/server computing 
Downsizing and client/server computing
Client/server development tools.
Advantages of client/sever computing
Connectivity
Reduction in network traffic
Faster delivery of systems



Client/Server Computing

Client/Servers describes the relationship between two computer programs in which one program, the client, makes a service request from another program, the server, which fulfills the request.

Forces that drive the client/Server

The general forces that drive the move to client/server computing are:

  • The changing business environment.
  • The growing need for enterprise data access.
  • The demand for end user productivity gains based on the efficient use for data resources.
  • Technological advances that have made client/server computing practical.
  • Growing cost/performance advantages of PC based platforms.

Client/Server Architecture

The client/server architecture is based on hardware and software components that interacts to form a system. This system includes three main components.
  1. Clients
  2. Servers
  3. Communication Middle ware
The client is any computer process that requests services from the server. The client is also known as the front-end application, reflecting the fact that the end user usually interacts with the client process.

The server is any computer process providing services to the clients. The server is also known as the back-end application, reflecting the fact that the server process provides the background services for the client process.

Communication middle ware is any computer process through which clients and servers communicate. The communication middle ware, also known as middle ware or the communication layers, is made up of several layers of software that aid the transmission of data and control information between clients and servers.

The features of client server computing includes:
  • Distributed processing environment.
  • Distributed database environment.
  • Comprehensive communications networks.
  • Open Systems for information sharing.
  • Friendly User Interfaces.
  • Standardized communications protocols.
  • Shared responsibility.
  • Client processes request services.
  • Server processes provide services.
  • Client and servers can negotiate the terms and conditions of service.
Mainframe-centric client/server architecture

Three approaches to organization of information sharing are:
  1. Mainframe-centric
  2. PC Server centric
  3. Client Server
Mainframe centric:
  • Use terminal emulators or hardwired terminals.
  • Non GUI proprietary interface.
  • Asynchronous.
  • Tight administrative control.
The features are:
  • Uses the presentation capabilities of the workstation to front-end existing application.
  • The data is displayed or entered through the use of pull down lists, scrollable fields, check boxes and buttons.
  • The user interface is easy to use and information is presented more clearly.

Downsizing and client/server computing

Downsizing means replacing expensive mainframe computers with more cost effective networks of personal computer that achieve the same or even better results.

The other potential benefits of downsizing are:
  • improved response time
  • decreased system development time
  • increased flexibility
  • greater control
  • implementation of strategic changes in workflow processes. 
Client/Server computing is open computing. Mix and match is the rule. Development tools and developmental environments must be created with both openness and standards in mind.

Client/Server development tools

The client/server development tools include:
  • GUI based development.
  • A GUI builder that supports multiple interfaces.
  • Object Oriented development with a central repository for data and applications.
  • Support for multiple database.
  • Data access regardless of data model.
  • Complete SDLC (System development Life Cycle) support from planning to implementation and maintenance.
  • Team development support.
  • Support for third party development tools.
  • Prototyping and Rapid Application development(RAD) capabilities.
  • Support for multiple platforms.
  • Support for middle ware protocols.
  • Multiple network protocol support.
The fundamental ideas underlying OOT are:
  1. Abstraction
  2. Objects
  3. Encapsulation
  4. Classes and Instance
  5. Inheritance
  6. Message
  7. Methods

Abstraction
  • One of the forms of abstraction is Data Abstraction.
  • Abstraction is "to represent the essential feature without representing the background details.
  • Abstraction lets you focus on what the object does instead of how it does it.
  • Abstraction provides you a generalized view of your classes or object by providing relevant information.
  • Abstraction is the process of hiding the working style of an object and showing the information of an object in understandable manner.

Objects
  • An object is anything, real or abstract, about which we store data and those methods that manipulate the data.
  • It is a software package which contains related data and procedures.
  • An object is a category of object.
  • An object is an instance of object type.

Encapsulation

Packaging data and methods together is called encapsulation. Its advantages are:
  • Unnecessary details are hidden.
  • Unintentional data modification is avoided (that is) provides security and reliability.
  • Presents interference with the internals and also hides the complexity of the components. Thus, encapsulation is important because it separates how an object behaves, from how it is implemented.

Classes

A class is an implementation of an object type and is defined by a class description that defines both attributes and messages for an object in that class.
  • A class is template that helps us to create objects.
  • Classes have names that indicates the kind of object that represent.
  • Classes may be arranged in hierarchy with subclass representing more specific kinds of objects than their super class.

Inheritance

Inheritance allows the developer to create a new class for object from an existing one by inheriting the behavior and then modifying or adding to it. It provides an ability to create classes that will automatically model themselves on other classes. Sometimes a class inherits properties of more than one super class, then it is called multiple inheritance.

Its advantages are:

  • Reusability code
  • Avoid duplication of code
  • Reduce cost of maintenance

Message

  • A specific symbol, identifier or keyword with or without parameters that represents an action to be taken by an object.
  • Only way to communicate with an object is through message passing.
  • An object knows what another intrinsic property/capability object has, but not how it does it.
  • A message is not restricted to one recipient object but to multiple object.

Methods

They are often called selectors since when they are called by name they allow the system to select which code is to be executed.
  • Methods are description of operations
  • Methods appears as a component of object
  • There is a 1-1 correspondence between messages and methods that are executed when a message is received by a given object.
  • The same message might result in different methods.

Advantages of client/server computing

  • Enhanced data sharing
  • Integrated Services
  • Sharing Resources among diverse platforms
  • Data interchangeability and interoperability
  • Centralized Management
  • Helps organizations downsize from mainframes and minicomputers to networks that provide an enterprise wide data communication platform.
  • Multiple system can get involved in parallel processing, in which they cooperate in the completion of a processing task.
  • Data is stored close to servers that work on that data, minimizing the amount  of information sent over the network.
  • A large percentage of information is cached once into the server's memory rather than the memory of every workstation that needs it.
  • Network traffic is reduced because the server only gives the client the information requested.
  • Larger server systems can offload applications that are better handled by personal workstations.
  • Data is safe and secure in one location.
  • With centralized data, administers can apply security controls to restrict data access and use tracking mechanisms to monitor data access.

Connectivity

In 1981, with the beginning of IBM PC, users are provided to do spreadsheets, word processing and basic database services for personal data. After three years, there is need for high quality printers, backup tapes, high capacity hard disks and software products which is used in desktop's with high investment. LAN solved this problem. Novell was a popular LAN environment.

Workstations emulate corporate systems

In all large organizations, desktop workstations provide personal productivity and some work group functions, but host services provide other business functions. The lack of desktop made the addition of terminal emulation services to the workstation. This emulation connects the workstation directly to the corporate system. The connection was made directly to the host server or controller.

Another step in connectivity is the implementation of specialized servers to provide database and communications services. The LAN cabling provides the necessary physical connection, and the communications server provides the necessary controller services.

Full Fledged client/server applications:
With the adding of communication and database servers, an organization is ready for the next step up from presentation services-only client/server applications to full-fledged client/server applications. These new applications are built on the architecture defined as part of the system development environment.

User Productivity

The ease of use promoted by client/server computing is obtained through the use of windowing environment's such as DOS-based Microsoft Windows, IBM's OS/2 based presentation manager, and UNIX based Motif and Openlook. These graphical user interfaces are mouse driven, take advantage of color and present groups of data in boxes, tasks in windows and choices in menus of icons.

Ways to improve performance

Database and communication processing are frequently offloaded to a faster server processor. The advantage of offloading is realized when the processing power of the server is significantly greater than that of the client workstation.

Database searches, extensive calculations, and stored procedure execution can be performed in parallel by the server while the client workstation deals directly with the current user needs.

As workstation users become more sophisticated, the capability to be simultaneously involved in multiple processes becomes attractive. Independent tasks can be activated to manage communications processes such as electronic mail, electronic feeds from news media and stock exchange and remote data collection.

Reduction in network traffic

Excessive network traffic is  one of the most common cause of poor system performance.

Minimize network requests

The SQL syntax is very powerful and when combined with server trigger logic enables all selection and rejection logic to execute on the server. This approach ensures the amount of traffic between the server and client on the LAN. The performance advantages available from the client/server model of SQL services can be overcome.

Online Transaction Processing (OLTP) in the client/server model requires products that use views, triggers and stored procedures. Products such as Sybase, Ingress, Oracle and Unify use these facilities at the host server to perform the join, apply edit logic prior to updates, calculate virtual columns, or perform complex calculations. The use of OLTP reduce the traffic between client and server and use the powerful CPU capabilities of the server. The use of application and database servers to provide the answer set required for client manipulation will reduce network traffic.

Faster delivery of systems

The workstation environment, powerful multitasking CPU availability, single-user databases and integrated testing tools all combine to provide the developer with considerable productivity improvements in a lower cost environment. Client/server application development shows considerable productivity improvement when the software is implemented within an SDE.

Reuse of the server application functionality, data base and network services is transparent and almost automatic. Because the applications are built with little regard to standard front-end functionality, many features are part of the standard GUI and are automatically reused.