Embed
Email

dbms

Document Sample
dbms
Submitted By :Devpriya (4643) Monica Xess (4645) Sakshi Jain ( ) Chetan



Sno. 1. 2. 3. 4. 5. 6. 7. 8.



9. 10. 11.



Topic Introduction Client Server Models in Business Environment Tiers Of An Client Server Architecture N-Tier Architecture Ecommerce System – Application Servers Models Of Client-Server Application Advantages Of Client Server Network Architecture System Disadvantages Of Client Server Network Architecture System The Importance Of Flexibility In A Changing World Characteristic Features and Benefits References



Page number 4–5 6 – 11 12 – 19 20 – 21 22 – 23 24 – 27 28 29 30 – 31 32 – 33 34



2



We would like to express our gratitude toward our Database Management System teacher Mr. Deepak Kukreja, without whose cooperation this project would not have been possible. He is our mentor and has helped us throughout the process of this project.



3



Client/Server

Definition: A client is defined as a requester of services and a server is defined as the provider of services. A single machine can be both a client and a server depending on the software configuration. Characteristics of a client

    



Initiates requests Waits for replies Receives replies Usually connects to a small number of servers at one time Typically interacts directly with end-users using a graphical user interface



Characteristics of a server

  



Never initiates requests or activities Waits for and replies to requests from connected clients A server can remotely install/uninstall applications and transfer data to the intended clients



Client/server 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. Although the client/server idea can be used by programs within a single computer, it is a more important idea in a network. In a network, the client/server model provides a convenient way to interconnect programs that are distributed efficiently across different locations. Computer transactions using the client/server model are very common. Numerous applications run in a client/server environment, this means that client computers contact a server, generally a very powerful computer in terms of input/output, which provides services to the client computers. These services are programmes which provide data



4



such as the time, files, a connection, etc. The services are used by client programs which run on client computers. For example, to check your bank account from your computer, a client program in your computer forwards your request to a server program at the bank. That program may in turn forward the request to its own client program that sends a request to a database server at another bank computer to retrieve your account balance. The balance is returned back to the bank data client, which in turn serves it back to the client in your personal computer, which displays the information for you.



Client/Server system operation

A client/server system operates as outlined in the following diagram:



 



The client sends a request to the for a particular service running on the server. The server receives the request and responds. In the usual client/server model, one server is activated and awaits client requests. Typically, multiple client programs share the services of a common server program. Both client programs and server programs are often part of a larger program or application.



5



The Organization of Client Server Computing Client-server computing is organized to support accessibility and integration. Through networking each client or workstation is connected to the host or server. This allows clients to access software and hardware applications as needed. One of the primary benefits of this is the integration of software or hardware products from different vendors. These products, contained and accessible on the server, can work together to produce the business benefits of client-server technology such as cost reduction, increased flexibility and productivity, and more efficient utilization of resources. Client-server technology has been developed from a variety of factors. The increased cost of maintaining mainframe and midrange host machines are combined with the proliferation and increasing dominance of the micro- or personal computer. This is a part of technological evolution that made clientserver technology the dominant paradigm for businesses in the 1990‟s. Another important factor in client/server development was the increased reliability of Local Area Networks or LANs that made networking more efficient and dependable. The basic breakdown of this technology takes place through the communication between the obvious- client or desktop computers and server or host computers. The client side of this equation deals with the front-end of business requests, and the server deals with the back-end or execution of said requests. The front-end can be described as the elements users most interact with. For example, the client machines work through GUIs (Graphical User Interfaces), which are much more user friendly, allowing for increased and easier interaction between humans and computers through the use of graphics (icons and menus) rather than command line interfaces, which use only text. Command line interfaces are out of date and require specific user knowledge. The client computer, through networking, can transmit requests to programs hosted on the server and validate user data. The server, on the other, executes the client-requested service by retrieving



6



information from a database. It updates the database and ensures data integrity. It is also responsible for sending responses to the client.



Types of Servers Uses in a Business Environment Client-server computing can be broken down structurally in client computers, server computers, and the middleware that facilitates communication between the two. The client-side deals with the front-end and the user-interface of the application and the server deals with the back end, the processing of requests and services. However, there are several types of servers. The simplest incarnation is the file server, where clients request files over a network from a centralized computer (the server). However, files sometimes contain a lot of extraneous data and this process can be cumbersome for a network because of the amount of this data. It requires a lot of bandwidth and can slow a network down. More advanced servers include database servers, application servers, and transaction servers. Database servers resemble file servers, but are dedicated to database functions and not merely a storage facility, like file servers often are. They are computers existing in a LAN that are devoted to storing and retrieving data. They contain both the database management system (DBMS) and the databases that clients need to answer requests. During a transaction, the client makes a request of the database. The server processes this request by searching the database, selecting the records that answer the specific request, and then sending those records back to the client. Originally, application servers were the computers that performed data processing in a networked environment. Within a client-server model, the client/user‟s machine provided the interface with which to define and send requests and the server processed these requests and sent back the appropriate response. However, this simple exchange was complicated by the explosion of the Internet and changed the definition of application servers. Now, application servers host a variety of languages used to perform services through the Internet through a web server that processes HTTP requests. These languages program database queries and facilitate general business processing. Examples of some of these scripts or applications include JavaScript, JSPs (JavaScript Pages) and EJBs (Enterprise Java Beans). These scripts then communicate with web server applications such as CGI (Common Gateway Interface) scripts, ASPs (Active Server Pages) and ISAPI (Internet Server Application Programming Interfaces) to retrieve



7



and respond to requests with accessible, interactive, and relevant data through client‟s web browsers. Transaction servers refer to the Microsoft Transaction Server (MTS) and are also referred to as “Viper”. It is a server program that runs through the Internet or on a network server that runs on Windows NT. Windows NT is a collection of operating systems created by Microsoft in 1993. It was designed as a complement to Windows to provide a multi-user, multiprocessing, language-based, processor-independent operating system. Newer versions based on the Windows NT system are Windows Server 2003 and currently, Windows Vista. Transaction servers manage applications and transaction requests from clients. Transaction requests encompass both the request for a service and any permanent changes the response to this request may produce in a database. Therefore, in addition to servicing requests, these servers insure database integrity. Transaction servers negotiate requests from clients to unfamiliar databases and forward these requests to database servers when necessary. They also manage connection to servers, Ensure transaction integrity and provide security in requests. Middleware One of the primary technological features of client-server technology is middleware. Middleware is a layer of programming or software that facilitates enterprise application integration (EAI) by providing a translation/conversion layer or messaging service. This allows different applications to communicate with each other. These applications can run on different platforms or be produced by different vendors, but middleware allows them to function together and communicate with each other. Middleware requires a Network Operating System (NOS) to perform its function. NOSs execute the messaging, routing and distribution of requests over a network. To accomplish this, communication protocols must be set up to provide the set of standardized rules for representing data, authenticating requests and detecting request errors. Other protocols, such as transport protocols and client-server protocols, are also established in middleware. Transport protocols establish connections and ensure that data has been received safely. Client-server protocol determines how requests are made and how responses are structured to ensure intelligibility.



8



Database Technologies One of the many tasks that DBAs must handle is choosing the correct DBMS to use for each new application being developed. There are many aspects to selecting the proper type of DBMS. There are different types of each DBMS for different architectures and purposes. The supporting architecture for the DBMS environment is very critical to the success of the database applications being built. One wrong choice or poorly implemented component of the overall architecture can cause poor performance, downtime, or unstable applications. When mainframes dominated enterprise computing, the DBMS architecture was a simpler concern. Everything ran on the mainframe and that was that. But today the IT infrastructure is distributed and heterogeneous. Even for a mainframe DBMS implementation, the overall architecture will likely consist of multiple platforms and interoperating pieces of system software. The final architecture must be based on the business needs of the organization. It should not be made by a single person or group, but by a team consisting of business experts and IT experts. Business experts should include representatives from various lines of business as well as accounting and legal for software contract issues. IT experts should include database resource management representatives including data administrators, database administrators, and system administrators. But the selection process should also include other IT professionals such as members of the networking group, operating system experts, operations control personnel, programming experts, and any other interested parties (middleware experts, message queuing experts, etc.). Furthermore, you need to be sure that the DBMS you select is appropriate for the nature and type of processing you plan to implement. There are basically four levels of DBMS architecture that can be selected: enterprise, departmental, personal, and mobile. Database Architecture An enterprise DBMS is designed for scalability and high performance. It must be capable of supporting very large databases, a large number of concurrent users, and multiple types of applications. The enterprise DBMS will run on a large-scale machine, typically a mainframe or a high-end UNIX, Linux, or Windows NT machine. Furthermore, an enterprise DBMS offers all of the “bells and whistles” available from the DBMS vendor.



9



Multi-processor support, support for parallel queries, clustering, and other advanced DBMS features will be core components of an enterprise DBMS. A departmental DBMS, sometimes referred to as a workgroup DBMS, supports small to medium sized workgroups within an organization, and typically runs on a Unix, Linux, or Windows 2000 (or NT) server. The dividing line between a departmental database server and an enterprise database server is gray. Hardware and software upgrades often can allow a departmental DBMS to tackle tasks that previously could only be performed by an enterprise DBMS. The steadily falling cost of departmental hardware and software components further contributes to lowering TCO and helping to enable a workgroup environment to scale up to serve the enterprise. A personal DBMS is designed to be used by a single user, typically on a low- to medium-powered PC platform. Lotus Approach, Microsoft Access and dBase are examples of personal database software. Of course, the major DBMS vendors also market personal versions of their more high-powered solutions, Personal Oracle and DB2 Everyplace for example. Sometimes the low cost of a personal DBMS causes misguided attempts to choose a personal DBMS for a departmental or enterprise solution. A personal DBMS product is suited only for small scale projects and should not be used to deploy multi-user applications. The mobile DBMS is a specialized version of a departmental or enterprise DBMS. It is designed to be used by remote users who are not usually connected to the network. The mobile DBMS enables local database access and modification on a laptop or handheld device, such as a Palm PDA or PocketPC. Furthermore, the mobile DBMS provides a mechanism for synchronizing remote database changes to a centralized, enterprise or departmental database server. A DBMS designed for one type of processing will likely be ill-suited for other uses. For example, a personal DBMS is not designed for multiple users and an enterprise DBMS generally will be too complex for single users. Sometimes, you may need to choose multiple DBMS types – that is, a DBMS for each level, with usage to be determined based on the needs of each development project.



10



If your organization requires DBMS solutions at different levels, whenever possible favor the selection of a group of DBMS solutions from the same vendor. Doing so will minimize differences in access, development, and administration. For example, favor Personal Oracle for your single user DBMS needs if your organization uses Oracle as the enterprise DBMS of choice.



11



The Tier Definition: A tier is a distinct part of hardware or software. The most common tier systems are:  Single Tier  Two Tier  Three Tier Each is defined as follows:



Single Tier

Definition: A single computer that contains a database and a front-end to access the database. Generally this type of system is found in small businesses. There is one computer which stores all of the company‟s data on a single database. The interface used to interact with the database may be part of the database or another program which ties into the database itself. Advantages A single-tier system requires only one stand-alone computer. It also requires only one installation of proprietary software. This makes it the most costeffective system available. Disadvantages:



12



May be used by only one user at a time. A single tier system is impractical for an organization which requires two or more users to interact with the organizational data store at the same time.



Two Tier Systems

Definition: A two tier system consists of a client and a server. In a two tier system, the database is stored on the server, and the interface used to access the database is installed on the client. The user system interface is usually located in the user's desktop environment and the database management services are usually in a server that is a more powerful machine that services many clients. Processing management is split between the user systems.



Interface environment and the database management server environment. The database management server provides stored procedures and triggers. Purpose and Origin Two tier software architectures were developed in the 1980s from the file server software architecture design. The two tier architecture is intended to improve usability by supporting a forms-based, user-friendly interface. The two tier architecture improves scalability by accommodating up to 100 users (file server architectures only accommodate a dozen users), and improves flexibility by allowing data to be shared, usually within a homogeneous



13



environment The two tier architecture requires minimal operator intervention, and is frequently used in non-complex, non-time critical information processing systems. Technical Details Two tier architectures consist of three components distributed in two layers: client (requester of services) and server (provider of services). The three components are 1. User System Interface (such as session, text input, dialog, and display management services) 2. Processing Management (such as process development, process enactment, process monitoring, and process resource services) 3. Database Management (such as data and file services) The two tier design allocates the user system interface exclusively to the client. It places database management on the server and splits the processing management between client and server, creating two layers. Usage Considerations Two tier software architectures are used extensively in non-time critical information processing where management and operations of the system are not complex. This design is used frequently in decision support systems where the transaction load is light. Two tier software architectures require minimal operator intervention. The two tier architecture works well in relatively homogeneous environments with processing rules (business rules) that do not change very often and when workgroup size is expected to be fewer than 100 users, such as in small businesses. Advantages: Since processing was shared between the client and server, more users could interact with such a system. Disadvantages: When the number of users exceeds 100, performance begins to deteriorate. This limitation is a result of the server maintaining a connection via "keepalive" messages with each client, even when no work is being done. A second limitation of the two tier architecture is that implementation of processing management services using vendor proprietary database procedures restricts flexibility and choice of DBMS for applications. Finally,



14



current implementations of the two tier architecture provide limited flexibility in moving (repartitioning) program functionality from one server to another without manually regenerating procedural code.



Three Tier Architecture



Purpose and Origin The three tier software architecture (a.k.a. three layer architectures) 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



15



Technical Details A three tier distributed client/server architecture includes a user system interface top tier where user services (such as session, text input, dialog, and display management) reside. The third tier provides database management functionality and is dedicated to data and file services that can be optimized without using any proprietary database management system languages. The data management component ensures that the data is consistent throughout the distributed environment through the use of features such as data locking, consistency, and replication. It should be noted that connectivity between tiers can be dynamically changed depending upon the user's request for data and services. The middle tier provides process management services (such as process development, process enactment, process monitoring, and process resourcing) that are shared by multiple applications. The middle tier server (also referred to as the application server) improves performance, flexibility, maintainability, reusability, and scalability by centralizing process logic. Centralized process logic makes administration and change management easier by localizing system functionality so that changes must only be written once and placed on the middle tier server to be available throughout the systems. Usage Considerations The middle tier manages distributed database integrity by the two phase commit process. It provides access to resources based on names instead of locations, and thereby improves scalability and flexibility as system components are added or move. Sometimes, the middle tier is divided in two or more unit with different functions, in these cases the architecture is often referred as multi layer. This is the case, for example, of some Internet applications. These applications typically have light clients written in HTML and application servers written in C++ or Java, the gap between these two layers is too big to link them



16



together. Instead, there is an intermediate layer (web server) implemented in a scripting language. This layer receives requests from the Internet clients and generates html using the services provided by the business layer. This additional layer provides further isolation between the application layout and the application logic. It should be noted that recently, mainframes have been combined as servers in distributed architectures to provide massive storage and improve security. The addition of a middle tier between the user system interface client environment and the database management server environment. There are a variety of ways of implementing this middle tier, such as transaction processing monitors, message servers, or application servers. The middle tier can perform queuing, application execution, and database staging. Example: If the middle tier provides queuing, the client can deliver its request to the middle layer and disengage because the middle tier will access the data and return the answer to the client. In addition the middle layer adds scheduling and prioritization for work in progress.



Types of Three Tier Architecture On of the most basic ways of configuring the middle layer in three tiers architecture is through TP (transaction process) monitoring. Here, the middle layer takes care of processing through a system of prioritizing messages, queuing messages, scheduling transactions. This allows the user to connect to the TP monitor and then work on other things while the TP monitor manages the transaction until it is complete. TP monitoring allows multiple DBMSs to be updated in a single transaction. It also provides connectivity to a variety of data sources and can attach priorities to transactions. Messaging servers also provide a middle layer in three tier client-server architectures. They also prioritize messages. The messages contain priority information, addresses and identification numbers to locate requested data on relational DBMSs and other data sources. However, in this context, the intelligent information is found in the content of the message and headings. In TP monitors, intelligence is located in the monitor itself.



17



In three tier application server architecture, most application functions run on a shared host. This makes them more secure and scalable since it lessens the burden of software placed on the client-side. Application servers are also less expensive to install since it is installed on a single server and not on every desktop in the network. ORB (Object Request Broker) architecture in a three tiered model increases interoperability. Technologies like CORBA (Common Object Request Broker Architecture) and COM/DCOM (Common Object Model/Distributed Common Object Model) support distributed objects and allow requests to be processed across platforms and across programming languages. Finally, distributed/collaborative enterprise architecture is based on ORB, but advances CORBA. Developed in 1993, it shares and reuses not just objects, but also business models on an enterprise-wide scale. Enterprise, here, refers to as an organization‟s multiple business systems that must all work together. Distributed/collaborative enterprise architecture increases flexibility and efficiency operationally. The limitations of this model include a lack of commercial object-oriented analysis and design tools to work with applications. Advantages: The three tier client/server architecture has been shown to improve performance for groups with a large number of users (in the thousands) and improves flexibility when compared to the two tier approach. Modules onto different computers in some three tier architectures. Disadvantages: The three tier architectures development environment is reportedly more difficult to use than the visually-oriented development of two tier systems.



Three tier VS Multi Tier

These three tiers have proved more successful than other multi-tier schemes for a couple of reasons:



18



Matching Skillets: It turns out that the skills of the various people that might work on building an application tend to correspond neatly with the three tiers. The Presentation tier requires people with some level of either userinterface/ergonomics experience or artistic sensibilities, or the combination of the two (often found in web designers). The Business Logic tier calls upon people very familiar with procedural language techniques and a considerable investment in a particular set of procedural programming languages (e.g. C/C++, Java, VB, PHP). Finally, the Data tier requires intimate knowledge of relational database theory and the SQL DML language. It's next to impossible to find a single person with talent and experience in all three areas, and reasonably difficult to find people with skills in two. The separation of the three layers means that people with just one of these skillets can work on the project side by side with those possessing the other skills, lessening the "too many cooks" effect. Multi-Server Scalability: Just as people become "optimized" for a certain task through learning and experience, computer systems can also be optimized for each of the three tiers. While it's possible to run all three logical tiers on a single server (as is done on the course server), as a system grows to accommodate greater and greater numbers of users (a problem typical of web applications), a single server will no longer suffice. It turns out that the processing needs of the three tiers are distinct, and so a physical arrangement often consists of many Presentation tier servers (a.k.a. web servers), a few Business Logic tier servers (a.k.a. application servers), and usually just one, or at most a handful, of Data tier servers (a.k.a. RDBMS servers). RDBMS servers consume every resource a hardware platform can provide: CPU, memory, disk, and gobs of each. RDBMS's also often have innumerable tuning parameters. An application server is typically only CPU- and memorybound, requiring very little disk space. Finally, a web server (a specialized type of file server) is mostly reliant on memory and disk.



19



In 3-tier architecture, each server (tier 2 and 3) performs a specialized task (a service). A server can therefore use services from other servers in order to provide its own service. As a result, 3-tier architecture is potentially an ntiered architecture



Thus came the notion of n-tier architecture. To turn three-tier architecture into an n-tier system, the middle tier can be allowed to have multiple application objects rather than a single application. Each of these application



20



objects must have a well-defined interface which allows them to contact and communication with one another. An interface is actually brings an idea of contract. That is, each object states through its interface that it will accept certain parameters and return a specific set of results. An application object uses their interfaces to do business processing. With an n-tier architecture, one can have multiple applications using a common set of business objects across an organization. This promotes the standardization of business practices by creating a single set of business functions for the entire organization to access. If a particular business rule changes, then changes have to be made to only the business object and if need, to its interface also.



21



Definition: Application servers share business logic, computations, and a data retrieval engine on the server. There is now processing required on the client. Advantages: With less software on the client there is less security to worry about, applications are more scalable, and support and installation costs are less on a single server than maintaining each on a desktop client. The application server design should be used when security, scalability, and cost are major considerations. Multi-Tier Application Design An age-old software engineering principle explains that by logically partitioning a piece of software into independent layers of responsibility, one can produce programs that have fewer defects, are better at documenting themselves, can be developed concurrently by may programmers with specific skill sets, and are more maintainable than the alternative of a monolithic hunk of code. Examples of these layers, or tiers, are common: the kernel (privileged CPU mode) and other applications (user mode); the seven ISO/OSI network model layers (or the redivided four used by the Internet); and even the database "onion" containing core, management system, query engine, procedural language engine, and connection interface. These tiers are entirely logical in nature. Their physical implementation may vary considerably: everything compiled into one EXE, a single tier spread across multiple statically- or dynamically-linked libraries, tiers divided amongst separate networked computers, and so forth. Each such tier is one further level of abstraction from the raw data of the application (the "lowest" tier). The "highest" tier is therefore the most "abstract" and also the best candidate for communicating directly with the end user.



22



Individual tiers are designed to be a self-contained as possible, exposing only a well-defined interface (e.g. function names, usually called an Application Programming Interface, or API) that another tier may use. In this respect, tiers are analogous to the classes of Object-Oriented Programming. In theory, a new tier with a compatible interface could easily be substituted for another, but in practice this can't always be done without a bit of fuss. Tiers only communicate in this downward direction (that is, a lower-level tier does not call a function in a higher-level tier), and a tier may only call into the tier directly beneath it (that is, tiers are not bypassed). One might also say that a higher-level tier is a "consumer" of the services afforded by the lower-level tier, the "provider". Each tier does introduce a small performance penalty (typically, stack frame overhead for the function calls) but this is usually not significant, and is outweighed by the design advantages of a multi-tier design. If performance does become an issue, some of the rules above may be broken, with a consequent loss of design consistency.



23



When client-server technology was being developed there were 4 dominant models: SQL (Structured Query Language) databases; Transaction Processing (TP) monitors; Groupware; and distributed objects. SQL is the standardized query language used to make requests from databases. SQL supports distributed databases, which are different databases spread across several computer systems. This allows many users/employees to access databases that are networked together through LANs (Local Area Networks) simultaneously, insuring that all the data available throughout an organization is consistent and up-to-date. In addition to just manipulating data through simple commands/requests, SQL must also manage the functions that define these command/requests. This is done through stored procedures. Stored procedures are a collection of commands and logical procedures that are stored on a server-side database. These procedures protect data integrity, conduct system maintenance, and execute the server‟s application logic. Previously, SQLs were not standardized for database management, data replication, and user-defined data types. They were also not standardized in relation to format and protocols over networks. This made them costly and difficult to maintain due to the level of complexity in the using the language to write commands. It is important to remember that SQL is a declarative programming language, which describes a problem rather than solving it. Data is retrieved by giving criteria rather than employing commands on „how‟ to find the requested data. It is a declarative language rather than a function one. However, SQLs are popular because it is easy to build client-server applications in a single-vendor or single-server environment. (However, we know that this is increasingly not the case for larger businesses who mix-



24



and-match products from different vendors.) GUI (graphic user interface) tools also make it easy to build SQL applications. Transaction Processing monitors or TP monitors are another popular model for building client-server environments. TP monitors were programs developed to protect against system crashes when too many clients make too many requests from a single server. Originally, TP monitors were known as teleprocessing monitors and were used for multiplexing, allowing several clients to connect and work through one server. However, it developed into a program that breaks down other applications into pieces of code called transactions. Each transaction consists of a set of actions that comply with four properties known as ACID. Therefore, the actions within a transaction must be Atomic, Consistent, Isolated, and Durable. TP monitors are not necessary in single vendor/single server environments. They work best in three-tier architectures that employ load balancing. These three tier architectures are the user interface (UI), the functional logic for processing requests, and data storage/access. They are created on different platforms as independent modules and are then linked according to the business model‟s needs. Load balancing, another feature of TP monitors, is the even distribution of communications and processing over a network so that no device becomes overwhelmed. When one server reaches its threshold, requests are sent to other available servers. TP monitors ensure this process. Middleware employed by TP monitors is usually a transactional RPC (Remote Procedure Call) or peer-to-peer middleware. Peer-to-peer middleware insures that all users have access to the same data, execute the same procedures, and initiate communication. Groupware uses five technologies to allow users to collect unstructured data into a set of documents. This is done by having multimedia management, email, work-flow management, conferencing, and scheduling work together collaboratively. E-mail is its primary middleware. However, its greatest contribution comes from work-flow management. Work-flow is the process by which data gets sent to the appropriate parties that can act on it to move the work forward. It simulates real-life worker collaboration electronically, reducing the amount of manpower required to complete a business task. The distributed object client-server model is the most flexible and is currently the vanguard of client-server architecture. Distributed objects are



25



software modules that exist on multiple computer systems but are designed to work together. Objects are the individual units of data storage that are acted upon in object-oriented programming. Unlike other forms of programming that are mostly a collection of functions, objectoriented programming allows objects to receive and send messages and process data within the object. One of the factors that make distributed object models so flexible is their standardization. For example, OMG (Object Management Group) was one of the first to contribute to standardization by creating CORBA (Common Object Request Broker Architecture). CORBA allows objects or pieces of programs to communicate with each other regardless of operating systems or what programming language they were written in.



26



















 



  



In most cases, a client-server architecture enables the roles and responsibilities of a computing system to be distributed among several independent computers that are known to each other only through a network. This creates an additional advantage to this architecture: greater ease of maintenance. For example, it is possible to replace, repair, upgrade, or even relocate a server while its clients remain both unaware and unaffected by that change. This independence from change is also referred to as encapsulation. All the data is stored on the servers, which generally have far greater security controls than most clients. Servers can better control access and resources, to guarantee that only those clients with the appropriate permissions may access and change data. Since data storage is centralized, updates to that data are far easier to administer than what would be possible under a P2P paradigm. Under a P2P architecture, data updates may need to be distributed and applied to each "peer" in the network, which is both time-consuming and error-prone, as there can be thousands or even millions of peers. Many mature client-server technologies are already available which were designed to ensure security, 'friendliness' of the user interface, and ease of use. It functions with multiple different clients of different capabilities. Centralized resources: given that the server is the centre of the network, it can manage resources that are common to all users, for example: a central database would be used to avoid problems caused by redundant and inconsistent data Improved security: as the number of entry points giving access to data is not so important Server level administration: as clients do not play a major role in this model, they require less administration Scalable network: it is possible to remove or add clients without affecting the operation of the network and without the need for major modification.



27











 



Traffic congestion on the network has been an issue since the inception of the client-server paradigm. As the number of simultaneous client requests to a given server increases, the server can become severely overloaded. Contrast that to a P2P network, where its bandwidth actually increases as more nodes are added, since the P2P network's overall bandwidth can be roughly computed as the sum of the bandwidths of every node in that network. The client-server paradigm lacks the robustness of a good P2P network. Under client-server, should a critical server fail, clients‟ requests cannot be fulfilled. In P2P networks, resources are usually distributed among many nodes. Even if one or more nodes depart and abandon a downloading file, for example, the remaining nodes should still have the data needed to complete the download. Increased cost: due to the technical complexity of the server A weak link: the server is the only weak ling in the client/server network, given that the entire network is built around it! Fortunately, the server is highly fault tolerant (primarily thanks to the RAID system).



28



Client-server software architecture is versatile and flexible in today‟s fastchanging IT landscape. It is modular in structure and relies on messaging services for communication between components. They were designed to improve flexibility, usability, scalability, and interoperability. Software flexibility implies the ability for a program to change easily according to different users and different system requirements. Usability refers to human-computer interaction and the ability of a software application to accomplish a user‟s goal. Some defining features are ease-ofuse and a clear, logical process of evolution towards a goal. Scalability refers to a product‟s (be it hardware or software) ability to change in size or volume gracefully to meet user requests. Interoperability is the ability of software or hardware to function with other systems without requiring human intervention and manpower. Client-server software architecture aims to increase productivity through improvements in all of these categories. Client-server architecture developed as a response to the limitations of filesharing architectures, which require tons of bandwidth and can often stall or jam a network causing it to crash. They require low shared usage and low volume of data to be transferred. In client-server architecture, the database server replaced the file server. Relational data base management systems (DBMSs) answered user queries directly. Since only specific queries were being answered, only that data was transferred instead of entire files that slow down networks. It also improved consistency in data between users, since all users had access to the same updated information. The primary languages for structuring queries are SQL and RCP. SQL stand for „standard query language‟. SQL uses a GUI (graphic user interface) to make requests form databases. The newest ANSI (American National Standards Institute) standard is SAG SQL. However, there are several recent versions of SQLs for sale from a variety of major vendors from Microsoft to Oracle. RPC is „remote procedure call‟. RPC is protocol or set of rules structuring an intelligible request that is used by one program to request data or services from another program on another



29



computer in another network. Full knowledge of network details is unnecessary. It allows an application to be distributed on and accessible from different platforms. Client and server stubs are created respectively so each party has the section it needs for the remote function it requests. Stubs are called to work when a remote function is required by the application and communication between client and server is synchronous. RPCs make it easier to design a client-server software architecture that employs multiple programs distributed over a network.



30



Other characteristics distinguish client-server computing from mainframe computing. For example, their power lies in networking small, but powerful machines. These networks rely on the desktop platform to access local processing power. Data is readily accessible to staff. This quickens response time and flexibility. Also, if one machine is compromised or shuts down, the organization can still function. Open systems allow business to configure their hardware and software to their specific needs, whether or not these products come from different vendors. Businesses can pick and choose from hardware and software products and create the most efficient combination according to their needs. This mix-and-matching of hardware and software products necessarily makes client-server technology modular. Modularity increases business flexibility and competitiveness by allowing for the removal or addition of hardware or applications as the company grows or upgrades it practices. Client-server models of computing lead to a reduction in business costs and a more efficient use of resources. Finally, client-server technology increases a company‟s complexity. Since hardware platforms and software packages come from different vendors, this requires special attention. A company‟s IS (Information System) team must be well-versed in the company‟s hardware, software and networks as well as how those components are connected to and interact with each other. IS employees must also be able to maintain the client-server model within a geographically dispersed environment. Therefore, knowledge of remote processing is also required. Extra training may be needed to address this increased level of technological complexity. However, a sensible approach to introducing this complexity can temper or evenly distribute these costs over time. Introducing and testing small applications in the back office helps minimize risks. Applications can then be added gradually, while



31



simultaneously minimizing risk and maintaining data centralized during the process. Distributing data, which occurs in client-server models, increases risk by increasing user access. It is important to also implement security measurements to protect sensitive data and processes and protect data and process integrity. Client-server models have arisen from business need of the 21st century. Implementing these models flattens an organization‟s hierarchies, which allows for better use of human resources, giving them more decision making power through increased access to data and processes. This increased efficiency, in turn, increases profits. The development of client-server applications is much quicker than mainframe development- 6 months versus 2 years. Although they are more complicated and expensive to implement single process applications, the benefits are enduring and work on a variety of levels.



32



 http://www.exforsys.com/tutorials/client-server/what-are-web-servers.html  http://www.webdevelopersnotes.com/basics/client_server_architecture.php3  http://www.vub.ac.be/BIBLIO/nieuwenhuysen/courses/chapters/clientserver.pdf  http://en.kioskea.net/contents/cs/csintro.php3  http://www.rocw.raifoundation.org/computing/MCA/internet-websitemgt/lecture-notes/lecture-01.pdf  http://www.peterindia.net/N-tierApplicationsView.html  http://www.stellarshell.com/server_app.php  http://www.testinggeek.com/webappsec-1.asp  http://www.digitalanchor.com/Digital-Anchor-Server.aspx  http://nptel.iitm.ac.in/courses/Webcoursecontents/IIT%20Kharagpur/Soft%20Engg/pdf/m17L41.pdf  http://www.xpertworkshop.com/Client-server-application-development.htm  http://www.itquestionbank.com/client-server  http://dspace.inflibnet.ac.in/bitstream/1944/369/1/04cali_61.pdf



33




Related docs
Other docs by devpriya :)
dbms
Views: 2788  |  Downloads: 77
international finance
Views: 597  |  Downloads: 15
production and operations management
Views: 760  |  Downloads: 31
financial management
Views: 288  |  Downloads: 8
economics
Views: 153  |  Downloads: 2
computers
Views: 58  |  Downloads: 0
entrepreneuship
Views: 64  |  Downloads: 2
cost accounting
Views: 834  |  Downloads: 29
market research
Views: 327  |  Downloads: 1
By registering with docstoc.com you agree to our
privacy policy

You are almost ready to download!

You are almost ready to download!