写点什么

Red Hat JBoss 团队发布 WildFly 8,全面支持 Java EE 7 并包含全新的嵌入式 Web 服务器

2014 年 2 月 14 日

Red Hat 的 JBoss 部门今天宣布 WildFly 8 正式发布。其前身是 JBoss Application Server。本次发布的版本完全支持 Java EE 7 规范,支持 Web 和 Full profile。WildFly 同时包含全新的 Web 服务器 Undertow、新的安全特性和补丁系统。补丁系统用于对正在运行的系统进行升级。

Undertow 是一个 Servlet 3.1 容器,也是 HTTP 管理接口的服务器。新产品支持 HTTP Upgrade ,它是 HTTP/1.1 RFC 的一部分,允许 HTTP 连接升级成另一种协议。最常用的是初始化 Web socket 连接,该连接允许浏览器和其它客户端启动一个全双工连接。

由于 HTTP Upgrade 允许你通过一个 HTTP 端口复用多种协议,因此不再需要多端口,防火墙配置也更加容易。WildFly 本身只使用两个端口:JNDI 和 EJB 调用基于 Undertow 子系统端口 8080,管理则基于 Web 管理端口 9090。

作为一个示例,连接建立起来后,初始 EJB 请求看起来的样子是这样的:

复制代码
GET / HTTP/1.1
Host: example.com
Upgrade: jboss-remoting
Connection: Upgrade
Sec-JbossRemoting-Key: dGhlIHNhbXBsZSBub25jZQ==

Undertow 回应客户端,表示允许升级并且已经完成升级:

复制代码
HTTP/1.1 101 Switching Protocols
Upgrade: jboss-remoting
Connection: Upgrade
Sec-JbossRemoting-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=

之后,socket 传递到 WildFly EJB 层,它看起来就像是普通的 EJB 连接。

在处理这个初始 HTTP 请求时,会有比较小的性能消耗,但是一旦它完成,性能将完全相同。同时,由于所需的端口数量减少了,因此整体效果预期将是正面的。Jason Greene 是 Red Hat JBoss 部门的 WildFly 经理和 JBoss EAP 平台架构师。他告诉 InfoQ:

因为要处理 HTTP 请求,因此在建立过程中会有一些额外开销。但是 Undertow 的效率确保这个开销非常低。在升级请求完成后,socket 的行为与非 HTTP 时一样,因此从那之后,性能也完全相同。由于影响如此之低,我们将其作为默认设置。WildFly 8 现在只有 2 个 HTTP 端口,一个用于管理,另一个用于应用。所有其它协议都共用这两个端口。

Undertow 也适用于嵌入模式。你可以使用 builder API 创建服务并注册 HTTP 处理程序,该处理程序以非阻塞方式处理请求。以下是 undertow.io 网站上的例子:

复制代码
public class HelloWorldServer {
public static void main(final String[] args) {
Undertow server = Undertow.builder()
.addListener(8080, "localhost")
.setHandler(new HttpHandler() {
@Override
public void handleRequest(final
HttpServerExchange exchange) throws Exception {
exchange.getResponseHeaders().put
(Headers.CONTENT_TYPE, "text/plain");
exchange.getResponseSender().send("Hello World");
}
}).build();
server.start();
}
}

Undertow 也允许你嵌入基于 Servlet API 的代码, GitHub 上有相关的例子。

对于新的 web 服务器,WildFly 8 也有不错的安全提升。此外还包括审计日志和以角色为基础的安全模型。

审计系统将确保管理模型的所有操作都记录到日志中,日志可以写到本地文件或者服务器。

WildFly 同时提供两个访问控制器,“简单”的那个与 AS 7 中的相同,要么太多、要么几乎没有。而基于角色的访问控制模型(RBAC)则允许不同的管理员拥有不同的权限(例如一个监视角色和一个修改角色)。

WildFly 内置了 7 个 RBAC 角色:

  1. 监视者:拥有最少的权限。能够读取配置和当前运行状态,不能读取敏感资源和数据,不能查看审计日志和相关资源。
  2. 操作员:除拥有监视者的所有权限外,能够修改运行时状态,重新加载或者关闭服务器,暂停 / 恢复 JMS 目标。操作员无法修改持久化配置。
  3. 维护员:除拥有操作员的所有权限外,能够修改持久化配置,可以部署应用,增加 JMS 目标等等。维护员能够编辑几乎所有服务器和部署相关的配置。但是,维护员不能读取和修改敏感信息(例如密码),不能读取或修改审计信息。
  4. 部署员:很像维护员,但仅限于部署相关的修改。部署员不能修改通用服务配置。
  5. 管理员:能够查看和修改敏感信息例如密码,安全域设置。但是对审计日志不能进行任何操作。
  6. 审计员:拥有监视者所有权限。绝大部分都是只读的,但是能够查看和修改审计日志系统相关的配置。
  7. 超级用户:等同于 AS 7 的管理员,拥有所有权限。

RBAC 数据可以存储在几乎所有 LDAP 服务器上,也包括活动目录。

WildFly 还包括一个新的补丁系统,该系统最早是为 JBoss EAP 开发,允许你远程或者本地部署 JBoss 产品补丁。对正在运行的系统打补丁,需要重新启动以使其生效。

最后,虽然 WildFly 主要用于支持 Java EE,但它也可用于其它语言和环境。例如 TorqueBox 项目允许 Ruby on Rails 运行在 WildFly 服务器上。

你可以从 WildFly 网站 webinar 视频获取更多信息。InfoQ 也就更广泛的话题采访了Jason Greene,其中包括Undertow 的背景、新的审计日志系统和Oracle停止GlassFish 商业支持的影响等等。

原文英文链接: Red Hat’s JBoss Team Launch WildFly 8 with full Java EE 7 Support and a New Embeddable Web Server

2014 年 2 月 14 日 09:382636

评论

发布
暂无评论
发现更多内容

Mysql学习笔记:InnoDB事务和ACID模型

马迪奥

MySQL innodb

链表中移除重复节点,保罗·格雷厄姆的传奇博客,Mac三指拖动操作,大数据平台 John 易筋 ARTS 打卡 Week 17

John(易筋)

ARTS 打卡计划 大数据平台 链表移除相同节点 保罗格雷厄姆 mac三指操作设置

哦!这该死的 C 语言

cxuan

c 后端

图计算黑科技:打开中文词嵌入训练实践新模式

小小的一朵云

大数据

Elasticsearch索引容量管理实践

小小的一朵云

大数据

PB级大规模Elasticsearch集群运维与调优实践

小小的一朵云

大数据

ASP.NET Core 性能优化最佳实践

newbe36524

微服务 性能优化 .net core ASP.NET Core

ARTS打卡 第16周

引花眠

微服务 ARTS 打卡计划

极客大学-架构师训练营

9527

java中实现List集合中对象元素按其属性的中文拼音排序

Shae

简述C语言宏定义的使用

C语言与CPP编程

c c++ 编程语言

ARTS 打卡 (20.09.07-20.09.13)

小王同学

Spring 5 中文解析测试篇-Spring MVC测试框架

青年IT男

单元测试 Spring5

oeasy教您玩转 linux 010213 中文 fcitx

o

同城双活与异地多活架构分析

vivo互联网技术

架构 高可用 架构设计 高可用系统的架构

创建spring boot starter

曾彪彪

Java spring Boot Starter

智能商业时代的思考(二)网络协同抓住用户

刘旭东

微信 商业价值 数据智能 网络协同 商业智能

程序的机器级表示-异构的数据结构

引花眠

计算机基础

ARTS打卡Week 12

teoking

前端 10 问之 Docker (第一篇)

局外人

Docker

数据结构与算法系列之数组

书旅

数据结构 算法 数组 数据结构与算法

鹰眼 | 分布式日志系统上云的架构和实践

小小的一朵云

大数据

神盾首创非对称联邦学习,深度保障数据隐私

小小的一朵云

大数据

从linux源码看epoll

无毁的湖光

Linux TCP Linux Kenel

Docker映射详解,没问题了!

程序员的时光

Docker

区块链钱包app开发,去中心化多币种钱包搭建

WX13823153201

为什么互联网巨头们纷纷使用Git而放弃SVN?(内含Git核心命令与原理总结)

冰河

git 冰河 代码管理 代码仓库 分支合并

你必须要了解的「架构」小历史

小齐本齐

spring Spring Cloud Spring Boot

03 Spring Security 入门实例

哈库拉玛塔塔

Spring Boot kotlin spring security

CountDownLatch 瞬间炸裂!同基于 AQS,凭什么 CyclicBarrier 可以这么秀?

程序员小航

Java 源码 AQS 源码阅读 CyclicBarrier

看动画学算法之:排序-快速排序

程序那些事

排序 快速排序 数据结构和算法 看动画学算法

Red Hat JBoss团队发布WildFly 8,全面支持Java EE 7并包含全新的嵌入式Web服务器-InfoQ