Introduction to Middleware: Web Services, Object Components, and Cloud Computing, 1st Edition (Hardback) book cover

Introduction to Middleware

Web Services, Object Components, and Cloud Computing, 1st Edition

By Letha Hughes Etzkorn

Chapman and Hall/CRC

662 pages | 169 B/W Illus.

Purchasing Options:$ = USD
Hardback: 9781498754071
pub: 2017-06-05
$119.95
x
eBook (VitalSource) : 9781315118673
pub: 2017-06-12
from $27.48


FREE Standard Shipping!

Description

"A stereotype of computer science textbooks is that they are dry, boring, and sometimes even intimidating. As a result, they turn students’ interests off from the subject matter instead of enticing them into it. This textbook is the opposite of such a stereotype. The author presents the subject matter in a refreshing story-telling style and aims to bring the Internet-generation of students closer to her stories." 

--Yingcai Xiao, The University of Akron

Introduction to Middleware: Web Services, Object Components, and Cloud Computing provides a comparison of different middleware technologies and the overarching middleware concepts they are based on. The various major paradigms of middleware are introduced and their pros and cons are discussed. This includes modern cloud interfaces, including the utility of Service Oriented Architectures. The text discusses pros and cons of RESTful vs. non-RESTful web services, and also compares these to older but still heavily used distributed object/component middleware. The text guides readers to select an appropriate middleware technology to use for any given task, and to learn new middleware technologies as they appear over time without being greatly overwhelmed by any new concept.

The book begins with an introduction to different distributed computing paradigms, and a review of the different kinds of architectures, architectural styles/patterns, and properties that various researchers have used in the past to examine distributed applications and determine the quality of distributed applications. Then it includes appropriate background material in networking and the web, security, and encoding necessary to understand detailed discussion in this area. The major middleware paradigms are compared, and a comparison methodology is developed. Readers will learn how to select a paradigm and technology for a particular task, after reading this text.

Detailed middleware technology review sections allow students or industry practitioners working to expand their knowledge to achieve practical skills based on real projects so as to become well-functional in that technology in industry. Major technologies examined include: RESTful web services (RESTful cloud interfaces such as OpenStack, AWS EC2 interface, CloudStack; AJAX, JAX-RS, ASP.NET MVC and ASP.NET Core), non-RESTful (SOAP and WSDL-based) web services (JAX-WS, Windows Communication Foundation), distributed objects/ components (Enterprise Java Beans, .NET Remoting, CORBA).

The book presents two projects that can be used to illustrate the practical use of middleware, and provides implementations of these projects over different technologies.

This versatile and class-tested textbook is suitable (depending on chapters selected) for undergraduate or first-year graduate courses on client server architectures, middleware, and cloud computing, web services, and web programming.

Table of Contents

THE DIFFERENT PARADIGMS

Introduction

Introduction

What is Middleware

Technology Review: Sockets

Brief Introduction to Other Middlewares

Introduction to Environmental Monitoring Project

Introduction to Sailboat Marina Management Project

Software Architectural Styles/Patterns for Middleware

Just What is a "Software Architecture," anyway?

Architectural Styles/Patterns

Architectural Styles/Patterns for Middleware

Architectural Styles/Patterns for Distributed Object-Oriented Components

Architectural Styles/Patterns for Service-Oriented Architectures

Architectural Styles/Patterns for Web Services

Architectural Styles/Patterns for Cloud Computing

ENABLING TECHNOLOGIES FOR MIDDLEWARE

Introduction to Internet Technologies

Just What is the Internet, Anyway?

Brief Introduction to TCP/IP and UDP

IP addresses (IPv4 and IPv6) and Subnetting

Port Numbers

Other Important Network Information

Universally Unique Identifiers

Introduction to World Wide Web Technologies

Just What is the Web, Anyway?

Hypertext Transfer Protocol (HTTP)

HTML and XML and HTML Forms

XML Schema Basics

JavaScript Object Notation (JSON)

Internet Media Types (MIME Types)

Base 64 Encoding

URL Encoding and URL Base 64 Encoding

Domain Names and Domain Name Servers

Document Object Model (DOM) and Browser Object Model (BOM)

Popular Web Servers

cURL

Security Basics

Just Why Should Anyone Care about Security, Anyway?

Symmetric Key Cryptography and Asymmetric Key (Public Key) Cryptography

Hash (Message Digest) Functions

Digital Signatures and Message Authentication Codes

Public Key Infrastructure and Certificate Authorities

Transport Layer Security, Secure Sockets Layer, and HTTPS

Cryptographic Message Syntax

Microsoft Technologies Basics

Microsoft "world" vs the rest of the world

Dynamic Link Library Files and Windows Side by Side

Common Language Runtime (CLR)

Global Assemblies Cache

Named Pipes in Windows

Cloud Technologies Basics

What You Need to Know for the Cloud

Just what are Disk Images and Virtual Machine Images anyway?

Just what are Hypervisors and Virtual Machines, Anyway?

Software Defined Networking (SDN)

Virtualization Security

Cloud Security

MIDDLEWARE USING DISTRIBUTED OBJECT-ORIENTED COMPONENTS

Distributed Object-Oriented Components

Just What do We Mean by "Object-Oriented Middleware" and "Component Middleware" Anyway?

Technology Review: Common Object Request Broker Architecture (CORBA)

Technology Review: .NET Remoting

Technology Review: Enterprise Java Beans (EJB)

MIDDLEWARE USING WEB SERVICES

Web Services Architectures

Web Services Architectures

Service Oriented Architectures (SOA)

RESTful Architectural Style and non-RESTful vs. RESTful Web Services

non-RESTful Web Services

Just what do we mean by "non-RESTful Web Services," Anyway?

SOAP Messaging Protocol

Technology Review: Web Services Description Language (WSDL)

Technology Review: Java API for XML Web Services (JAX-WS)

Technology Review: Windows Communication Foundation (WCF)

RESTful Web Services

Just what do we mean by "RESTful Web Services," Anyway?

Technology Review: AJAX

Technology Review: Java Servlets

Technology Review: Java API for RESTful Web Services (JAX-RS)

RESTful Web Services in .NET

RESTful Web Services in .NET

Technology Review: Windows Communication Framework—RESTful

Technology Review: ASP.NET Model View Controller and ASP.NET CORE

MIDDLEWARE FOR THE CLOUD

Introduction to the Cloud and Introduction to the OpenStack Cloud

Just What is a Cloud, Anyway?

Why the Cloud? Why not the Cloud? And who are the Clouds?

OpenStack Cloud

Technology Review: OpenStack RESTful Interface

Introduction to Amazon Web Services and Introduction to the Cloudstack Cloud

Amazon Web Services Cloud

Technology Review: Amazon Web Services EC2 RESTful Interface

CloudStack Cloud

MESSAGE ORIENTED MIDDLEWARE

Message-Oriented Middleware

Just what is Message Oriented Middleware, Anyway?

Point to Point versus Publish/Subscribe

When would you want to use Message Oriented Middleware?

What Middleware Technologies Can Be Described as Message Oriented Middleware?

CORBA Event Service and CORBA Notification Service

Java Message Service and Message Beans

Object Management Group (OMG) Data Distribution Service (DDS)

COMPARISON OF MIDDLEWARES

Comparison of Middlewares

How can Different Middlewares Be Compared, Anyway?

How do Middleware Technologies map to Our Selected Architectural Styles/Patterns?

Middleware Performance, Quality, and Ease of Learning Comparisons

Architecture Tradeoff Analysis

About the Author

Letha Hughes Etzkorn is a Professor of Computer Science at the University of Alabama, Huntsville.

Subject Categories

BISAC Subject Codes/Headings:
COM051230
COMPUTERS / Software Development & Engineering / General
COM060000
COMPUTERS / Internet / General
MAT000000
MATHEMATICS / General