"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
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 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
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
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
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)
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?
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
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
Letha Hughes Etzkorn is a Professor of Computer Science at the University of Alabama, Huntsville.
Featured Author Profiles
To gain access to the instructor resources for this title, please visit the Instructor Resources Download Hub.
You will be prompted to fill out a regist
- eResources Appendices (ZIP 2.43MB)
- eResources Chapter 18 - Sailboat Marina Project (PDF)
- eResources Chapter 17 - Environmental Monitoring Project (PDF)
Please visit our companion website for additional support materials.