Service-Oriented Computing and System Integration: Software, IoT, Big Data, and AI as Services

Author(s): Yinong Chen, GENNARO DE LUCA

Edition: 8

Copyright: 2022


Details: Ebook w/KHQ | 365 days |



Service-Oriented Computing and System Integration: Software, IoT, Big Data, and AI as Services focuses on service-oriented computing, web application development, and service-oriented system integration. It covers WSDL services, RESTful services, their development and applications, XML and related technologies, Web data management and database accesses, architecture-driven approach, workflow-based software integration, device and IoT integration, as well as the latest technologies in big data processing, cloud computing, machine-learning, artificial intelligence, and cross-platform mobile/phone application development. The book teaches both principles and hands-on programming skills, leading to operational software development. Exercises, practice questions, and projects are provided at the end of each chapter to help students review and apply what they have learned.

Part I Distributed Service-Oriented Software Development and Web Data Management

Chapter 1 Introduction to Distributed Service-Oriented Computing

1.1 Computer Architecture and Computing Paradigms

1.1.1 Computer Architecture

1.1.2 Software Architecture

1.1.3 Computing Paradigms

1.2 Distributed Computing and Distributed Software Architecture

1.2.1 Distributed Computing

1.2.2 N-Tier Architecture

1.2.3 Distributed Object Architecture

1.3 Service-Oriented Architecture and Computing

1.3.1 Basic Concepts and Terminologies

1.3.2 Service-Oriented Computing

1.3.3 Object-Oriented Computing versus Service-Oriented Computing

1.3.4 Service-Oriented System Engineering

1.4 Service-Oriented Software Development and Applications

1.4.1 Traditional Software Development Processes

1.4.2 Service-Oriented Software Development

1.4.3 Applications of Service-Oriented Computing

1.4.4 Web Application Composition

1.5 Enterprise Software Development

1.6 Discussions

1.7 Exercises and Projects

Chapter 2 Distributed

2.1.1 Getting Started with C# and .Net

2.1.2 Comparison between C++ and C#

2.1.3 Namespaces and the “using” Directive

2.1.4 Class and Object in C#

2.1.5 Parameters: Passing by Reference with ref & out

2.1.6 Base Class and Base Calling Class Constructor

2.1.7 Constructor, Destructor, and Garbage Collection

2.1.8 Pointers in C#

2.1.9 C# Unified Type System

2.2 Memory Management and Garbage Collection

2.2.1 Static Variables and Static Methods

2.2.2 Runtime Stack for Local Variables

2.2.3 Heap for Dynamic Memory Allocation

2.2.4 Scope and Garbage Collection

2.3 General Issues in Multitasking and Multithreading

2.3.1 Basic Requirements

2.3.2 Critical Operations and Synchronization

2.3.3 Deadlock and Deadlock Resolving

2.3.4 Order of Execution

2.3.5 Operating System Support for Multitasking and Multithreading

2.4 Multithreading in Java

2.4.1 Creating and Starting Threads

2.4.2 Thread Synchronization

2.4.3 Synchronized Method

2.4.4 Synchronized Statements

2.5 Multithreading in C#

2.5.1 Thread Classes and Properties

2.5.2 Monitor

2.5.3 Reader and Writer Locks

2.5.4 Mutexes

2.5.5 Semaphore

2.5.6 Coordination Event

2.6 Event-Driven Programming

2.6.1 Exception Handling

2.6.2 Event-Driven Programming Concepts and Mechanisms

2.6.3 Case Study: An Electronic Commerce Application in Event-Driven Approach

2.7 Multithreading Performance

2.7.1 Amdahl’s Law

2.7.2 Multithreading Experiments

2.8 Discussions

2.9 Exercises and Projects

Chapter 3 Essentials in Service-Oriented Software Development

3.1 Service-Oriented Software Development Environments

3.1.1 Overview

3.1.2 Windows Communication Foundation

3.1.3 Service Interface: Address, Binding, and Contract

3.2 Service Provider: Creating and Hosting Services

3.2.1 Getting Started with Developing WCF Services

3.2.2 Testing Web Services in WCF Test Client

3.2.3 Writing a Console Application to Consume a WCF Service

3.2.4 File Service and Data Management

3.2.5 Hosting Your Web Services as a Service Provider

3.2.6 Source Code Deployment and Precompiled Code Deployment

3.3 Service Brokers: Publishing and Discovering Services

3.3.1 An Ideal Service Broker with All Desired Features

3.3.2 UDDI Service Registry

3.3.3 ebXML Service Registry and Repository

3.3.4 Ad Hoc Registry Lists

3.4 SOAP and HTTP

3.4.1 SOAP Format

3.4.2 HTTP

3.4.3 SOAP over HTTP

3.5 WSDL: Web Services Description Language

3.5.1 Elements of WSDL Documents

3.5.2 WSDL Document Example

3.6 Service Requesters: Building Applications Using Services

3.6.1 Connecting Endpoint and Proxy

3.6.2 Creating a Windows Forms Application in ASP.Net

3.6.3 Developing a Website Application to Consume WCF Services

3.7 Web Service Testing and Dynamic Service Invocation

3.7.1 Get Web Content from URL

3.7.2 Analyze WSDL Document

3.7.3 Test Web Service through Dynamic Proxy

3.7.4 Test Web Service Using Independent Tools

3.7.5 Dynamic Web Services and Web Applications

3.8 Java-Based Web Service Development

3.8.1 Web Application Building Using AJAX Programming

3.8.2 Java-Based Web Service Development and Hosting

3.9 Discussions

3.10 Exercises and Projects

Chapter 4 XML and Web Data Formats

4.1 XML Fundamentals

4.1.1 XML versus HTML

4.1.2 XML Syntax

4.1.3 XML Namespaces

4.2 XML Data Processing

4.2.1 DOM: Document Object Model

4.2.2 SAX: Simple API for XML

4.2.3 XML Text Writer

4.2.4 XML Processing in Java

4.3 XPath

4.4 XML Type Definition Languages

4.4.1 XML Document Type Definition (DTD)

4.4.2 XML Schema

4.4.3 Namespace

4.4.4 XML Validation

4.5 Extensible Stylesheet Language

4.6 Other Web Data Formats

4.6.1 XHTML 

4.6.2 RSS

4.6.3 Atom

4.6.4 JSON

4.6.5 HTML5

4.6.6 Google Protocol Buffers and BigTable

4.7 Discussions

4.8 Exercises and Projects

Chapter 5 Web Application and State Management

5.1 Models of Web Applications

5.1.1 Pure HTML-Based Web Application

5.1.2 Client-Side Scripting

5.1.3 Server-Side Scripting and Code-Behind Page Computing

5.1.4 Client-Side Out-of-Browser Computing

5.2 Web Application Structure and Architecture

5.2.1 Components of Web Applications

5.2.2 Server Controls

5.2.3 User Controls

5.2.4 Web Application Configuration

5.2.5 Global Application Class

5.2.6 Dynamic Link Library and Package

5.3 State Management 

5.3.1 Overview of State Management Techniques

5.3.2 View State

5.3.3 View State Security and Machine Key 

5.3.4 Session State 

5.3.5 Cookies 

5.3.6 Session State and Cookies

5.3.7 Application State and Service Execution Model

5.4 Save User Data to Server File System

5.4.1 File System and Standard File Operations

5.4.2 Reading and Writing XML Files

5.5 Caching and Recommendation

5.5.1 Output Caching

5.5.2 Fragment Caching

5.5.3 Data Caching

5.6 Dynamic Graphics Design and Generation

5.6.1 Dynamic Graphics

5.6.2 Getting Started with Dynamic Graphics Generation

5.6.3 Generating Dynamic Graphics in User Control

5.7 Discussions

5.8 Exercises and Projects

Chapter 6 Dependability of Service-Oriented Software

6.1 Basic Concepts

6.1.1 Dependability

6.1.2 Dependability Attributes and Quality of Service

6.1.3 Security Issues in SOA Software

6.1.4 Reputation Management System

6.2 Access Control in Web Applications

6.2.1 IIS and Windows-Based Security Mechanisms 

6.2.2 Forms-Based Security

6.2.3 Forms-Based Security with Self-Registration

6.2.4 User Registration Using the Built-in Account Management

6.3 Encryption and Decryption

6.3.1 Developing Encryption and Decryption Service in WCF

6.3.2 Developing a Secure Hashing Service in WCF 

6.3.3 WCF Service Client

6.3.4 Error Control Code

6.3.5 Secure Sockets Layer Cryptographic Protocols

6.4 Dependable Computing in Windows Communication Foundation

6.4.1 WS-Security

6.4.2 WS-Reliability

6.4.3 Transactions

6.5 Discussions

6.6 Exercises and Projects

Part II Advanced Service-Oriented Computing and System Integration

Chapter 7 Advanced Services and Application Development

7.1 Self-Hosting Services

7.1.1 Developing a Service and a Hosting Service

7.1.2 Developing Clients to Consume Self-Hosting Services

7.2 Advanced WCF Services

7.2.1 Advanced Communication Models

7.2.2 Advanced Bindings

7.2.3 Service Behavior and State Management

7.3 REST Concept and RESTful Services 

7.3.1 REST Concept and REST Architecture

7.3.2 RESTful Service

7.3.3 Microservices

7.3.4 Developing RESTful Service

7.3.5 Developing an Image Verifier in RESTful Service

7.3.6 Consuming Simple RESTful Service 

7.3.7 Google RESTful Services: Map Services

7.3.8 Making Asynchronous Calls to RESTful Services

7.3.9 RESTful Service-Based Web Application Description Language

7.4 Advanced Web Application Architecture

7.4.1 ASP .Net Forms-Centric Architecture

7.4.2 HTML5 on ASP .Net Core Framework

7.4.3 MVC Architecture on ASP .Net Core Framework

7.4.4 MVC Web Application Development Example

7.5 Discussions

7.6 Exercises and Projects

Chapter 8 Enterprise Software Development and Integration

8.1 Overview of Composition Languages

Workflow Foundation

8.2.1 Architecture and Components

8.2.2 Creating a WF Flowchart

8.2.3 Creating Custom Code Activity for Workflow Application

8.2.4 Implementing Finite State Machine in Workflow

8.2.5 Creating Services and Persistence Services Using Workflow

8.3 BPEL

8.3.1 BPEL Activities and Constructs

8.3.2 BPEL Process

8.3.3 WSDL Interface Definition of BPEL Process

8.3.4 BPEL Process

8.3.5 An Example Invoking Real Web Services

8.4 Stateless versus Stateful Web Services 8.4.1 BizTalk’s Singleton Object Approach

8.4.2 BPEL’s Correlation Approach

8.5 Frameworks Supporting BPEL Composition

8.5.1 Oracle SOA Suite

8.5.2 ActiveBPEL

8.5.3 BizTalk

8.5.4 Simple Workflow Service

8.6 Message-Based Integration

8.6.1 Java Message Service

8.6.2 Microsoft Message Queue

8.6.3 Database-Supported Messaging

8.6.4 E-mail Supported Messaging

8.6.5 Enterprise Service Bus

8.7 Other Composition Languages 

8.7.1 SCA/SDO

8.7.2 WSFL: Web Services Flow Language

8.8 Discussions

8.9 Exercises and Projects

Chapter 9 IoT, Robotics, and Device Integration via Visual Programming

9.1 Introduction

9.1.1 Internet of Things

9.1.2 Service-Oriented Robotics Computing

9.1.3 Event-Driven Robotics Applications

9.2 Robot as a Service

9.2.1 Robot as a Service Definition

9.2.2 Robot as a Service Design 

9.2.3 Robot as a Service Implementation

9.3 Robotics Developer Studio and Visual Programming Language

9.3.1 MRDS and VPL Overview

9.3.2 Application Development in MRDS and VPL

9.4 VIPLE: A New Visual Programming Language

9.4.1 ASU VIPLE versus Microsoft VPL

9.4.2 Service-Oriented Computing: RESTful, WSDL, and VIPLE Service

9.4.3 Workflow with Code Activities

9.4.4 Finite State Machine 

9.4.5 Event-Driven Programming

9.5 Robot Programming and Maze Navigation

9.5.1 VIPLE Robot Services

9.5.2 Maze Navigation Algorithms in Finite State Machine

9.5.3 Maze Navigation Algorithms Using Unity Simulator

9.5.4 Maze Navigation Algorithms Using Web Simulator

9.5.5 Maze Navigation Using Lego EV3 Robot

9.6 Different Platforms Supported by VIPLE

9.6.1 Open Interface between VIPLE and Device

9.6.2 Connecting VIPLE to Open Architecture Robots

9.6.3 Using Robot Motion Service to Control Complex Robots

9.7 Autonomous Driving in Simulation Environment

9.7.1 A Simple Autonomous Driving Program

9.7.2 An Improved Autonomous Driving Program

9.7.3 Traffic Simulation and Programming

9.8 Discussions

9.9 Exercises and Projects

Chapter 10 Interfacing Service-Oriented Software with Databases

10.1 Database Systems and Operations

10.2 Relational Databases in Service-Oriented Software

10.2.1 Installing a Database

10.2.2 Interface between Database and Software 

10.2.3 SQL Database in ADO .Net

10.2.4 DataAdapter and DataSet in ADO .Net

10.3 LINQ, Language Integrated Query

10.3.1 What Is the Purpose of LINQ?

10.3.2 Lambda Expressions

10.3.3 LINQ to Object

10.3.4 LINQ to SQL

10.3.5 LINQ to XML

10.3.6 GraphQL

10.4 XML-Based Database and Query Language XQuery

10.4.1 Expressing Queries

10.4.2 Transforming XML Document .

10.4.3 XQuery Discussions

10.5 Discussions

10.6 Exercises and Projects

Chapter 11 Big Data Processing and Cloud Computing

11.1 Big Data Systems and Management

11.1.1 Big Data Concepts

11.1.2 Big Data Management

11.2 Big Data Processing and Analytics

11.2.1 Map and Reduce

11.2.2 Hadoop and Cassandra 

11.2.3 Big Data Simulation in VIPLE

11.2.4 Apache Pig

11.2.5 Big Data Analytics

11.3 Big Data Applications and Case Studies

11.3.1 Big Data Applications in Different Domains

11.3.2 Recommender System

11.4 Cloud Computing 

11.4.1 Definitions

11.4.2 Software Engineering and Software Architecture Leading to Cloud Computing

11.4.3 Software as a Service and Multitenancy

11.4.4 Platform as a Service

11.4.5 Infrastructure as a Service and Data Center

11.5 Discussions

11.6 Exercises and Projects

Chapter 12 Artificial Intelligence and Machine Learning 

12.1 Development of Artificial Intelligence and Machine Learning

12.2 From Traditional Programming to AI Programming

12.3 Machine Learning Case Study on Traffic Sign Recognition

12.3.1 Using Traditional Programming

12.3.2 Using Machine Learning 12.3.3 Machine Learning Experiments

12.4 Machine Learning Case Study on Flight Path Recognition

12.4.1 Flight Activity Recognition

12.4.2 Implementation

12.4.3 Experiment and Configurations

12.5 Machine Learning Case Study on Network Traffic Monitoring

12.6 Ontology

12.6.1 Ontology Language RDF

12.6.2 RDF Schema

12.6.3 Reasoning and Verification in Ontology

12.6.4 Web Ontology Language OWL

12.6.5 OWL-S and Semantic Web Services

12.6.6 Linked Data

12.6.7 Ontology Development Environments

12.7 Discussions

12.8 Exercises and Projects

Chapter 13 Mobile Computing and Application Development

13.1 Introduction

13.2 Xamarin

13.3 Mobile Application Architectures

13.3.1 Three-Layer Architecture

13.3.2 MVC Architecture

13.3.3 MVVM Architecture

13.4 XAML

13.4.1 XAML Basics

13.4.2 Xamarin Layouts

13.4.3 Xamarin Controls

13.4.4 Animations 

13.5 VIPLE Connection Example

13.6 Encrypt-Decrypt App Example

13.7 Discussions 

13.8 Exercises and Projects

Part III Appendices: Tutorials on Service-Oriented System Development

Appendix A Web Application Development

A.1 Design of Graphical User Interface

A.2 Discovering Web Services Available Online

A.3 Access Web Services in Your Program: ImageService

A.4 Access Web Services in Your Program: Weather Forecasting Service

A.5 Access Web Services in Your Program: USZip Service

Appendix B Visual IoT/Robotics Programming Language Environment

B.1 Introduction to VIPLE 

B.1.1 Basic Activities in VIPLE Toolbox 

B.1.2 Built-in VIPLE Services B.2 Getting Started with VIPLE Programming

Ex. 1. “Hello World” in VIPLE

Ex. 2. Favorite Movie

Ex. 3. Create While Loop Block Using Merge and If Activities

Ex. 4. Creating While Loop Block Using the While Activity

Ex. 5. Creating an Activity

Ex. 6. Creating Counter Activity

Ex. 7. Build a 2-1 Multiplexor

Ex. 8. Convert an Activity into a Service

B.3 Building Larger Systems Using Modules

Ex. 1. Creating an AND Gate in VIPLE 

Ex. 2. Creating OR, NOT, and XOR Gates 

Ex. 3. Build a 1-bit Adder

Ex. 4. Build a 2-1 Multiplexor and a 4-1 Multiplexor 

Ex. 5. Build a 1-Bit ALU

Ex. 6. Automated Testing 

Ex. 7. Create Automated Testing for ALU Ex. 8. Create a 4-Bit ALU

Ex. 9. Drive-by-Wire Simulation

B.4 Exercises and Projects

Appendix C ASU Repository of Services and Applications 



Yinong Chen

Yinong Chen received his Ph.D. from the Karlsruhe Institute of Technology (KIT), formerly known as the University of Karlsruhe, Germany, in 1993. He did postdoctoral research at KIT and at LAAS-CNRS – France between 1993 and 1995. From 1994 to 2000, he was a faculty member at Wits the University at Johannesburg, South Africa. Dr. Chen joined Arizona State University in 2001 and is a principal lecturer and the director of IoT/Robotics Education Lab.

Dr. Chen’s primary research interests are in software engineering, programming languages, service-oriented computing, Robot as a Service, Internet of Things, and computer science education ( He is the co-inverter of the VIPLE – Visual IoT/Robotics Programming Language Environment ( He (co-) authored a dozen books and over 200 technical papers in these research areas. Dr. Chen is an associate editor of the International Journal of Simulation and Process Modelling (IJSPM) since Jan 2004, an area editor of the Elsevier journal Simulation Modeling Practice and Theory, since Jan 2006, an editorial board member of the Journal of Systems & Software (JSS), since Jan 2004, and an editorial board member of the CAAI Transactions on Intelligence Technology, since Jan 2016. Dr. Chen has taught a wide variety of computer science and engineering courses, ranging from freshman, sophomore, junior, senior, and graduate courses, at Wits University and at Arizona State University. He received two consecutive Teacher of the Year awards in 2008 and in 2009 from the School of Computing and Informatics at Arizona State University.


Gennaro De Luca received his Ph.D. from Arizona State University (ASU) in 2020. He won multiple top prizes during his study, including Intel Cup, Intel Cornell Cup, Intel® IoT Roadshow Hackathon, and Microsoft Imagine Cup. He began working as a full lecturer in 2020 in the Information Technology department at Arizona State University. Dr. De Luca teaches a variety of courses, including freshman and sophomore programming languages, senior mobile application development and capstone, and various graduate-level topics.

Dr. De Luca’s primary research interests are in quantum computing, artificial intelligence, machine learning, computer science education, workflow programming, and robotics ( He has (co-)authored multiple research papers and textbook chapters on VIPLE, the Visual IoT/Robotics Programming Language Environment (, which he co-invented. His current work focuses on near-team quantum computing and its various applications, such as machine learning.

Related ISBN's: 9781792496448, 9781792494178

Ebook Package



ISBN 9781792496448

Details Ebook w/KHQ 365 days