Java Microservices Boot Camp

Explore Microservices Design & Ecosystem, REST API, JAXRS & More

TT7345

Intermediate

3 Days

Course Overview

Geared for experienced Java developers, Java Microservices Boot Camp is a three day, lab-intensive services training course that introduces developers to the core concepts, principles, and Java implementations for microservices. Microservices continues the evolution of systems and applications being decomposed into smaller components that work together to accomplish larger business tasks and services. Microservices are single purpose, autonomous, and independently deployable.

This course provides a solid understanding of what microservices bring to the table and how to facilitate the implementation, deployment, and management of microservices using Java’s JAX-RS framework. Working within in a hands-on learning environment, guided by our expert team, attendees will learn to:

  • Understand the why and how of basic microservices
  • Understand the relationships between microservices and SOA, SOAP services, and other recent initiatives.
  • Understand the steps involved in the development of Microservices
  • Examine the ecosystem that surrounds and supports microservices, including a typical stack, monitoring, logging, containerizing, deploying and orchestrating microservices
  • Work with implemented microservices to package, deploy, and manage them.
  • Understand and work with the Cloud to scale microservices
  • Containerize microservices using Docker
  • Recognize and use best practices relative to designing and working with microservices
  • Understand and apply the basic concepts of REST
  • Understand and intelligently discuss the similarities and differences between RESTful services and SOAP-based services
  • Appreciate the security concerns associated with RESTful services
  • Design, develop, and deploy real-world RESTful Services
  • Implement RESTful services using JAX-RS to
  • Implement RESTful Java clients
  • Implement JAX-RS Filters and Interceptors
  • Design and implement asynchronous JAX-RS processing
  • If time permits, there is also coverage of OAuth and OpenID

Flex Hours! This course is available in both full-day format and Mini-Camp Short Course flex hours forma. Please see the Public Schedule dates below for options and dates.

Course Objectives

This “skills-centric” course is about 50% hands-on lab and 50% lecture, designed to train attendees in core RESTful development skills, coupling the most current, effective techniques with the soundest industry practices. Working within in a hands-on learning environment, guided by our expert team, attendees will learn to:

  • Understand the why and how of basic microservices
  • Understand the relationships between microservices and SOA, SOAP services, and other recent initiatives.
  • Understand the steps involved in the development of Microservices
  • Examine the ecosystem that surrounds and supports microservices, including a typical stack, monitoring, logging, containerizing, deploying and orchestrating microservices
  • Work with implemented microservices to package, deploy, and manage them.
  • Understand and work with the Cloud to scale microservices
  • Containerize microservices using Docker
  • Recognize and use best practices relative to designing and working with microservices
  • Understand and apply the basic concepts of REST
  • Understand and intelligently discuss the similarities and differences between RESTful services and SOAP-based services
  • Appreciate the security concerns associated with RESTful services
  • Design, develop, and deploy real-world RESTful Services
  • Implement RESTful services using JAX-RS to
  • Implement RESTful Java clients
  • Implement JAX-RS Filters and Interceptors
  • Design and implement asynchronous JAX-RS processing
  • If time permits, there is also coverage of OAuth and OpenID

Need different skills or topics?  If your team requires different topics or tools, additional skills or custom approach, this course may be further adjusted to accommodate.  We offer additional Web Services, Microservices, programming, design and security courses which may be blended with this course for a track that best suits your development objectives. Our team will collaborate with you to understand your needs and will target the course to focus on your specific learning objectives and goals.

Course Prerequisites

This is an intermediate level training course, designed for experienced Java developers and architects who need to identify, design, and implement web services. We will explore and apply the terminology, the specification, the processes and technologies specific to web services.  Students should have at least a year of practical development experience with Java and servlets, and should be familiar with XML and JSON.

Please see the Related Courses tab for specific Pre-Requisite courses, Related Courses that offer similar skills or topics, and next-step Learning Path recommendations.

Course Agenda

Please note that this list of topics is based on our standard course offering, evolved from typical industry uses and trends. We’ll work with you to tune this course and level of coverage to target the skills you need most.

Session: Microservices Overview

Lesson: Monolithic Versus Micro

  • Trend to reduce the monolithic nature of applications
  • Explain the principles and characteristics of microservices
  • Recognize both good and poor candidates for microservices

Lesson: Supporting and Managing Microservices

  • Scaling Microservices
  • Microservices Components
  • Circuit-Breakers
  • Load Management
  • Provisioning
  • Cloud Services

Lesson: Designing Microservices

  • Microservice Boundaries
  • Size of Deployable Unit
  • Communication Patterns
  • Microservice endpoints
  • Data Stores and Transaction Boundaries
  • Challenges with Microservices

Session: Working with REST

Lesson: Overview of REST

  • REpresentational State Transfer
  • REST Characteristics
  • REST Elements
  • REST Architectural Principles
  • REST and HTTP
  • REST/HTTP: Representation-Oriented
  • REST Design Principles
  • Tutorial: Working with Eclipse (JEE Version) and Apache TomEE
  • Lab: Working With REST

Lesson: Designing RESTful Services

  • Effectively Designing RESTful Services
  • Best Practices for Endpoint Definition
  • Using Query Parameters
  • Working with HTTP GET and DELETE
  • Working with HTTP PUT
  • Working with HTTP POST
  • Best Practices for HTTP Methods
  • Handling Additional Operations

Session: JAX-RS

Lesson: Introduction to JAX-RS

  • Understand some of the features of the JAX-RS framewor
  • Be familiar with process for implementing RESTful services
  • Be able to develop and deploy a simple REST service
  • How JAXB supports XML interoperability
  • How to use JAXB with JAX-RS
  • Lab: Introduction to JAX-RS

Lesson: @Path: URI Matching

  • JAX-RS mechanisms for mapping URIs to resource
  • How to use @Path expressions to map URIs
  • How to use @Path expressions to extract values from URIs
  • Lab: URI Matching JAX-RS

Lesson: JAX-RS Content Negotiation

  • JAX-RS built-in content handler
  • How to inject content handlers into service
  • Basics of working with JSO
  • Capabilities for HTTP content negotiatio
  • JAX-RS mechanisms for supporting content negotiation
  • Lab: Content Negotiation

Lesson: JAX-RS Request and Response

  • How information about the request can be injected into the resource
  • The different injection targets of the resource
  • How to build a ‘complex’ response
  • How to respond to a HTTP POST
  • The JAX-RS exception hierarchy
  • How exceptions can be mapped to response codes
  • Lab: The Reservation Service

Lesson: JAX-RS Client API

  • Be able to invoke a JAX-RS service using the client API
  • Understand the purpose of the WebTarget object
  • Be able to dynamically resolve path template values
  • Understand some of the return codes
  • Be able to filter client request and server responses
  • Lab: JAX-RS Clients

Lesson: JAX-RS Filters and Interceptors

  • Understand the purpose of JAX-RS filters
  • Be able to develop interceptors
  • Be able to define global filters and interceptors
  • Dynamically add interceptors and filters
  • Understand NameBinding
  • Lab: JAX-RS Filters and Interceptors

Lesson: Asynchronous JAX-RS

  • Be able to make asynchronous requests
  • Develop resources to process request asynchronously
  • Lab: Asynchronous JAX-RS

Session: The Microservices Ecosystem

Lesson: Working with Microservices

  • Typical Microservices Stack
  • Monitoring Microservices
  • Logging
  • Containerizing with Docker
  • Deploying into Docker
  • Orchestration of Microservices

Lesson: Microservice Best Practices

  • Motivation and Mindset
  • Minimum Viable Product
  • Challenges of Data and Data Islands
  • Spring Data and Microservices
  • PrePersist, PreUpdate, and Repository Interface
  • A DevOps-Style Microservice Life Cycle
  • Continuous Delivery Pipeline
  • Governance
  • Tracking APIs and API Consumers

Lesson: Microservice Patterns

  • Aggregator Pattern
  • Branch Pattern
  • Proxy Pattern
  • Chained Pattern
  • Shared Resources (Data) as a Pattern
  • Asynchronous Messaging Pattern
  • Circuit Breaker/Bulkhead Isolation Pattern
  • Continuous Integration/Delivery Pattern

Lesson: Microservice Anti-Patterns and Challenges

  • Shared Resources as an Anti-Pattern
  • Microservice Costs
  • When to Apply and NOT Apply
  • Data island’s
  • Dependency management
  • Cohesion Creep
  • Avoiding Versioning
  • Continuous Integration/Delivery Anti-Pattern

Time Permitting:

Lesson: Overview of OAuth and OpenID

  • OAuth 2.0 Terminology and Concepts
  • Usage Models
  • OAuth 2.0 Tokens
  • OpenID Connect Overview
  • OpenID Providers Spring OAuth2 Project

Course Materials

Student Materials: Each participant will receive a Student Guide with course notes, code samples, software tutorials, step-by-step written lab instructions, diagrams and related reference materials and resource links. Students will also receive the project files (or code, if applicable) and solutions required for the hands-on work.

Hands-On Setup Made Simple! Our dedicated tech team will work with you to ensure our ‘easy-access’ cloud-based course environment is accessible, fully-tested and verified as ready to go well in advance of the course start date, ensuring a smooth start to class and effective learning experience for all participants. Please inquire for details and options.

Raise the bar for advancing technology skills

Attend a Class!

Live scheduled classes are listed below or browse our full course catalog anytime

Special Offers

We regulary offer discounts for individuals, groups and corporate teams. Contact us

Custom Team Training

Check out custom training solutions planned around your unique needs and skills.

EveryCourse Extras

Exclusive materials, ongoing support and a free live course refresh with every class.

Mix, Match & Master!
2FOR1: Two Courses, One Price!

Enroll in *any* two public courses (for 2023 *OR* 2024 dates!) by December 31, for one price!  Learn something new, or share the promo!

Click for Details & Additional Offers

Learn. Explore. Advance!

Extend your training investment! Recorded sessions, free re-sits and after course support included with Every Course
Trivera MiniCamps
Gain the skills you need with less time in the classroom with our short course, live-online hands-on events
Trivera QuickSkills: Free Courses and Webinars
Training on us! Keep your skills current with free live events, courses & webinars
Trivera AfterCourse: Coaching and Support
Expert level after-training support to help organizations put new training skills into practice on the job

The voices of our customers speak volumes

Special Offers
Limited Offer for most courses.

SAVE 50%

Learn More