BIRLA INSTITUTE OF TECHNOLOGY & SCIENCE, PILANI
WORK INTEGRATED LEARNING PROGRAMMES
COURSE HANDOUT
Part A: Content Design
Course Title Middleware Technologies
Course No(s) CSI ZG524/SE ZG589/SS ZG589
Credit Units 4
Course Author Mr Ravi Kiran Mallidi, Prof. Shan Balasubramaniam
Version No 1.0
Date Jun 25, 2018
Course Description
Evolution of Middleware Technologies: Transaction Processing, Remote Procedure Calls, Message-
Oriented-Middleware, Object Request Brokers, Web services and REST; Forms of Middleware: Enterprise
Middleware, Web Middleware, and Cloud / Services Middleware; Middleware Elements: communication
protocols, middleware protocols, data representation, server process control, naming and directory services,
security, system management; Select case studies such as MS .NET, J2EE. Service Oriented Architecture:
Loosely Coupled Systems, Business processes, Tiers, Architectural Choices; Resiliency in Middleware:
resiliency techniques, hardware failures, communication failures, software failures; Performance and
scalability in Middleware; Security in Middleware; Implementation Aspects: business process
implementation, enterprise integration, web and database middleware (e.g. NoSQL middleware) change
management. Case studies of Enterprise application architecture (EAI) - Eg. Tibco, Websphere
Course Objectives
No Objectives
CO1 Describe the architecture and applications of CORBA and its elements such as IDLs, naming
service, and demonstrate how to deploy an application on Application server such as JBoss
CO2 Demonstrate understanding of EAI concepts and deploy applications in Application Server such
as Apache Camel / Fuse ESB
CO3 Demonstrate ability to apply 64 design patterns, Message Oriented Middleware and clustering of
the application server (Apache Camel / Fuse ESB)
CO4 Compare different architectures in web based applications such as SOAP and REST, protocols in
Middleware, and demonstrate ability to deploy applications on a Cloud platform (such as AWS)
CO5 Describe the fundamentals of NoSQL Database, its usage along with middleware and
performance tuning of the application and server
Text Book(s)
No Author(s), Title, Edition, Publishing House
T1 INTRODUCTIONTOMIDDLEWARE (Web Services, Object Components,and Cloud
Computing) by Letha Hughes Etzkorn
T2 Java RMI (Designing & Building Distributed Applications) by William Grosso
Reference Book(s) & other resources
No Author(s), Title, Edition, Publishing House
R1 Enterprise Integration Patterns by Bobby Woolf
R2 MongoDB in Action
Content Structure
No Title of the Module References
M1 Introduction and Evolution T1, T2
Transaction Processing
Remote Procedure Calls (Marshalling, Stubs) (4Hrs.)
Messaging Middleware (Request Brokers)
CORBA as a standard
Remote Methods (Java RMI)
M2 Enterprise Middleware T1, R1
EAI,Enterprise Bus (e.g. TIBCO)and Publish-Subscribe Models
Real-time requirements (2Hrs.).
Security aspects
Business Processes and Middleware Implementations
M3 Middleware Design and Patterns T1, R1
Objects and Services vs. Messages and Requests
Lookup and Discovery – Registry and Broker Patterns (10Hrs.)
Message Formats and Protocols
Service Mediation
Failure and Resiliency – Availability, Recovery
Performance and Security
M4 Middleware for Web-based Application and Cloud-based Applications T1
Tiered Architectures and
Loosely Coupled Systems - Services (WS, REST, SOA), Services (10Hrs.)
Middleware
Deployment of applications on the cloud – middleware configurations
Cloud Middleware and usage (Load Balancers, Provisioning middleware,
Hybrid Cloud Infrastructure, Multi-cloud Infrastructure).
M5 Specialized Middleware T1
Peer-to-Peer systems and Middleware (Overlays, SuperPeers)
Performance Middleware (Caching, Content Distribution) (4Hrs.)
Middleware for NoSQL databases
Learning Outcomes:
No Learning Outcomes
LO1 Demonstrate understanding on CORBA and EJB’s, and ability to deploy applications in Java
servers
L02 Describe relevant integration concepts for middleware, integration patterns and usage, and
demonstrate ability to deploy applications in middleware servers
LO4 Describe the various architecture styles and usages, deploy applications and enable integration
between different systems by the application of the right protocol / communication between them
LO5 Describe the usage of NoSQL database in middleware, performance tuning and sizing of the
application server based on Load (Java)
Part B: Contact Session Plan
Academic Term First Semester 2024-2025
Course Title Middleware Technologies
Course No CSI ZG524/SE ZG589/SS ZG589
Lead Instructor PAWAN GUPTA
Course Contents
Contact List of Topic Title Text/Ref
Hours(#) (from content structure in Course Handout) Book/external
resource
1, 2 M1: Introduction and Evolution T1 – Chapter 1
Introduction to Transactions
Socket Data Structures
Synchronous and Asynchronous Operations
Distributed Object-Oriented Components
Introduction to RPC
Marshalling and Stubbing
3, 4 M1: Introduction and Evolution T1 – Chapter 8
Component Middleware (CM)
Object-Oriented Middleware (OOM)
CM Vs OOM
CORBA Basics
Interface Description Language (IDL)
CORBA IDL to Java Binding
CORBA Addressing
o Interoperable Object Reference
o Interoperable Naming Service
Sample Echo program
o Server Side
o Client Side
Packaging the Echo program
Deploying the Echo program in Application Server
5, 6 M2: Enterprise Middleware R1- Chapter 4
Introduction to EAI T1- Chapter 5
Introduction to Message Channels
o Point-to-Point
o Publish-Subscribe Model using JMS
Introduction to Security
o Symmetric and Asymmetric public key
o Digital Keys and Message Authentication Codes
o SSL
Enabling SSL for an application (CORBA program)
Enabling public-private key access (Sample Program
and deployment)
JMS Server Installation and Basic Configuration
JMS Sample and Deployment
7, 8 M3: Middleware Design and Patterns R1 – All Chapters
Integration Styles
EAI Patterns Overview
o Messaging Systems
o Messaging Channels
o Message Construction
o Message Routing
o Message Transformation
o Messaging End Points
9, 10 M3: Middleware Design and Patterns R1, Apache Camel
(http://camel.apache.or
Message Formats g)
Message Protocols
o Introduction to Apache Camel / Fuse ESB
o Apache Camel Supported Protocols
Installing Apache Camel / Fuse ESB
Configuring Apache Camel
Sample Application Creation and Deployment on
Apache Camel
11, 12 M3: Middleware Design and Patterns R1, Apache Camel
(http://camel.apache.or
Service Mediation g)
Message Routing
Examples on Routing and Mediation
Deploying the Samples on Apache Camel
13, 14 M3: Middleware Design and Patterns R1, Apache Camel
(http://camel.apache.or
Resiliency g)
o Recovery Option
Availability
o Load Balancing Capabilities
o Load balancing How to do
Application Deploying on Load Balancing Environment
15, 16 M3: Middleware Design and Patterns T1- Chapter 9, Apache
Camel
Performance (http://camel.apache.or
o Performance Testing
g)
o Installing JMeter and Usage
o Configuring JMeter Apache JMeter
o Capturing performance results using JMeter (https://jmeter.apache.
(Web Serices testing)
org)
Security
o Security Scan
o Security Testing
17, 18 M4: Middleware for Web-based Application and Cloud-based T1 – Chapter 9, 10, 11
Applications
Middleware Architectures – Recap
Middleware using Web Services
SOAP and Restful Services
SOAP Vs Restful
SOAP Message protocol
SOAP Message Formats
WSDL
Java API for XML Web Services (JAX-WS)
SOAP and JAX-WS Sample and deploying in Apache
Camel
19, 20 M4: Middleware for Web-based Application and Cloud-based T1 – Chapter 9, 10, 11
Applications
Recap of SOAP Services
Restful Web Services
Java API for XML Web Services (JAX-RS)
Samples on JAX-RS and deploying in Apache Camel
Communication between JAX-RS and JAX-WS
programs using Apache Camel
21, 22 M4: Middleware for Web-based Application and Cloud-based T1 – Chapter 9
Applications
Service Oriented Architecture (SOA)
Services Middleware
SOA Vs ESB
SOA Principles
Service Composition
SOA Maturity Levels
Examples are service orchestration and Deploying in
Different servers
23, 24 M4: Middleware for Web-based Application and Cloud-based T1- Chapter 13, 14
Applications
https://
AWS Cloud Basic aws.amazon.com/
Different Components in AWS Cloud
Provisioning the Linux / Windows Server https://github.com/
Installing Apache Camel in AWS Environment aws-samples
LAMBDA Introduction
LAMBDA usage in SOA context
Sample programs on AWS and LAMBDA
25, 26 M4: Middleware for Web-based Application and Cloud-based T1- Chapter 13, 14
Applications
https://github.com/
Basics on Hybrid Cloud Infrastructure aws-samples
Multi Cloud Infrastructure
Application communication between different clouds
Samples applications (Deployed in two different clouds
and communication channels)
Load balancer in Cloud Environment
27, 28 M5: Specialized Middleware R2
RDBMS Vs NoSQL Database
Installing NoSQL (MongoDB)
Configuring NoSQL (MongoDB)
Using NoSQL Data in Apache Camel
Samples on Data exchange between WS and NoSQL
Database
Provisioning NoSQL DB in AWS platform
29, 30 M5: Specialized Middleware https://
aws.amazon.com/
Web Services Caching caching/
Caching with AWS
Caching with ElasticCache (AWS)
Caching Use Case
Validate usage of Caching to improve performance of
the Application (Sample on Web Services)
31, 32 Revision: Recap on T1- All Chapters
CORBA
Web Services (JAX-WS, JAX-RS)
EAI Patterns
SOA Vs EAI
Apache Camel Installation and configuration
Implementing SSL on Application
Deploying the Loan Broker Application and usage
# The above contact hours and topics can be adapted for non-specific and specific WILP
programs depending on the requirements and class interests.
Lab Details
Title Access URL
Lab Setup Instructions
Lab Capsules
Additional References
Select Topics and Case Studies from business for experiential learning
Topic No. Select Topics in Syllabus for experiential learning Access URL
M1 Echo Example using Java T1 – Chapter 8,
(Contact CORBA Exercises Section 8.2.9 and
Hours 3, 4) 8.9.10
T1 – Chapter 8 –
CORBA Exercises
M3 Examples on Middleware (Apache Camel) https://
(Contact github.com/
Hours 9, apache/camel/
10) tree/master/
examples
M3 Examples on Message Routing (Apache Camel) https://
(Contact POJO Routing github.com/
Hours 11, apache/camel/
12) Spring Boot POJO tree/master/
examples
M3 Load Balancing Example using TCP / IP (Tomcat / Mina server) https://
(Contact github.com/
Hours 13, apache/camel/
14) tree/master/
examples
M3 Spring Security Example https://
(Contact Web Services Security Examples github.com/
Hours 15, apache/camel/
16) tree/master/
examples
M4 SOAP Services Samples Execution https://
(Contact github.com/
Hours 17, apache/camel/
18) tree/master/
examples
M4 Rest Services Samples Execution https://
(Contact github.com/
Hours 19, apache/camel/
20) tree/master/
examples
M4 Application Samples on AWS environment https://
(Contact LAMBDA Samples github.com/
Hours 23, apache/camel/
24, 25, 26) Example showing AWS-S3 tree/master/
examples
https://
github.com/aws-
samples
M5 Example showing Camel using DataBase (NoSQL https://
(Contact Example showing Camel using JDBC github.com/
Hours 27, apache/camel/
28, 29, 30) tree/master/
examples
Evaluation Scheme
No Name Type Duration Weight Day, Date, Session, Time
EC1 Quiz-1 20 questions, MCQ 5% September 1-10, 2024
Quiz-2 20 questions, MCQ 10% October 10-20, 2024
Quiz-3 20 questions, MCQ 10%
November 1-10, 2024
EC2 Mid Semester Test CLOSED BOOK 2 Hours 30% Saturday, 21/09/2024 (AN)
EC3 Comprehensive Open Book 2½ Hours 45%
Saturday, 30/11/2024 (AN)
Examination
Note - Evaluation components can be tailored depending on the proposed model.
Important Information
Syllabus for Mid-Semester Test (Closed Book): Topics in Weeks 1-8
Syllabus for Comprehensive Exam (Open Book): All topics given in plan of study
Evaluation Guidelines:
1. EC-1 consists of either two Assignments or three Quizzes. Announcements regarding the
same will be made in a timely manner.
2. For Closed Book tests: No books or reference material of any kind will be permitted.
Laptops/Mobiles of any kind are not allowed. Exchange of any material is not allowed.
3. For Open Book exams: Use of prescribed and reference text books, in original (not
photocopies) is permitted. Class notes/slides as reference material in filed or bound form is
permitted. However, loose sheets of paper will not be allowed. Use of calculators is
permitted in all exams. Laptops/Mobiles of any kind are not allowed. Exchange of any
material is not allowed.
4. If a student is unable to appear for the Regular Test/Exam due to genuine exigencies, the
student should follow the procedure to apply for the Make-Up Test/Exam. The
genuineness of the reason for absence in the Regular Exam shall be assessed prior to
giving permission to appear for the Make-up Exam. Make-Up Test/Exam will be
conducted only at selected exam centres on the dates to be announced later.
It shall be the responsibility of the individual student to be regular in maintaining the self-study
schedule as given in the course handout, attend the lectures, and take all the prescribed evaluation
components such as Assignment/Quiz, Mid-Semester Test and Comprehensive Exam according to
the evaluation scheme provided in the handout.