Home > Articles > Software Development & Management > Architecture and Design

This chapter is from the book

3.4 Client-Server Technology

Client-server technologies are the result of the evolution of software technology supporting application systems. In particular, the evolution of client-server technologies has been an important factor in the expansion of information technology across an increasing range of application business processes. Originally technologies focused on file sharing. File sharing is still the dominant paradigm of the Internet today with protocols such as HTTP supporting access to the global file systems available. File server technologies evolve into a second generation of capabilities dominated by a database server technology. It is important to note that the file server technologies have been closely linked with the evolution of distributed computing technologies.

Increasingly, client-server technologies are being replaced by N-Tier component-oriented solutions. Based upon Java application servers, the N-Tier solutions include support for thin-client user interfaces with increased scalability and reliability.

One of the most successful networking technologies came from Sun Microsystems and was called network file server. Sun Microsystems was successful in encouraging the de facto standardization of that technology by providing free reference technology access in terms of source code for implementation on arbitrary platforms. Network file server technology is based upon open network computing, another Sun Microsystems technology that was one of the first successful generations of distributed computer technology. The network file server was a procedurally based technology closely tied to the C programming language, as was the other important remote-procedure-call technology called the distributed computing environment. Both technologies resulted in file-sharing capabilities that were widely implemented. The database server technologies utilized these underlying distributed computing capabilities to provide remote access to database systems from a variety of client platforms.

Another important technology that arose during the database generation was that of transaction-processing monitors. Transaction-processing monitors enable the consistent and reliable maintenance of data integrity across distributed systems. Transaction-processing technology continues to be an important add-on capability to distributed computing technologies to ensure robustness and integrity of implementations.

Groupware technologies also arose in the late 1980s and early 1990s starting with email and evolving to higher forms of interactivity, some of which can be seen on the Internet today (e.g., chat rooms and videoconferencing). Recently, the technologies of object orientation, distributed computing, and the Internet have merged to support adaptable computing environments that can scale to global proportions. This generation of technologies is supported by application servers primarily based on Sun's Java or Microsoft's .Net platform.

The client-server technologies initially arose as an evolution of mainframe-based technologies. Mainframe-based technologies were a natural outgrowth of single-processor systems that date back to the origins of computing. In a mainframe technology, the processing and management of data in the system is completely centralized. The mainframe is surrounded by a number of peripheral client terminals that simply support presentation of information. In the client-server generation of technologies, the client computer has become a significant processing resource in its own right. Client systems that arose during the personal computer revolution are now capable of processing speeds that rival and greatly exceed that of former minicomputer and mainframe computer generations. Initially, in order to support access to data in departments and enterprises, client-server technology supported the connection through local area networking to the back-end mainframe minicomputer and workstation server systems. The technology at the software level supporting this communication is called middleware.

"Genius might be that ability to say a profound thing in a simple way."

—Charles Bukowski

History

Initially, middleware was installed as a custom capability to support client-server networking between PCs and server platforms. As technology evolves, middleware is becoming embedded in the operating system so that it is a natural capability of client platforms as well as server platforms. Client systems with embedded middleware can now support on-board services to applications running locally and across the network. This evolution of client-server technology to an embedded capability has added many new challenges to the implementation of application systems. In fact, there are various antitheses to the client-server evolution, including a resurgence of the mainframe platform as a significant business of IBM and the capability called the network computer which begins to resemble the dumb terminal of mainframe days (Figure 3.5).

03fig05.gifFigure 3.5. Origins of Client Server Technologies

Object technologies are organized around client-server capabilities. Object technologies come in two primary categories. Some are organized to serve the process of software development. Examples of these technologies include object-oriented analysis and object-oriented design. Object-oriented analysis comprises the definition of information technology capabilities that are models of current and future business processes. Object-oriented modeling provides rich capabilities for representing business entities and business processes. This is in contrast to procedural and relational database technologies, which require the application designer to compromise the representation of the business environment to the constraints of the technology in terms of control flow and data representation. Object-oriented analysis, because of the natural correspondence of state information in process, provides a mechanism for modeling reality that is relatively easy to communicate with end-users. Because end-user communication is facilitated, the design and validation of object-oriented systems is greatly enabled.

Object-oriented design is another major software phase that has been successful commercially in the software process market. Object-oriented design comprises the planning of software structure and capabilities that support the reduction in software defects and rapid prototyping of software capabilities.

The other major category of object technology focuses on implementation. At the center is object-oriented middleware technology. Object-oriented middleware supports distributed computing and the integration of various heterogeneous software technologies including operating systems, programming languages, and databases. Object-oriented programming languages are the direct expression of the object paradigm. Object-oriented programming languages support the encapsulation of data with process in the form of abstract data types in component objects. There are as many object-oriented programming languages as there are procedural languages. The predominant languages for object-oriented programming include C++, the Java language, and increasingly C#, but a significant number of communities support Eiffel and other languages. Object-oriented middleware allows these languages to interoperate to form applications. Object-oriented programming languages are one possible choice for implementation of application software. It is also possible to utilize object-oriented analysis and design to support programming in procedural languages. This occurs frequently, as many corporate development environments use procedural languages for their mainstream languages, such as the C programming language and COBOL.

One of the important qualities of object orientation is that the developer should not have to be concerned about the underlying implementation. If the underlying implementation is procedural or is object-oriented, it should not and does not matter if the applications are properly encapsulated. Distributed object middleware supports the opaque encapsulation property, which makes this possible. The integration of commercial software with legacy and object-oriented applications is also enabled as a result of these encapsulation properties (Figure 3.6).

03fig06.gifFigure 3.6. Role of Middleware

Object-oriented middleware technologies can be viewed as an outgrowth of their procedural producers. Beginning with operating systems, procedural technologies supporting interprocess communication were added to enable file sharing and the evolution of client-server capabilities (Figure 3.7). Some of these technologies include the Remote Procedure Call (RPC) technologies such as Open Network Computing (ONC) and Distributed Computing Environment (DCE). The RPC technologies were preceded by socket-level technologies, which are a more primitive form of messaging. Today, all these technologies are still used actively in application systems and on the Internet. The object-oriented middleware technologies provided a next generation of capabilities, which bundled more of the application functionality into the infrastructure.

03fig07.gifFigure 3.7. Middleware Reference Model

Distributed Components

It is interesting to note that previous generations of interprocess communication technology were marketed with the promise of universal application interoperability. Component-oriented technology is marketed the same way today. Distributed object-oriented middleware has the advantage of retrospection on the shortcomings of these previous technology generations. It was found that even though remote-procedure-call technologies enabled the integration of distributed software, the primitive level of these technologies required substantial application programming in order to realize systems. Once the systems were implemented, the systems tended to be fairly brittle and difficult to maintain.

Microsoft, in 1996, released DCOM as a multimedia middleware technology for the Internet. DCOM still exposed many of the lower level primitive details, which were the downfall of remote procedure calls. DCOM added some object-oriented capabilities and a natural integration support for C++ programming. Simply adding the capability to support C++ didn't necessarily overcome the procedural route that exposed excessive complexity to distributed system developers in the DCOM predecessor called the distributed computing environment. However, with the release of the current generation of product, Microsoft .Net, Microsoft has created an enterprise development environment that can compete favorably with the capabilities of the more mature J2EE application servers.

The Common Object Request Broker Architecture was the first technology to be designed from the ground up to support distributed object-oriented computing. Figure 3.8 shows that there is a partitioning of a technology market between the Microsoft technology base and virtually all other information technology vendors. The other vendors support various open system technologies that are the result of consensus standards processes. CORBA is universally accepted as the vendor-independent standard for distributed object middleware. CORBA simplifies distributed computing in several ways. The most significant advance is the language independence that CORBA provides, allowing multiple programming languages in heterogeneous environments to interoperate using object messaging.

03fig08.gifFigure 3.8. Distributed Technologies in Context

Above the middleware layer are other technologies that support further integration of application functionality. In the Microsoft technology base, these technologies have been grouped into a brand name called .Net. The .Net technologies include a substantial reinvention of middleware capabilities that eliminate interface definition languages. The CORBA capabilities are widely available today and support multiple programming-language integration from multiple vendor platforms.

CORBA technologies are the product of an open systems consortium process called the object management group, or OMG. The OMG has over 700 member organizations including all major vendors in information technology, such as Sun Microsystems, Hewlett Packard, IBM, Netscape, and Microsoft. The OMG has addressed the problem of application software interoperability by focusing on the standardization of programming interfaces. With previous generations of remote-procedure-call technologies, the only widely adopted standard interface was the network file server, which is really the most primitive form of software interoperability beyond exchange of removable media. It is important for end-users to provide their requirements and interact with open systems processes because they shape the form of technologies that will be used for end-user system development. In particular, sophisticated users of technologies can encourage open systems consortia and software vendors to provide more complete capabilities to enable the development of complex systems. This reduces technology risk and creates more leverage for application developers.

The CORBA technologies are centered around the object request broker that the component standardizes (Figure 3.9). In the object management architecture, which is the route node of OMG diagrams, there are several categories of objects. The object request broker is distinguished because it is the object through which all the other categories of object communicate. The object management architecture is conceptually a layered architecture that includes increasing levels of specificity for domain application implementation. The most common capabilities embodied by object technologies are standardized through the object request broker. The next level of capabilities is called the CORBA services, which provide enabling functions for systems implementation. The CORBA services are comparable in functionality to current operating-system services that are commonly bundled with platforms. The CORBA services provide the first step toward a distributed operating system capability that supports the integration of application software and commercial software across all types of platforms and environments.

03fig09.gifFigure 3.9. Object Management Architecture

CORBA technology is widely available today and is a mainstream technology available on virtually every operating-system platform. Some of the more innovative platforms, including the Netscape Communicator, which could be considered an operating-system platform in its own right, are bundling CORBA with all of their deliverable licenses. Microsoft also supports the CORBA technology market by delivering specifications that enable interworking with the Microsoft infrastructure workings. The OMG has standardized interworking specifications for both COM and COM+ generations of Microsoft technologies. These standards are available on products on major CORBA implementation systems today.

In addition, third-party vendors are providing direct support for CORBA. These include vendors like Black and White software, which provide graphical user interface development tool kits, database vendors, system management vendors, and specialty market vendors such as real-time and computer-aided software engineering tools. CORBA provides the interface definition language, which is the key capability fundamental to object orientation. The interface definition language is a notation for defining software boundaries. IDL is a specification language that enables the description of computational software architectures for application systems as well as international standards for interoperability.

The interface definition language from CORBA has also been adopted by the international standards organization and the formal standards counterparts for telecommunication systems. IDL is the international standard DIS14750. As such, IDL is a universal notation for defining application program interfaces in software architectures. Because IDL is programming-language independent, a single specification will suffice for defining software interfaces on any language or platform environment. IDL interfaces support object-oriented designs as well as the integration of legacy software. Since the object management group is the only major standards consortium developing object-oriented standards specifications for software interfaces, IDL is synonymous with object technology open system.

IDL supports the integration of a diverse array of programming languages and computing platforms (Figure 3.10). With IDL, one can specify software interfaces that are compiled and readily integrated to available programming languages. These capabilities are available commercially and support distributed communication in a general manner.

03fig10.gifFigure 3.10. Technology Independence of the Interface Definition Language

This section discussed how mainframe technology has evolved into client-server technologies with middleware providing the distributed computing software capabilities. Because client-server technologies have merged with object technologies, it is now possible to provide object-oriented capabilities that augment legacy systems across most or all programming environments. In addition, interoperability between CORBA and the Microsoft counterpart called COM+ enables the coverage of popular platforms on many organizational desktops. The vendors supporting open systems also support CORBA. The dominant Internet vendors are delivering CORBA and associated protocol stacks to numerous licensees. CORBA is the standard for object-oriented middleware. The products are available now as are the horizontal services specifications that enable application development. The OMG is proceeding to develop the vertical specifications that will provide direct support for application-level interoperability.

The ISO has supported the designation of CORBA IDL as a standard for the definition of software interfaces across all computing environments.

Object orientation is a natural paradigm for modeling real-world information and business processes. Object technology supports the integration of heterogeneous and distributed information technologies that include legacy systems (Figure 3.11). Combining object orientation and component technology enables the creation of ambitious system concepts, which are increasingly becoming the competitive advantage of application companies and end-users.

03fig11.gifFigure 3.11. Interoperability Vision for Object Technology

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.

Overview


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information


To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.

Surveys

Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.

Newsletters

If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information


Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.

Security


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.

Children


This site is not directed to children under the age of 13.

Marketing


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information


If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.

Choice/Opt-out


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information


Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents


California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure


Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.

Links


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact


Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice


We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020