IEM 5743 Lecture Notes Computing Architectures Week #6, 2/16/00
Prepared by Dr. M. Kamath
I felt that the slides that I used contained a fair amount of detail. Hence, I decided not to repeat all of that information here, but to focus on some additional information. The numbers below indicate the corresponding slide number.
The mainframe (slide 1) performs all of the following functions - data entry validation, running application, data access and manipulation, etc. This architecture is secure because of the centralized control in a multi-user environment. But the downside is that if that main computer fails, everything comes to a standstill. There was a comment that in some configurations there could be a back-up machine, which makes the overall system reliability very high.
When the number (slide 2) of simultaneous on-line users increases, it could slow down the response of the mainframe considerably. Centralized functions are still needed for order entry functions in large business operations; on line databases for airlines, distributors and large manufacturers.
Examples of personal or stand-alone computers (slide 3) are Wintels, Macs, Sun Workstations, etc. The machine sits idle, when the “owner” is not using it.
In distributed computing (slide 4), security and control issues become very critical, and all data needs to be password protected.
Shared items have different access privileges for different user-groups. For example, no access to certain items, read only, read/write, etc.
Network Computing characteristics: (slides 5 and 6)
-
Network computers (NCs) are also called diskless workstations.
-
Programs and data disappear when network computer is shut down.
-
The program is downloaded from central server.
-
NC is different from a dumb terminal, as it has CPU, RAM etc., and can run programs.
-
No software or application resides on the NCs.
-
NC is like a closed box; runs programs written a language like JAVA.
-
Lack of diskette drives is seen as an added security feature as programs/data cannot be copied.
-
Unlike a network computer, a Net PC has a hard drive and runs a Windows like OS. But there is no diskette drive.
Client/Server Computing: (slide 7)
-
The focus here is on application and not on processors, because it is the programs that communicate and not the computers.
-
The application program is distributed into two logically separate components, each performing very separate duties.
-
Front end or the client.
-
Back end or the server.
Client/Server Computing: (slide 9)
-
Client/Server software masks the location of the server process from the client. Many machines may be involved in the back-end processing of application logic.
-
Ideal C/S software is independent of hardware or OS platforms - Wintels, Macs, Suns etc. (A discussion item for next week.)
Client/Server Computing: (slide 10)
-
Message-based exchanges – Message is the delivery mechanism for the service requests and replies.
-
Encapsulation – The server can call other servers to accomplish the task. This is hidden from the client. Server can be upgraded without affecting the client as long as the interface or the service provided is not affected.
Client/Server Computing: (slide 11)
-
Horizontal scaling could have a slight impact on performance.
-
Maintenance is cheaper, because the server code is “centralized.”
-
Guarding of shared data integrity.
-
Clients could remain personal and independent.
Types of Servers (slide 12)
-
C/S offers the flexibility to compute where it is most efficient to do so. For example running portions of an application on a server where some central data resides is a very good idea.
-
Mainframe and C/S centrally process application logic on behalf of remote users. Client is intelligent; has a CPU and capable of processing real information. Terminals are generally dumb, and mainly act as I/O devices. As the amount of server-side work increases, the system becomes more mainframe like.
File Servers (slide 13)
-
They are great for sharing files.
-
Transfer of raw data, tables etc. increases the network traffic and exposes data. So data security is an issue.
Database Servers (slide 14)
-
Most common C/S application today is the relational database. Requests are formulated at the client and shipped to the server for execution. The server processes the queries against the local database and returns results.
-
SQL, pronounced as “sequel”, is a database programming language.
-
SQL was developed by IBM in the mid 70’s to serve as an “English-like” front-end query language. It has a very sound mathematical foundation.
-
It is an interactive language for ad hoc database queries and can be embedded in other programming languages.
-
Via SQL we can control sets of records at a time.
-
SQL servers help protect data in a multi-user environment. These servers have features for various things like data validation, reference integrity, rollback (undo transactions), automatic locking and deadlock detection and resolution.
-
SQL database servers: Oracle (the first commercial version out in 1979),
Sybase, Informix, IBM, and Microsoft
Transaction Servers (slide 15)
-
Client invokes remote procedures or services on the server. This mechanism is usually referred to as “TP-Lite” or stored procedures.
-
Remote procedures execute a group of SQL statements called transactions. Unlike Database servers that deal with single SQL statements, Transaction servers treat the whole block as one unit. This reduces network traffic.
-
Sybase pioneered concept of stored procedures in 1986.
2-Tier, 3-Tier, N-Tier (slide 22)
-
The current trend is to distribute application logic.
-
Web Application server is a new class of Internet software. Examples are Netscape/Kiva’s Application Server, IBM’s WebSphere, Silverstream Application Server, etc.
Slides (25 - 27)
-
I mentioned pipes and platforms based an excerpt from Orfali et al. 1999 while talking about middleware. There was some inconsistency in the usage of terms, which I will clarify next week.
Component-based Architecture (slides 33 - 34)
-
The component idea comes from the newest programming paradigm, object oriented programming. The idea is that a component renders services and only its functionality and not the inner implementation details are important to another component. This concept is very powerful and makes the components reusable.
Share with your friends: |