What's New in EAP 7?: Undertow Web Server
What's New in EAP 7?: Undertow Web Server
What's New in EAP 7?: Undertow Web Server
If you are arriving from a JBoss EAP 6 environment you will be eager to
know about the highlights of the new platform. Broadly speaking, the
changes encompass both the server administration area and the Java
Enterprise APIs that can help to provide applications on it. We will start by
introducing the new administrative features and then we will briefly mention
the API highlights.
The administrative features are described as follows:
Undertow web server: JBoss Web has for quite a long time been the
face of the web application server. Although compatible with
Servlet/JSP Specifications it has kept the long-term legacy with Tomcat.
The new Undertow web server has been built from scratch using the
best-of-breed Java IO API. Some of its core features include nonblocking
NIO based APIs, a lightweight and fully embeddable
architecture based on pluggable handlers, and support for WebSockets,
including JSR-356 and the HTTP Upgrade mechanism. Besides this,
Undertow is capable of working as a reverse proxy or load balancer for a
clustered application server, opening the door to the full JBoss clustering
platform.
Support for HTTP/2: The new web server architecture supports the
new version of the HTTP protocol, named HTTP/2. HTTP/2 aims to
reduce latency and make efficient use of the TCP connection by means
of binary framing, request/response multiplexing, header compression
(HPACK) and more.
New life cycle modes: It is now possible to suspend and resume the
execution of the application server. This allows active
sessions/requests/in-flight-txs to complete and can be used for a
graceful server shutdown scenario.
ORB Switch: The new version of the application server has switched to
OpenJDK ORB which provides better interoperability with other
vendors compared with the earlier JacORB implementation.
The Java EE 7 API highlights are related to the the Java EE 7 (JSR 342)
specification is an umbrella specification which encompasses 33 single
specifications. There have been brand new technologies and
improvements of existing ones.
Here is a short list of Java EE 7 drivers:
JSR-352 batch applications for the Java platform, featuring a new API
for an XML-based job specification language and a runtime API.
JSR-236 concurrency utilities for JavaEE, providing a simple and
standard API for using multiple threads from Java Enterprise
components.
JSR-353 Java API for JSON Processing (JSON-P). This API can be
used to parse, transform, and query JSON data.
JSR-356 WebSockets support, featuring a full-duplex communication
channel between the client and the server by means of simple
annotations and life cycle callbacks.
Besides the new additions, some updates have been released to existing
services. The most notable ones are as follows:
JSR-345, which includes EJB 3.2, plus Interceptors 1.2 and Annotations
1.2
JSR-340, featuring Servlet 3.1: non-blocking I/O, HTTP upgrade, and so
on
JSR-342, including the JMS 2.0 API that delivers a JMSContext
resource as a wrapper for JMS resources
JSR-344 JSF 2.2: HTML 5, FaceFlows, Stateless views, Resource lib
*** Default Protocol used by Jboss’s are Http, Https, and Ajp
** Overview of deployments **
Deployment of Application (as WAR, EAR, JAR)
Java applications can categorize at least three types of application: --
Java Archive, Web Archive, and Enterprise Archive.
Each of the previously mentioned application types have their own specific
extensions that are just for a readable purpose:
.jar - Java Archive
.war - Web Archive
. ear - Enterprise Archive
As a matter of fact, all of them are essentially ZIP archive files.
-: Verify of Deployment: -
# deployment-info --name=jbosshelloworld.war
***undeploy your application, you can use the undeploy command, as Follows:
# undeploy jbosshelloworld.war
@If you don't know the exact name of your application, you can list the
applications available to undeploy, as follows:
# undeploy -l
@ In case you just want to disable an application, for example, due to
maintenance, you can do as follows:
@You can effectively enable your application using the deploy command
followed by the name of the deployment, as follows:
Just press the blue Add button to add a new application as deployment. The
page should pop up the following interface:
Figure-B
By choosing Upload a new deployment and clicking the Next button, the
deployment wizard should prompt you to select the file you want to upload,
from the local filesystem, by pressing the Browse button.
Once you have selected the bundle, click the Next button, as follows:
As you can see, you can make your deployment available or not by checking
and unchecking the Enable flag.
You can confirm and terminate the deployment task by clicking the
Finish button.
Once done, your deployment appears in the list of deployments. Click on it to
see its details, as follows:
Requirement: -
At least 2 Physical Server Required Recommended 3 for better High-Availability
1. Act as a Domain Controller for Centralized Management of Application and all
slave host associated with it