Mastering SOA and Java Web Services
Mastering SOA and JEE Web Services focuses on providing an understanding of the fundamental technologies used in web services. This understanding is critical to being able to diagnose, troubleshoot, tune, and perform other lifecycle activities. Students will leave the course armed with the required skills to design, implement, test, and support JEE web services.
This lab-intensive course provides students with hands-on experience with implementations of the Java XML and Web Service APIs including JAXP, JAXB, JAX-WS, JAX-RS, WSEE, and XWSS. In terms of Java, the focus is on using the JAX-WS, JAX-RS, and JAXB APIs and implementations as the basic for generating and deploying web services and service clients. SOA and Web Services represent a groundbreaking evolution in distributed computing. The concepts are not altogether new, but the application of them, and the unanimous acceptance of core standards like HTTP, XML, SOAP, WSDL, and the various WS-* policies, has paved the way for XML Web Services and service-oriented architectures. An overreaching concern related to services is security.
Course Key Learning Summary
After taking this course, students will be able to:
- Understand and apply the basic concepts of SOA to the identification and design of web services
- Understand the relationship between SOA and the entire spectrum of services from SOAP and RESTful services to microservices
- Understand and apply the basic concepts of SOA to the identification and design of web services
- Appreciate the concept of layered services including orchestration
- Understand and intelligently discuss Web Services and the core technologies involved
- Design, develop, and deploy real-world JEE Web Services
- Expose existing Java components as XML Web Services
- Write Java components that access remote Web Services hosted by a third party
- Read and understand a WSDL document
- Parse, process, and respond to a SOAP message
- Understand the concepts behind REST and implement a REST-based web service
- Use JAX-RS as the basis for implementing RESTful services in Java
- Implement handlers to inject cross-cutting solutions for security, logging, auditing, and other needs
- Work with WS-Security to protect content, resources, and other assets
- Understand and utilize web service-related design patterns
Mastering SOA and Java Web Services Course Topics
SOA Overview
- Services and SOA Defined
- Organizational Framework
- Technical Framework
- What is new in SOA
SOA: Standards
- Web services standards
- ESBs
- Leveraging business processes
- Challenge to adoption
- The SOAD Process
Web Services Overview
- Web Services Architecturally
- Spec and Standard Evolution
- Web Services Interoperability Organization
Java and Web Services
- Web Services, Java, and JEE
- JAXP, JAXB, and JAX-WS
- JEE and Web Services
- Web Services Stacks at a Glance
- Web Services Quick start
SOAP Overview
- Anatomy of a SOAP Message
- SOAP and HTTP
- SOAP Messaging
- Remote Procedure Calls
- The SOAP Envelope
- SOAP in Action
SOAP (Service Implementation with JAVA)
- Java API for XML-Based Web Services JAX-WS
- Java API for XML Processing (JAXP)
- Java Architecture for XML binding (JAXB)
- SOAP with Attachments API for Java (SAAJ)
- Handling Binary Data
- REST vs SOAP
REST CONCEPTS
Overview of REST and JAX-RS
-
- The REST Vision
- Use of HTTP
- Use of URIs
- Use of Content Types
- CRUD Operations and Business Operations
- HATEOAS and the Richardson Maturity Model
- JAX-RS
- Applications, Resources, and Providers
Configuration and Lifecycle
-
- The JAX-RS Application
- XML Configuration
- Annotation-Driven Configuration
- Applications
- Root Resource Classes
- Per-Request vs. Singleton Lifecycle
- Providers
Handling Requests
-
- The Application Path
- The @Path Annotation
- The HTTP Method Annotations
- Sub-Resource Locators
- Annotation Inheritance and overriding
- @XXXParam Annotations
- The @DefaultValue Annotation
- Parameter Types
- Parameter Converters
Producing Responses
-
- Supported Return Types
- The Response Class
- Response Entities
- Binary Content
- Delivering a File
Entity Translation
- Entity Parameter and Return Type
- Entity Providers
- @Consumes and @Produces Annotations
- Built-In Entity Providers
- Custom Entity Providers
Working with XML and JSON
-
- The JAXB Entity Provider
- Driving XML Representations from Schema
- Driving JSON Representations with JAXB
- JSON Without JAXB: Jackson, MOXy, etc.
- CRUD Patterns
- Error Handling
- Sub-Resources
Caching & Asynchronous interaction
Dependency Injection
-
- The @Context Annotation
- Injectable Types
- The Application Subclass
- Servlet Configuration and Context
- Impact of Lifecycle Policies
- Context Providers
- Using CDI
Validation and Error Handling
-
- Using Response
- Throwing WebApplicationException
- Exception Mapping Providers
- Selection of Exception Mappers
- Java EE Bean Validation
- Constraint Annotations
- Support for JSR-303
- Annotating Method Parameters
- Annotating Entity Classes
- Error Reporting
Generic Services
-
- Generic Entities
- Generic Entity Providers
- ParameterizedType
- Reflection-Driven Entity Providers
- Annotation Inheritance
- CRUD Patterns, II
- Serialization, Recursion, and Scope
- Dynamic Sub-Resources
Sub-Resources
-
- Significance of Sub-Resources
- Exposing Sub-Objects
- Exposing Collections
- Multiple Paths to Resources
- Exposing Actions
- Using Sub-Resource Locators
- Collection vs. Instance Services
The Client API
-
- The Builder Pattern
- Client
- WebTarget
- Invocation
- Managing Content Types and Entities
- Error Handling
- Registering Providers
- The Service Locator Pattern
- Generic Clients
Filters and Interceptors
-
- The Filter Interfaces
- Processing Pattern
- The Request and Response Context Interfaces
- Aborting a Request
- The Interceptor Interfaces
- Adaptive Streams
- Filters on the Client Side
- Interceptor Strategy for Hypermedia
Microservices Architecture
API Examples
-
- Postman Installation / Example
- No Authentication
- Basic Authentication
- Digest Authentication
- Bearer Token
Design Principles of Rest Security
-
- Use Hashed Password
- Validating Input Parameter
Using OAuth2
-
- Supported Authorization Grant Types in 2-Legged Authorization
- How Client Credentials Are Determined in 2-Legged Authorization
- Relationship of User Credentials, Client Credentials, and Subject in 2-Legged Authorization
Course Audience
- Java Developers
- Web Services Developers
- JEE developers and Architects
- Solution Architect
- Integration Specialist
- Solution Architects
Suggested Prerequisite
- Previous programming / web application development experience
International Student Fee : 900 USD
Internships, Freelance and Full-Time Work opportunities
Flexible Class Options
- Week End Classes For Professionals SAT | SUN
- Corporate Group Trainings Available
- Online Classes – Live Virtual Class (L.V.C), Online Training
Related Courses
Java Programming for Beginners
Java Developer Training (Java Course)
Mastering SOA and Java Web Services
Java Developer Fundamentals Training
Mastering Python for Machine Learning Course
PHP with MYSQL Web Development Course
Specialist Diploma Big Data Analytics Course with Machine Learning
Data Sciences with Python Course
[/vc_column_text]