Introduction to the Distributed Computing Environment
CICS(R) Transaction Server for z/OS(R) supports DCE remote procedure calls.
In conjunction with the OS/390(R) Unix Systems Services DCE Base Services MVS/ESA(TM) and OS/390 Unix Systems Services DCE Application Support MVS/ESA CICS Feature products, CICS Transaction Server for z/OS enables a CICS program to act as a server for a DCE RPC. (Note that DCE RPC uses the DCE Security and Directory Services.) This is described in DCE remote procedure calls.
The main advantage of a DCE remote procedure call over a CICS DPL call is that you can call CICS programs from non-CICS environments.
This section tells you what the Distributed Computing Environment (DCE) is and why you might want to use it. For more detailed information, you should refer to the books listed in DCE remote procedure calls.
What is DCE?
DCE (Distributed Computing Environment) is an architecture defined by the Open Software Foundation (OSF) to provide an Open Systems platform to address the challenges of distributed computing. It is being ported to all major IBM(R) and many non-IBM environments. Note that all current DCE implementations use TCP/IP rather than SNA as their communication protocol.
The Distributed Computing Environment (DCE) is a software system developed in the early 1990s by a consortium that included Apollo Computer (later part of Hewlett-Packard), IBM, Digital Equipment Corporation, and others. The DCE supplies a framework and toolkit for developing client/server applications. The framework includes a remote procedure call (RPC) mechanism known as DCE/RPC, a naming (directory) service, a time service, an authentication service, an authorization service and a distributed file system (DFS) known as DCE/DFS.
History
DCE came about to a large degree as part of the Unix wars of the 1980s. After Sun Microsystems and AT&T worked together to produce UNIX System V Release 4 (SVR4), many of the other Unix vendors felt their own market opportunities were unduly disadvantaged. They quickly formed the Open Software Foundation (OSF) to compete with a BSD-based Unix that more closely matched their own offerings. OSF ended up introducing OSF/1, which was based on the Mach kernel and had relatively poor performance compared to SVR4, and was little used except by Digital.
As part of the formation of OSF, various members contributed many of their ongoing research projects. At the time, network computing was quite popular, and many of the companies involved were working on similar RPC-based systems. By re-building these various utilities on a single “official” RPC mechanism, OSF could offer a major advantage over SVR4, allowing any DCE-supporting system (namely OSF/1) to interoperate in a larger network.
The DCE system was, to a large degree, based on independent developments made by each of the partners. DCE/RPC was derived from the Network Computing System (NCS) created at Apollo Computer. The naming service was derived from work done at Digital. DCE/DFS was based on the Andrew File System (AFS) originally developed at Carnegie Mellon University. The authentication system was based on Kerberos, and the authorization system based on Access Control Lists (ACLs). By combining these features, DCE offers a fairly complete C-based system for network computing. Any machine on the network can authenticate its users, gain access to resources, and then call them remotely using a single integrated API.
Distributed computing never really caught on as much as had been hoped for in the late 1980s and early 1990s. The rise of the Internet, Java and web services stole much of its mindshare through the mid-to-late 1990s, and competing systems such as CORBA muddied the waters as well. Perhaps ironically, one of the major uses of DCE/RPC today are Microsoft’s DCOM and ODBC systems, which use DCE/RPC (in MSRPC) as their network transport layer.
OSF and its projects eventually became part of The Open Group, which released DCE 1.2.2 under a free software license (the LGPL) on 12 January 2005. DCE 1.1 was available much earlier under the OSF BSD license, and resulted in FreeDCE being available since 2000. FreeDCE contains an implementation of DCOM.
Architecture
The largest unit of management in DCE is a cell. The highest privileges within a cell are assigned to a role called cell administrator, normally assigned to the “user” cell_admin. Note that this need not be a real OS-level user. The cell_admin has all privileges over all DCE resources within the cell. Privileges can be awarded to or removed from the following categories : user_obj, group_obj, other_obj, any_other for any given DCE resource. The first three correspond to the owner, group member, and any other DCE principal respectively. The last group contains any non-DCE principal. Multiple cells can be configured to communicate and share resources with each other. All principals from external cells are treated as “foreign” users and privileges can be awarded or removed accordingly. In addition to this, specific users or groups can be assigned privileges on any DCE resource, something which is not possible with the traditional UNIX filesystem, which lacks ACLs.
Major components of DCE within every cell are:
- the security server that is responsible for authentication
- The Cell Directory Server (CDS) that is the respository of resources and ACLs and
- The Distributed Time Server that provides an accurate clock for proper functioning of the entire cell. Modern DCE implementations such as IBM’s are fully capable of interoperating with Kerberos as the security server, LDAP for the CDS and the Network Time Protocol implementations for the time server.
While it is possible to implement a distributed file system using the DCE underpinnings by adding filenames to the CDS and defining the appropriate ACLs on them, this is not user-friendly. DCE/DFS is a DCE based application which provides a distributed filesystem on DCE. DCE/DFS can support replicas of a fileset (the DCE/DFS equivalent of a filesystem) on multiple DFS servers – there is one read-write copy and zero or more read only copies. Replication is supported between the read-write and the read-only copies. In addition, DCE/DFS also supports what are called “backup” filesets, which if defined for a fileset are capable of storing a version of the fileset as it was prior to the last replication.
DCE/DFS is believed to be the world’s only distributed filesystem that correctly implements the full POSIX filesystem semantics, including byte range locking. DCE/DFS was sufficiently reliable and stable to be utilised by IBM to run the back-end filesystem for the 1996 Olympics web site, seamlessly and automatically distributed and edited worldwide in different timezones.
DCE is based on three distributed computing models:
Client/server
A way of organizing a distributed application
Remote procedure call
A way of communicating between parts of a distributed application
Shared files
A way of handling data in a distributed system, based on a personal computer file access model.
CICS(R) alone (without DCE) also supports distributed computing. See Distributed computing.
The rest of this section gives a high level view of the services provided by DCE.
Remote procedure call (RPC)
One way of implementing communications between a client and a server of a distributed application is to use the procedure call model. In this model, the client makes what looks like a procedure call, and waits for a reply from the server. The procedure call is translated into network communications by the underlying RPC mechanism. The server receives a request and executes the procedure, returning the results to the client.
In DCE RPC, you define one or more DCE RPC interfaces, using the DCE interface definition language (IDL). Each interface comprises a set of associated RPC calls (called operations), each with their input and output parameters. You compile the IDL, which generates data structure definitions and executable stubs for both the client and the server. The matching parameter data structures ensure a common view of the parameters by both client and server. The matching client and server executable stubs handle the necessary data transformations to and from the network transmission format, and between different machine formats (EBCDIC and ASCII).
You use the DCE Directory Service to advertise that your server now supports the new interface you defined using the IDL. Your client code can likewise use the Directory Service to discover which servers provide the required interface.
You can also use the DCE Security Service to ensure that only authorized client end users can access your newly defined server function.
Directory Service
The DCE Directory Service is a central repository for information about resources in the distributed system. Typical resources are users, machines, and RPC-based services. The information consists of the name of the resource and its associated attributes. Typical attributes could include a user’s home directory, or the location of an RPC-based server.
The DCE Directory Service consists of several parts: the Cell Directory Service (CDS), the Global Directory Service (GDS) 3 , the Global Directory Agent (GDA), and a Directory Service programming interface. The CDS manages a database of information about the resources in a group of machines called a DCE cell. The Global Directory Service implements an international, standard directory service and provides a global namespace that connects the local DCE cells into one worldwide hierarchy. The GDA acts as a go-between for cell and global directory services. Both CDS and GDS are accessed using a single Directory Service application programming interface (API).
Security Service
There are three aspects to DCE security: authentication, secure communications, and authorization. They are implemented by several services and facilities that together comprise the DCE Security Service. These include the Registry Service, the Authentication Service, the Privilege Service, the Access Control List (ACL) Facility, and the Login Facility.
The identity of a DCE user or service is authenticated by the Authentication Service. Communications are protected by the integration of DCE RPC with the Security Service. Communication over the network can be checked for tampering or encrypted for privacy. Finally, access to resources is controlled by comparing the credentials conferred to a user by the Privilege Service with the rights to the resource, which are specified in the resource’s Access Control List. The Login Facility initializes a user’s security environment, and the Registry Service manages the information (such as user passwords) in the DCE Security database.
Time Service
The DCE Time Service (DTS) provides synchronized time on the computers participating in a Distributed Computing Environment. DTS synchronizes a DCE host’s time with Coordinated Universal Time (UTC), an international time standard. DTS cannot keep the time in each machine precisely the same, but can maintain it to a known accuracy. DTS also provides services which return a time range to an application (rather than a single time value), and which compare time ranges from different machines. They can be used to schedule and synchronize events across the network.
File Service
The DCE File Service (DFS(TM)) allows users to access and share files stored on a File Server anywhere on the network, without having to know the physical location of the file. Files are part of a single, global namespace. A user anywhere on a network can access any file, just by knowing its name. The File Service achieves high performance, particularly through caching of file system data. Many users can access files that are located on a given File Server without a large amount of network traffic or delays.
The File Service is based on a personal computer view of files, and is not relevant to the CICS Transaction Server for z/OS(R) environment.
Threads
DCE Threads supports the creation, management, and synchronization of multiple threads of control within a single process. This component is conceptually a part of the operating system layer, the layer below DCE. If the host operating system already supports threads, DCE can use that software and DCE Threads is not necessary. Because all operating systems do not provide a threads facility and DCE components require threads be present, this user-level threads package is included in DCE.
DCE Remote Procedure Calls
This section gives an overview of how CICS(R) cooperates with the OS/390(R) Unix Systems Services DCE Base Services MVS/ESA(TM) and OS/390 Unix Systems Services DCE Application Support MVS/ESA CICS Feature products to enable a CICS program to act as a DCE server.
Refer to the following books for more information about the OS/390 Unix Systems Services DCE Base Services MVS/ESA product:
- DCE: Understanding the Concepts
- Introducing the z/OS(R) Distributed Computing Environment
- z/OS Distributed Computing Environment: Application Development Guide, for guidance information about developing the client code and using the Unix System Services DCE MVS/ESA base services.
- z/OS Distributed Computing Environment: Application Development Reference, for reference information about application programming interfaces (APIs).
Refer to the following books for more information about the OS/390 Unix Systems Services DCE Application Support MVS/ESA CICS Feature:
- OS/390 DCE Application Support Programming Guide, for information about how to install CICS remote procedure call server programs.
- z/OS Distributed Computing Environment: Application Support Configuration and Administration Guide, for information about the administration tasks that complement the programming tasks.
Client/Server Concepts
From Wikipedia, the free encyclopedia
Client-server is a computing architecture which separates a client from a server, and is almost always implemented over a computer network. Each client or server connected to a network can also be referred to as a node. The most basic type of client-server architecture employs only two types of nodes: clients and servers. This type of architecture is sometimes referred to as two-tier. It allows devices to share files and resources.
Each instance of the client software can send data requests to one or more connected servers. In turn, the servers can accept these requests, process them, and return the requested information to the client. Although this concept can be applied for a variety of reasons to many different kinds of applications, the architecture remains fundamentally the same.
These days, clients are most often web browsers, although that has not always been the case. Servers typically include web servers, database servers and mail servers. Online gaming is usually client-server too. In the specific case of MMORPG, the servers are typically operated by the company selling the game; for other games one of the players will act as the host by setting his game in server mode.
The interaction between client and server is often described using sequence diagrams. Sequence diagrams are standardized in the Unified Modeling Language.
| Contents |
Characteristics
- Request sender is known as client
- Initiates requests
- Waits for and receives replies.
- Usually connects to a small number of servers at one time
- Typically interacts directly with end-users using a graphical user interface
- Receiver of request which is send by client is known as server
- Passive (slave)
- Waits for requests from clients
- Upon receipt of requests, processes them and then serves replies
- Usually accepts connections from a large number of clients
- Typically does not interact directly with end-users
Some designs are more sophisticated and consist of three different kinds of nodes: clients, application servers which process data for the clients, and database servers which store data for the application servers. This configuration is called a three-tier architecture, and is the most commonly used type of client-server architecture. Designs that contain more than two tiers are referred to as multi-tiered or n-tiered.
The advantages of n-tiered architectures is that they are far more scalable, since they balance and distribute the processing load among multiple, often redundant, specialized server nodes. This in turn improves overall system performance and reliability, since more of the processing load can be accommodated simultaneously.[1]
The disadvantages of n-tiered architectures include:
- More load on the network itself, due to a greater amount of network traffic.
- More difficult to program and test than in two-tier architectures because more devices have to communicate in order to complete a client’s request.
Comparison to Peer-to-Peer Architecture
Another type of network architecture is known as peer-to-peer, because each node or instance of the program can simultaneously act as both a client and a server, and because each has equivalent responsibilities and status. Peer-to-peer architectures are often abbreviated using the acronym P2P.
Both client-server and P2P architectures are in wide usage today.
Comparison to Client-Queue-Client Architecture
While classic Client-Server architecture requires one of communication endpoints to act as a server, which is much harder to implement, Client-Queue-Client allows all endpoints to be simple clients, while the server consists of some external software, which also acts as passive queue (one software instance passes its query to another instance to queue, e.g. database, and then this other instance pulls it from database, makes a response, passes it to database etc.). This architecture allows greatly simplified software implementation. Peer-to-Peer architecture was originally based on Client-Queue-Client concept.
- In most cases, 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 those data are far easier to administer than 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.
- 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.
Imagine you are visiting eCommerce web site. In this case, your computer and web browser would be considered the client, while the computers, databases, and applications that make up the online store would be considered the server. When your web browser requests specific information from the online store, the server finds all of the data in the database needed to satisfy the browser’s request, assembles that data into a web page, and transmits that page back to your web browser for you to view.
Specific types of clients include web browsers, email clients, and online chat clients.
Specific types of servers include web servers, ftp servers, application servers, database servers, mail servers, file servers, print servers, and terminal servers. Most web services are also types of servers.
- ^ This form of scalability is called horizontal scalability. There is substantial and growing criticism that horizontal scalability is limiting as applications become more complex and interdependent, particularly in the areas of network latency, reliability, and manageability. IBM, in particular, takes this view and promotes both vertical and horizontal scalability. Vertical scalability implements fewer servers able to support multiple application and database tiers, and multiple applications, concurrently. The IBM System z is the most notable example of a vertically scalable system.
Internet, Intranet and Extranet
Internet
The Internet is a worldwide, publicly accessible series of interconnected computer networks that transmit data by packet switching using the standard Internet Protocol (IP). It is a “network of networks” that consists of millions of smaller domestic, academic, business, and government networks, which together carry various information and services, such as electronic mail, online chat, file transfer, and the interlinked web pages and other resources of the World Wide Web (WWW).
Intranet
An intranet is a private computer network that uses Internet protocols, network connectivity to securely share part of an organization’s information or operations with its employees. Sometimes the term refers only to the most visible service, the internal website. The same concepts and technologies of the Internet such as clients and servers running on the Internet protocol suite are used to build an intranet. HTTP and other Internet protocols are commonly used as well, such as FTP. There is often an attempt to use Internet technologies to provide new interfaces with corporate “legacy” data and information systems.
Briefly, an intranet can be understood as “a private version of an Internet,” or as a version of the Internet confined to an organization.
Advantages of intranets
- Workforce productivity: Intranets can help users to locate and view information faster and use applications relevant to their roles and responsibilities. With the help of a web browser interface, users can access data held in any database the organization wants to make available, anytime and – subject to security provisions – from anywhere within the company workstations, increasing employees’ ability to perform their jobs faster, more accurately, and with confidence that they have the right information. It also helps to improve the services provided to the users.
- Time: With intranets, organizations can make more information available to employees on a “pull” basis (ie: employees can link to relevant information at a time which suits them) rather than being deluged indiscriminately by emails.
- Communication: Intranets can serve as powerful tools for communication within an organization, vertically and horizontally. From a communications standpoint, intranets are useful to communicate strategic initiatives that have a global reach throughout the organization. The type of information that can easily be conveyed is the purpose of the initiative and what the initiative is aiming to achieve, who is driving the initiative, results achieved to date, and who to speak to for more information. By providing this information on the intranet, staff have the opportunity to keep up-to-date with the strategic focus of the organization.
- Web publishing allows ‘cumbersome’ corporate knowledge to be maintained and easily accessed throughout the company using hypermedia and Web technologies. Examples include: employee manuals, benefits documents, company policies, business standards, newsfeeds, and even training, can be accessed using common Internet standards (Acrobat files, Flash files, CGI applications). Because each business unit can update the online copy of a document, the most recent version is always available to employees using the intranet.
- Business operations and management: Intranets are also being used as a platform for developing and deploying applications to support business operations and decisions across the internetworked enterprise.
- Cost-effective: Users can view information and data via web-browser rather than maintaining physical documents such as procedure manuals, internal phone list and requistion forms.
- Promote common corporate culture: Every user is viewing the same information within the Intranet.
- Enhance Collaboration: With information easily accessible by all authorised users, teamwork is enabled.
- Cross-platform Capability: Standards-compliant web browsers are available for Windows, Mac, and *NIX.
Extranet
An extranet is a private network that uses Internet protocols, network connectivity, and possibly the public telecommunication system to securely share part of an organization’s information or operations with suppliers, vendors, partners, customers or other businesses. An extranet can be viewed as part of a company’s Intranet that is extended to users outside the company (e.g.: normally over the Internet). It has also been described as a “state of mind” in which the Internet is perceived as a way to do business with a preapproved set of other companies business-to-business (B2B), in isolation from all other Internet users. In contrast, business-to-consumer (B2C) involves known server(s) of one or more companies, communicating with previously unknown consumer users.
Briefly, an extranet can be understood as a private intranet mapped onto the Internet or some other transmission system not accessible to the general public, but is managed by more than one company’s administrator(s). For example, military networks of different security levels may map onto a common military radio transmission system that never connects to the Internet. Any private network mapped onto a public one is a virtual private network (VPN). In contrast, an intranet is a VPN under the control of a single company’s administrator(s).
Another very common use of the term “extranet” is to designate the “private part” of a website, where “registered users” can navigate, enabled by authentication mechanisms on a “login page”.
An extranet requires security and privacy. These can include firewalls, server management, the issuance and use of digital certificates or similar means of user authentication, encryption of messages, and the use of virtual private networks (VPNs) that tunnel through the public network.
Disadvantages
- Extranets can be expensive to implement and maintain within an organization (e.g.: hardware, software, employee training costs) — if hosted internally instead of via an ASP.
- Security of extranets can be a big concern when dealing with valuable information. System access needs to be carefully controlled to avoid sensitive information falling into the wrong hands.
- Extranets can reduce personal contact (face-to-face meetings) with customers and business partners. This could cause a lack of connections made between people and a company, which hurts the business when it comes to loyalty of its business partners and customers.
Mainframe Computer
From Wikipedia, the free encyclopedia
Jump to: navigation, search
A Honeywell-Bull DPS 7 mainframe, circa 1990.
Mainframes (often colloquially referred to as Big Iron) are computers used mainly by large organizations for critical applications, typically bulk data processing such as census, industry and consumer statistics, ERP, and financial transaction processing.
The term probably originated from the early mainframes, as they were housed in enormous, room-sized metal boxes or frames. [1] Later the term was used to distinguish high-end commercial machines from less powerful units which were often contained in smaller packages.
Today in practice, the term usually refers to computers compatible with the IBM System/360 line, first introduced in 1965. (IBM System z9 is IBM’s latest incarnation.) Otherwise, systems with similar functionality but not based on the IBM System/360 are referred to as “servers.” However, “server” and “mainframe” are not synonymous (see client-server).
Some non-System/360-compatible systems derived from or compatible with older (pre-Web) server technology may also be considered mainframes. These include the Burroughs large systems, the UNIVAC 1100/2200 series systems, and the pre-System/360 IBM 700/7000 series. Most large-scale computer system architectures were firmly established in the 1960s and most large computers were based on architecture established during that era up until the advent of Web servers in the 1990s. (Interestingly, the first Web server running anywhere outside Switzerland ran on an IBM mainframe at Stanford University as early as 1990. See History of the World Wide Web for details.)
There were several minicomputer operating systems and architectures that arose in the 1970s and 1980s, but minicomputers are generally not considered mainframes. (UNIX arose as a minicomputer operating system; Unix has scaled up over the years to acquire some mainframe characteristics.)
Many defining characteristics of “mainframe” were established in the 1960s, but those characteristics continue to expand and evolve to the present day.
| Contents |
Description
Modern mainframe computers have abilities not so much defined by their single task computational speed (flops or clock rate) as by their redundant internal engineering and resulting high reliability and security, extensive input-output facilities, strict backward compatibility for older software, and high utilization rates to support massive throughput. These machines often run for years without interruption, with repairs and even software and hardware upgrades taking place during normal operation. For example, ENIAC remained in continuous operation from 1947 to 1955. More recently, there are several IBM mainframe installations that have delivered over a decade of continuous business service as of 2007, with upgrades not interrupting service. Mainframes are defined by high availability, one of the main reasons for their longevity, as they are used in applications where downtime would be costly or catastrophic. The term Reliability, Availability and Serviceability (RAS) is a defining characteristic of mainframe computers.
In the 1960s, most mainframes had no interactive interface. They accepted sets of punch cards, paper tape, and/or magnetic tape and operated solely in batch mode to support back office functions, such as customer billing. Teletype devices were also common, at least for system operators. By the early 1970s, many mainframes acquired interactive user interfaces and operated as timesharing computers, supporting hundreds or thousands of users simultaneously along with batch processing. Users gained access through specialized terminals or, later, from personal computers equipped with terminal emulation software. Many mainframes supported graphical terminals (and terminal emulation) by the 1980s (if not earlier). Nowadays most mainframes have partially or entirely phased out classic user terminal access in favor of Web user interfaces.
Historically mainframes acquired their name in part because of their substantial size and requirements for specialized HVAC and electrical power. Those requirements ended by the mid-1990s, with CMOS mainframe designs replacing the older bipolar technology. In fact, in a major reversal, IBM touts the mainframe’s ability to reduce data center energy costs for power and cooling and reduced physical space requirements compared to server farms.
Nearly all mainframes have the ability to run (or host) multiple operating systems and thereby operate not as a single computer but as a number of virtual machines. In this role, a single mainframe can replace dozens or even hundreds of smaller servers, reducing management and administrative costs while providing greatly improved scalability and reliability.
Mainframes can add system capacity nondisruptively and granularly. Modern mainframes, notably the IBM zSeries and System z9 servers, offer three levels of virtualization: logical partitions (LPARs, via the PR/SM facility), virtual machines (via the z/VM operating system), and through its operating systems (notably z/OS with its key-protected address spaces and sophisticated goal-oriented workload scheduling,[clarify] but also Linux and Java). This virtualization is so thorough, so well established, and so reliable that most IBM mainframe customers run no more than two machines: one in their primary data center, and one in their backup data center—fully active, partially active, or on standby—in case there is a catastrophe affecting the first building. All test, development, training, and production workload for all applications and all databases can run on a single machine, except for extremely large demands where the capacity of one machine might be limiting. Such a two mainframe installation can support continuous business service, avoiding both planned and unplanned outages.
Mainframes are designed to handle very high volume input and output (I/O) and emphasize throughput computing. Since the mid-1960’s, mainframe designs have included several subsidiary computers (called channels or peripheral processors) which manage the I/O devices, leaving the CPU free to deal only with high-speed memory. It is common in mainframe shops to deal with massive databases and files. Giga-record or tera-record files are not unusual.[citation needed] Compared to a typical PC, mainframes commonly have hundreds to thousands of times as much data storage online, and can access it much faster.[citation needed]
Mainframe return on investment (ROI), like any other computing platform, is dependent on its ability to scale, support mixed workloads, reduce labor costs, deliver uninterrupted service for critical business applications, and several other risk-adjusted cost factors. Some argue that the modern mainframe is not cost-effective. Hewlett-Packard and Dell unsurprisingly take that view at least at times, and so do a few independent analysts. Sun Microsystems used to take that view but, beginning in mid-2007, started promoting its new partnership with IBM, including probable support for the company’s OpenSolaris operating system running on IBM mainframes. The general consensus (held by Gartner[citation needed] and other independent analysts) is that the modern mainframe often has unique value and superior cost-effectiveness, especially for large scale enterprise computing. In fact, Hewlett-Packard also continues to manufacture its own mainframe (arguably), the NonStop system originally created by Tandem. Logical partitioning is now found in many UNIX-based servers, and many vendors are promoting virtualization technologies, in many ways validating the mainframe’s design accomplishments.
Mainframes also have unique execution integrity characteristics for fault tolerant computing. System z9 servers execute each instruction twice,[citation needed] compare results, and shift workloads “in flight” to functioning processors, including spares, without any impact to applications or users. This feature, also found in HP’s NonStop systems, is known as lock-stepping, because both processors take their “steps” (i.e. instructions) together. Not all applications absolutely need the assured integrity that these systems provide, but many do, such as financial transaction processing.
Despite these differences, the IBM mainframe, in particular, is still a general purpose business computer in terms of its support for a wide variety of popular operating systems, middleware, and applications.
As of early 2006, IBM mainframes dominate the mainframe market at well over 90% market share, however IBM is not the only vendor. Unisys manufactures ClearPath mainframes, based on earlier Sperry and Burroughs product lines. Fujitsu’s Nova systems are rebranded Unisys ES7000’s. Hitachi co-developed the zSeries 800 with IBM to share expenses. Hewlett-Packard sells its unique NonStop systems, which it acquired with Tandem Computers, and Groupe Bull’s DPS mainframes are available in Europe. Unisys and HP increasingly rely on commodity Intel CPUs rather than custom processors in order to reduce development expenses, while IBM has its own large research and development organization to introduce new, homegrown mainframe technologies.
Platform Solutions Inc., which was spun off former alternative mainframe vendor Amdahl Corp. in January 1999, now markets Intel Itanium 2 processor based z/OS servers equipped with specialized just-in-time emulation firmware for S/390 compatibility purposes. PSI and IBM are engaged in a long-going series of lawsuits, where IBM claims it has the right to ban any kind of compatible mainframe emulation, while PSI alleges that IBM is actively violating DOJ-imposed anti-trust safeguards which where implemented back in the 1970’s and are still effective. [1]
Several manufacturers produced mainframe computers from the late 1950s through the 1970s. The group of manufacturers was first known as “IBM and the Seven Dwarfs“: IBM, Burroughs, UNIVAC, NCR, Control Data, Honeywell, General Electric and RCA. Later, shrinking, it was referred to as IBM and the BUNCH. IBM’s dominance grew out of their 700/7000 series and, later, the development of the 360 series mainframes. The latter architecture has continued to evolve into their current zSeries/z9 mainframes which, along with the then Burroughs and now Unisys MCP-based mainframes, are among the few mainframe architectures still extant that can trace their roots to this early period. That said, while they can still run 24-bit System/360 code, the 64-bit zSeries and System z9 CMOS servers have nothing physically in common with the older systems. Notable manufacturers outside the USA were Siemens and Telefunken in Germany, ICL in the United Kingdom, and Fujitsu, Hitachi, Oki, and NEC in Japan. The Soviet Union and Warsaw Pact countries manufactured close copies of IBM mainframes during the Cold War; the Strela is an example of an independently designed Soviet computer.
Shrinking demand and tough competition caused a shakeout in the market in the early 1980s — RCA sold out to UNIVAC and GE also left; Honeywell was bought out by Bull; UNIVAC became a division of Sperry, which later merged with Burroughs to form Unisys Corporation in 1986. In 1991, AT&T briefly owned NCR. During the same period, companies found that servers based on microcomputer designs could be deployed at a fraction of the acquisition price and offer local users much greater control over their own systems given the IT policies and practices at that time. Terminals used for interacting with mainframe systems were gradually replaced by personal computers. Consequently, demand plummeted and new mainframe installations were restricted mainly to financial services and government. In the early 1990s, there was a consensus among industry analysts that the mainframe was a dying market as mainframe platforms were increasingly replaced by personal computer networks.
That trend started to turn around in the late 1990s as corporations found new uses for their existing mainframes and as the price of data networking collapsed in most parts of the world. The growth of e-business also dramatically increased the number of back-end transactions processed by mainframe software as well as the size and throughput of databases. Another factor currently increasing mainframe use is the development of the Linux operating system, which can run on many mainframe systems, typically in virtual machines. Linux allows users to take advantage of open source software combined with mainframe hardware RAS. Rapid expansion and development in emerging markets, particularly China, is also spurring major mainframe investments to solve exceptionally difficult computing problems, e.g. providing unified, extremely high volume online transaction processing databases for 1 billion consumers across multiple industries (banking, insurance, credit reporting, government services, etc.)
The distinction between supercomputers and mainframes is not a hard and fast one, but supercomputers generally focus on problems which are limited by calculation speed while mainframes focus on problems which are limited by input/output and reliability (“throughput computing”) and on solving multiple business problems concurrently (mixed workload). The differences and similarities include:
- Both types of systems offer parallel processing. Supercomputers typically expose it to the programmer in complex manners, while mainframes typically use it to run multiple tasks. One result of this difference is that adding processors to a mainframe often speeds up the entire workload transparently.
- Supercomputers are optimized for complicated computations that take place largely in memory, while mainframes are optimized for comparatively simple computations involving huge amounts of external data. For example, weather forecasting is suited to supercomputers, and insurance business or payroll processing applications are more suited to mainframes.
- Supercomputers are often purpose-built for one or a very few specific institutional tasks (e.g. simulation and modeling). Mainframes typically handle a wider variety of tasks (e.g. data processing, warehousing). Consequently, most supercomputers can be one-off designs, whereas mainframes typically form part of a manufacturer’s standard model lineup.
- Mainframes tend to have numerous ancillary service processors assisting their main central processors (for cryptographic support, I/O handling, monitoring, memory handling, etc.) so that the actual “processor count” is much higher than would otherwise be obvious. Supercomputer design tends not to include as many service processors since they don’t appreciably add to raw number-crunching power.
There has been some blurring of the term “mainframe,” with some PC and server vendors referring to their systems as “mainframes” or “mainframe-like.” This is not widely accepted and the market generally recognizes that mainframes are genuinely and demonstrably different.
An IBM zSeries 800 (foreground, left) running Linux.
- Historically 85% of all mainframe programs were written in the COBOL programming language. The remainder included a mix of PL/I (about 5%), Assembly language (about 7%), and miscellaneous other languages. eWeek estimates that millions of lines of net new COBOL code are still added each year, and there are nearly 1 million COBOL programmers worldwide, with growing numbers in emerging markets. Even so, COBOL is decreasing as a percentage of the total mainframe lines of code in production because Java, C, and C++ are all growing faster.
- Mainframe COBOL has recently acquired numerous Web-oriented features, such as XML parsing, with PL/I following close behind in adopting modern language features.
- 90% of IBM’s mainframes have CICS transaction processing software installed.[2] Other software staples include the IMS and DB2 databases, and WebSphere MQ and WebSphere Application Server middleware.
- As of 2004, IBM claimed over 200 new (21st century) mainframe customers — customers that had never previously owned a mainframe. Many are running Linux, some exclusively. There are new z/OS customers as well.
- In May, 2006, IBM claimed that over 1,700 mainframe customers are running Linux. Nomura Securities of Japan spoke at LinuxWorld in 2006 and is one of the largest publicly known, with over 200 IFLs in operation that replaced rooms full of distributed servers.
- Most mainframes run continuously at over 70% busy. A 90% figure is typical, and modern mainframes tolerate sustained periods of 100% CPU utilization, queuing work according to business priorities without disrupting ongoing execution.
- Mainframes have a historical reputation for being “expensive,” but the modern reality is much different. As of late 2006, it is possible to buy and configure a complete IBM mainframe system (with software, storage, and support), under standard commercial use terms, for about $50,000 (U.S.), equivalent to approximately 50% of the full annual cost of only one IT employee.[citation needed] The price of z/OS starts at about $1,500 (U.S.) per year, including 24×7 telephone and Web support.[3]
The CPU speed of mainframes has historically been measured in millions of instructions per second (MIPS). MIPS have been used as an easy comparative rating of the speed and capacity of mainframes. The smallest System z9 IBM mainframes today run at about 26 MIPS and the largest about 17,801 MIPS. IBM’s Parallel Sysplex technology can join up to 32 of these systems, making them behave like a single, logical computing facility of as much as about 569,632 MIPS.[4]
The MIPS measurement has long been known to be misleading and has often been parodied as “Meaningless Indicator of Processor Speed.” The complex CPU architectures of modern mainframes have reduced the relevance of MIPS ratings to the actual number of instructions executed. Likewise, the modern “balanced performance” system designs focus both on CPU power and on I/O capacity, and virtualization capabilities make comparative measurements even more difficult. See benchmark (computing) for a brief discussion of the difficulties in benchmarking such systems. IBM has long published a set of LSPR (Large System Performance Reference) ratio tables for mainframes that take into account different types of workloads and are a more representative measurement. However, these comparisons are not available for non-IBM systems. It takes a fair amount of work (and maybe guesswork) for users to determine what type of workload they have and then apply only the LSPR values most relevant to them.
To give some idea of real world experience, it is typical for a single mainframe CPU to execute the equivalent of 50, 100, or even more distributed processors’ worth of business activity, depending on the workloads. Merely counting processors to compare server platforms is extremely perilous.
- ^ Ebbers, Mike (2006). Introduction to the New Mainframe: z/OS Basics (pdf). IBM International Technical Support Organization. Retrieved on 2007-06-01.
- ^ CICS-An Introduction. IBM. Retrieved on 2006-10-22.
- ^ My Personal Mainframe?. The Mainframe Blog. Retrieved on 2006-11-30.
- ^ The 569,632 MIPS figure assumes 32 maximally configured System z9 Enterprise Class (i.e. Model 754) machines with all 54 central processors on each machine allocated to a single z/OS 1.9 (or higher) LPAR. A total of 32 such LPARs results in the cited MIPS figure (32 multiplied by 17,801). This figure is current as of late September, 2007.
- IBM Mainframe portal
- IBM eServer zSeries mainframe servers
- Univac 9400, a mainframe from the 1960s, still in use in a German computer museum
| [hide] | |
| Supercomputer | Minisupercomputer |
| Mainframe | Mainframe computer |
| Minicomputer | Supermini |
| Desktop computer | Microcomputer · Home computer · Personal computer · Workstation · Server (computing) |
| Cart computer | Cart computer |
| Portable computer | Portable computer |
| Mobile computing | Desktop replacement computer · Laptop · Subnotebook · Tablet PC |
| Others | Embedded system · Wireless sensor network · Smartdust · Nanocomputer |
Middleware Technologies – Syallabus
MC1754 MIDDLEWARE TECHNOLOGIES 3 0 0 1 0 0
1. CLIENT / SERVER CONCEPTS 9
Client – Server – File Server, Database server, Group server, Object server, Web server .Middleware – General middleware – Service specific middleware. Client / Server Building blocks – RPC – Messaging – Peer – to- Peer.
2. EJB ARCHITECTURE 9
EJB – EJB Architecture – Overview of EJB software architecture – View of EJB – Conversation – Building and Deploying EJBs – Roles in EJB.
3. EJB APPLICATIONS 9
EJB Session Beans – EJB entity beans – EJB clients – EJB Deployment – Building an application with EJB.
4. CORBA 9
CORBA – Distributed Systems – Purpose – Exploring CORBA alternatives – Architecture overview – CORBA and networking model – CORBA object model – IDL – ORB – Building an application with CORBA.
5. COM 9
COM – Data types – Interfaces – Proxy and Stub – Marshalling – Implementing Server / Client – Interface Pointers – Object Creation, Invocation , Destruction – Comparison COM and CORBA – Introduction to .NET – Overview of .NET architecture – Marshalling – Remoting.
Total No of periods: 45
TEXT BOOKS
1. Robert Orfali, Dan Harkey and Jeri Edwards, “The Essential Client/Server Survival Guide”, Galgotia Publications Pvt. Ltd., 2002. (Unit 1)
2. Tom Valesky,”Enterprise Java Beans”,Pearson Education, 2002.(Unit 2 & 3)
3. Jason Pritchard,”COM and CORBA side by side”, Addison Wesley,2000 (Unit 4 & 5)
4. Jesse Liberty, “Programming C#”, 2nd Edition, O’Reilly Press, 2002. (Unit 5)
REFERNCES
1. Mowbray,”Inside CORBA”, Pearson Education, 2002.
2. Jeremy Rosenberger,” Teach yourself CORBA in 14 days”, Tec media, 2000
Fat Servers OR Fat Clients
- Client/Server applications can also be differentiated by how the distributed application is split between the client and the server.
- The fat server model places more function on the server.
- The fat client does the reverse.
- Groupware, transaction and the web servers are examples of fat servers; database and file servers are examples of fat clients.
- Distributed objects can be either.
Fat Client
- Fat clients are the more traditional form of client/server.
- The bulk of the application runs on the client side of the equation.
- In both the file server and database server models, the clients know how the data is organized and stored on the server side.
- Fat clients are used for decision support and personal software.
- They provide flexibility and opportunities for creating front-end tools that let end-users create their own applications.
Fat Server:
- Fat Server applications are easier to manage and deploy on the network because most of the code runs on the servers.
- Fat servers try to minimize network interchanges by creating more abstract levels of service.
- Transaction and object servers, for example, encapsulate the database.
- The client in the fat server model provides the GUI and interacts with the server through remote procedure calls (or method invocations)
- These are used for mission-critical applications, represent the new growth area fro PC-based client/server computing.
What is Client/Server?
- The name implies that clients and servers are separated logical entities that work together over a network to accomplish a task.
- All client/server systems have the following distinguishing characteristics.
- Service
- Shared Resources
- Asymmetrical Protocols
- Transparency of location
- Mix – and – Match
- Message based exchanges
- Encapsulation of Services
- Scalability
- Integrity
1. Service:
- Client/Server is primarily a relationship between processes running on separate machines
- The Server process is a provider of services. The client is a consumer of services.
- The client and server is separated clearly based on the idea of service.
2. Shared Resources:
- A server can service many clients at the same time and regulate their access to shared resources.
- Have different mechanisms in allocating files and hardware like printer, scanner etc.
3. Asymmetrical Protocols:
- There is a many-to-one relationship between clients and server
- Clients always initiate the dialog by requesting a service.
- Servers are passively awaiting requests from the clients.
4. Transparency of Location:
- The server is a process that can reside on the same machine as the client or on a different machine across a network.
- Client/Server software usually masks the location of the server from the clients by redirecting the service calls when needed.
- A program can be a client, a server or both.
5. Mix-and-Match:
- The ideal client/server software is independent of hardware or operating system
- You should able to mix and match the client and server platforms.
6. Message based exchanges:
- Clients and servers are loosely coupled systems that interact through a message-passing mechanism.
- The message is the delivery mechanism for the service requests and replies.
7. Encapsulation of Services:
- A message tells a server what service is requested; it is then up to the server to determine how to get the job done.
- Servers can be upgraded without affecting the clients as long as the published message interface is not changed.
8. Scalability:
- Client/Server systems can be scaled horizontally or vertically.
- Horizontal scaling means adding or removing client workstations with only a slight performance impact.
- Vertical scaling means migrating to a larger and faster server machine or multi-servers.
9. Integrity:
- The server code and data is centrally maintained, which results in cheaper maintenance and the guarding of shared data integrity.
- The clients remain personal and independent
Client/Server Computing Era
1. Client – Server Computing Era:
- Client/Server reshaped the way of computers being used.
- Client/Server become mandatory in all computer oriented fields
- Internet is a good example for the Client/Server concept.
1.1. What is the real client/server version?
· A single PC can do all the work but the processes crowded up in the processor.
· Client/Server removes the “host-centric” pattern of execution.
· Processes which are hard to execute in PC can be send to the server.
· Client/Server is “Computer glasnost” – means a new era of co-existence and openness in which all can play.
· Client/Server computing provides an open and flexible environment where mix and match is the rule.
· The client applications will run predominantly on PCs and other desktop machines that are at home on LANs.
· The successful servers know exactly how to communicate with their PC clients.
· Mainframe has dumb terminals.
· Under the client/server environment, the mainframe servers can’t treat PCs as dumb terminals.
· They need to support peer-to-peer protocols, interpret PC messages, service their PC clients’ files in their native formats and provide data and services to PCs in the most direct manner.
1.2. Client/Server and the “New IS”
· Client/Server application development requires hybrid skills that include
a) transaction processing
b) database design
c) communications experience and
d) graphical user interface savvy.
· The more advanced applications require a knowledge of distributed objects and the internet.
· Most Client/Server solutions today are PC LAN implementations that are personalized for the group that uses them.
· Security requirements must be properly configured, often by the users themselves.
· IS departments have the skills to not only manage and deploy large networks but also to provide interoperability standards.
· They also know how to fine-tune applications, distribute fixes, and ensure data integrity.
· Client/Server computing may be best served by two-tiered IS organizations
- A line IS for managing and deploying departmental systems.
- An enterprise IS for managing global network and setting interoperability standards.
1.3. Competition in the Client/Server Market
· Client/Server is the great equalizer of the computer business, encourages openness.
· The open Client/Server environment serves as the catalyst for “commoditizing” hardware and system software.
· Example for commodity: PC can be obtained from multiple suppliers and is sold in very price-competitive market situations.
· LAN adapters, LAN protocol stacks, network routers, and bridges are also becoming commodities
· On the Software side, PC operating systems, SQL Database Management Systems and Web Servers and Browsers.
· The new era is beginning with Ubiquitous Client-Server Computing. Clients will be everywhere. They will come in all shapes and forms – including desktop, palmtop, mobile etc.
1.4. The internet, intranet and extranet
The Internet is a worldwide, publicly accessible series of interconnected computer networks that transmit data by packet switching using the standard Internet Protocol (IP). It is a “network of networks” that consists of millions of smaller domestic, academic, business, and government networks, which together carry various information and services, such as electronic mail, online chat, file transfer, and the interlinked web pages and other resources of the World Wide Web (WWW).
An Intranet is a private computer network that uses internet protocols, network connectivity to securely share part of an organization’s information or operations with its employees. Sometimes the term refers only to the most visible service, the internal website. The same concepts and technologies of the Internet such as clients and servers running on the Internet protocol suite are used to build an intranet. HTTP and other Internet protocols are commonly used as well, such as FTP. There is often an attempt to use Internet technologies to provide new interfaces with corporate “legacy” data and information systems. Normally they hide behind the firewalls.
An extranet is a private network that uses Internet protocols, network connectivity, and possibly the public telecommunication system to securely share part of an organization’s information or operations with suppliers, vendors, partners, customers or other businesses. An extranet can be viewed as part of a company’s Intranet that is extended to users outside the company (e.g.: normally over the Internet). It has also been described as a “state of mind” in which the Internet is perceived as a way to do business with a pre-approved set of other companies business-to-business (B2B), in isolation from all other Internet users. In contrast, business-to-consumer (B2C) involves known server(s) of one or more companies, communicating with previously unknown consumer users.
Briefly, an extranet can be understood as a private intranet mapped onto the Internet or some other transmission system not accessible to the general public, but is managed by more than one company’s administrator(s).
Server Types
- File Server
- Database Server
- Transaction Server
- Groupware Server
- Object Server
- Web Server
1. File Servers
- The client passes requests for file records over a network to the file server.
- This is a very primitive form of data service.
- File Servers are useful for sharing files across a network.
- These are acting as a repository of documents, images, engineering drawings and other large data objects.
- The client passes SQL requests as messages to the database server.
- The result of each SQL command are returned over the network to the client.
- The code in the server process will processes the SQL request and the data reside in the same machine.
- Distributed database servers may increase the efficiency of the processing power.
- These servers provide the foundation for decision-support systems that require adhoc queries and flexible reports.
- The client invokes remote procedures that reside on the server with an SQL database engine.
- These remote procedures on the server execute a group of SQL statements.
- The network exchange consists of a single request/reply message.
- The SQL statements either all succeed or fail as a unit. These grouped SQL statements are called Transactions.
- The server component usually consists of SQL transactions against a database
- These are called Online Transaction Processing or OLTP.
- OLTP applications also require tight controls over the security and integrity of the database.
- Two forms of OLTP: based on the TP Monitors provided by the OLTP Vendors
- TP Lite
- TP Heavy
4. Groupware Servers
- Groupware addresses the management of semi-structured information such as text, image, mail, bulletin boards, and the flow of work.
- These client/server systems place people in direct contact with other people.
- Lotus Notes is the Leading Example.
- In most cases, applications are created using a scripting language and form-based interfaces provided by the vendor.
- The communication middleware between the client and the server is vendor-specific.
- The client/server application is written as a set of communicating objects.
- Client objects communicate with server objects using an Object Request Broker (ORB).
- The client invokes a method on a remote object.
- The ORB locates an instance of that object server class, invokes the requested method, and returns the results to the client object.
- Server objects must provide support for concurrency and sharing. The ORB brings it all together.
- Example: Digital’s Object Broker, IBM’s SOM 3.0, Sun’s NEO, HP’s ORB Plus, Expersoft’s Power Broker, Microsoft’s DCOM or Network OLE.
- WWW is the first truly intergalactic client/server application.
- This model of client/server consists of thin, portable, “universal” clients that talk to Superfast Servers.
- The clients and servers communicate using an RPC-like protocol called HTTP.
- This protocol defines a simple set of commands, parameters are passed as strings.
- The collection of HTML documents are stored in the Web Server.







