m WebSphere

Key Points


References

Reference_description_with_linked_URLs_______________________Notes______________________________________________________________


https://jakarta.ee/release/JEE latest release
https://jakarta.ee/specifications/JEE specification docs
https://www.openliberty.io/Open Liberty
https://community.ibm.com/community/user/imwuc/communities/community-home/digestviewer?communitykey=5c4ba155-561a-4794-9883-bb0c6164e14e&tab=digestviewerWebSphere Community


https://developer.ibm.com/wasdev/docs/

WAS Dev docs

good tutorials on Docker etc

http://www.redbooks.ibm.com/abstracts/sg248170.html?OpenWAS 8.5 Liberty Profile docs
http://www.redbooks.ibm.com/abstracts/sg248194.html?OpenConfig open source with Liberty Profile
http://www.redbooks.ibm.com/abstracts/sg248076.html?OpenLiberty Developer Guide

https://www.openliberty.io/guides/microprofile-jwt.html

openliberty.io-Securing microservices with JSON Web Tokens.pdf

Secure microservices with JWT
https://developer.ibm.com/wasdev/docs/was-classic-or-was-liberty-how-to-choose/WAS or Liberty ?




https://ibm.ent.box.com/v/WASLibertyVPoT

https://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/wasdev/pot/

Liberty Q3 2019 update files - download just needed files for VPOT
https://drive.google.com/open?id=1jAp73uWr6RWQEdMo4-CloUFBaEHW15ZXLiberty Q3 2019 update presentation






https://www.ibm.com/blogs/cloud-computing/2016/04/07/increase-roi-122-percent-migrating-open-source/Liberty post on benefits vs Tomcat EE
https://www.ibm.com/garage/method/practices/learn/ibm-transformation-advisorIBM Cloud Transformation Advisor Tool




https://microshed.org/Testing in Liberty

Liberty easily creates apps in a Docker container





Key Concepts


Why Liberty?

lower cost simpler to run >>> consider Liberty license costs vs OpenLiberty ( no license fee ) ( different support models !! )

Features comparisons on WebSphere and Liberty 

https://www.ibm.com/docs/en/was-liberty/base?topic=management-liberty-features

Liberty missing some JEE EJB, batch, JMS and messaging features - designed for REST apis but not messaging

Liberty’s runtime is very compact and lightweight, making it particularly well-suited for virtualized infrastructure and cloud computing, for lightweight containers, and also for devices in the Internet of Things.

Liberty has Docker images


Micro profile API

https://openliberty.io/docs/latest/reference/microprofile-api.html

MicroProfile OpenAPI is a MicroProfile community programming model for the OpenAPI specification. MicroProfile OpenAPI helps you to generate structured documentation from your JAX-RS applications.

Other developers need relevant information to build an application that communicates with the REST API of your application. MicroProfile OpenAPI facilitates this communication by generating human and machine-readable documentation on a simple interface that doesn’t require access to the source code. You can implement MicroProfile OpenAPI for Open Liberty by enabling the MicroProfile OpenAPI feature.

code-first api docs

n the code-first approach, a developer can generate documentation of the REST API from the source code. The reference document that is produced lists all the API endpoints with descriptions of how to use them. Alternatively, 

design-first api docs

in the design-first approach, you can include a pre-generated OpenAPI document that was written separately from the code. The JAX-RS framework handles basic API generation for JAX-RS annotations and generates a skeleton OpenAPI treemap. You can use this treemap as a starting point and augment it with annotations and code to produce a complete OpenAPI document. Additionally, you can use this manually created documentation to generate stubs, or testable versions of code modules, such as client libraries for the API.

https://openliberty.io/docs/latest/reference/javadoc/microprofile-5.0-javadoc.html

OpenLiberty features

features are modules loaded to server to keep it tailored to use cases - not all JEE

fits with Docker

zero migration guarantee on new releases for configurations

can build pipelines and reactive messaging features that can be added in server.xml ( not in default microprofile )

pipeline processing

  • shared context across threads running synch or asynch

reactive messaging

  • integrates with Kafka, dbs, JMS

dev mode - mvn liberty:dev  // creates dynamic recompiles

microshed testing – create microservices in Docker add on // test mode only now

use jwt or openapi

postgres SQL in jpa now too

can query LIberty derby admini db to see what is running now as config


JEE Features in Liberty



Jakarta EE Platform

The Jakarta EE Platform defines a standard platform for hosting Jakarta EE applications.
Jakarta EE Web Profile

The Jakarta EE Web Profile defines a profile of the Jakarta EE Platform specifically targeted at web applications.
Jakarta Annotations

Jakarta Annotations defines a collection of annotations representing common semantic concepts that enable a declarative style of programming that applies across a variety of Java technologies.


Jakarta Authentication

Jakarta Authentication defines a general low-level SPI for authentication mechanisms, which are controllers that interact with a caller and a container's environment to obtain the caller's credentials, validate these, and pass an authenticated identity (such as name and groups) to the container.

Jakarta Authorization

Jakarta Authorization defines a low-level SPI for authorization modules, which are repositories of permissions facilitating subject based security by determining whether a given subject has a given permission, and algorithms to transform security constraints for specific containers (such as Jakarta Servlet or Jakarta Enterprise Beans) into these permissions.


Jakarta Batch

Jakarta Batch specifies a Java API plus an XML-based job specification language (JSL), which lets you compose batch jobs in XML from reusable Java application artifacts and conveniently parameterize different executions of a single job.


Jakarta Bean Validation

Jakarta Bean Validation provides an object level constraint declaration and validation facility for the Java application developer, as well as a constraint metadata repository and query API.


Jakarta Concurrency

Jakarta Concurrency provides a specification for using concurrency from application components without compromising container integrity while still preserving the Jakarta EE platform's fundamental benefits.


Jakarta Connectors

The Jakarta Connectors specification defines a standard architecture for Jakarta EE application components to connect to Enterprise Information Systems.


Jakarta Contexts and Dependency Injection

Jakarta Contexts and Dependency Injection defines a powerful set of complementary services that help to improve the structure of application code.


Jakarta Debugging Support for Other Languages

Jakarta Debugging Support for Other Languages provides a mechanism by which programs executed under the Java virtual machine but written in languages other than the Java programming language, can be debugged with references to the original source (for example, source file and line number references).


Jakarta Dependency Injection

Jakarta Dependency Injection specifies a means for obtaining objects in such a way as to maximize reusability, testability and maintainability compared to traditional approaches such as constructors, factories, and service locators (e.g., JNDI).


Jakarta Deployment

Jakarta Deployment defines standard APIs that will enable any deployment tool that uses the deployment APIs to deploy any assembled application onto a Jakarta EE compatible platform.


Jakarta Enterprise Beans

Jakarta Enterprise Beans defines an architecture for the development and deployment of component-based business applications.


Jakarta Enterprise Web Services

This specification defines the Web Services for Jakarta EE architecture.


Jakarta Expression Language

Jakarta Expression Language defines an expression language for Java applications.


Jakarta Interceptors

Jakarta Interceptors defines a means of interposing on business method invocations and specific events—such as lifecycle events and timeout events—that occur on instances of Jakarta EE components and other managed classes.


Jakarta JSON Binding

Jakarta JSON Binding defines a binding framework for converting Java(R) objects to and from JSON documents.


Jakarta JSON Processing

Jakarta JSON Processing defines a Java(R) based framework for parsing, generating, transforming, and querying JSON documents.


Jakarta Mail

Jakarta Mail defines a platform-independent and protocol-independent framework to build mail and messaging applications.


Jakarta Managed Beans

Jakarta Managed Beans defines a set of basic services for container-managed objects with minimal requirements, otherwise known under the acronym POJOs (Plain Old Java Objects).


Jakarta Management

Jakarta Management defines a standard management model for exposing and accessing the management information, operations, and parameters of the Jakarta EE Platform components.


Jakarta Messaging

Jakarta Messaging describes a means for Java applications to create, send, and receive messages via loosely coupled, reliable asynchronous communication services.


Jakarta Persistence

Jakarta Persistence defines a standard for management of persistence and object/relational mapping in Java(R) environments.


Jakarta RESTful Web Services

Jakarta RESTful Web Services provides a foundational API to develop web services following the Representational State Transfer (REST) architectural pattern


Jakarta Security

Jakarta Security defines a standard for creating secure Jakarta EE applications in modern application paradigms.


Jakarta Server Faces

Jakarta Server Faces defines an MVC framework for building user interfaces for web applications, including UI components, state management, event handing, input validation, page navigation, and support for internationalization and accessibility.


Jakarta Server Pages

Jakarta Server Pages defines a template engine for web applications that supports mixing of textual content (including HTML and XML) with custom tags, expression language, and embedded Java code, that gets compiled into a Jakarta Servlet.


Jakarta Servlet

Jakarta Servlet defines a server-side API for handling HTTP requests and responses.


Jakarta Standard Tag Library

Jakarta Standard Tag Library represents a set of tags to simplify the Jakarta Server Pages development.


Jakarta Transactions

Jakarta Transactions defines a standard that allows the demarcation of transactions and the transactional coordination of XA-aware resource managers as described in the X/Open XA-specification and mapped to the Java SE XAResource interface within Java applications.


Jakarta WebSocket

Jakarta WebSocket defines a API for Server and Client Endpoints for the WebSocket protocol (RFC6455).


Jakarta XML RPC

Jakarta XML-based RPC defines consistent Java APIs for using XML based RPC standards.


Jakarta XML Registries

Jakarta XML Registries describes Java API’s designed specifically for an open and interoperable set of registry services that enable sharing of information between interested parties. The shared information is maintained as objects in a compliant registry. All access to registry content is exposed via the interfaces defined for the Registry Services.




Potential Value Opportunities



Potential Challenges



Candidate Solutions



Step-by-step guide for Example



sample code block

sample code block
 



Recommended Next Steps