原文来自于:http://www.infoq.com/cn/news/2014/02/wildfly8-launch

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

转:Red Hat JBoss团队发布WildFly 8,全面支持Java EE 7并包含全新的嵌入式Web服务器的更多相关文章

  1. 英特尔和Red Hat合作实现Gnome桌面的Wayland支持

    在发布支持XMir的Linux图形驱动程序xf86-video-intel 2.99.901后数天,英特尔宣布撤回对XMir的支持,XMir补丁不会合并到上游项目.XMir是Mir显示服务器的X11兼 ...

  2. Apache发布支持Java EE微服务的Meecrowave服务器

    Apache OpenWebBeans团队希望通过使服务器适应用户来消除复杂性.所以,该团队发布了Apache Meecrowave项目1.0版. Apache Meecrowave是一款小型服务器, ...

  3. Red Hat Enterprise Linux 7.0

    简介 Red Hat Enterprise Linux是Red Hat公司的Linux发行版,面向商业市场,包括大型机.红帽公司从Red Hat Enterprise Linux 5开始对企业版LIN ...

  4. Red Hat Enterprise Linux (RHEL) 9 更新了什么,即 Rocky Linux 9 和 AlmaLinux 9 展望

    请访问原文链接:https://sysin.org/blog/rhel-9-vision/,查看最新版.原创作品,转载请保留出处. 作者:gc(at)sysin.org,主页:www.sysin.or ...

  5. Red Hat Enterprise Linux 5安装序列号

    为了保证安装的组件和订阅相匹配,红帽企业 Linux 5 需要输入一个安装号.它被用来配置安装程序来提供正确的软件包.安装号码包含在你的订阅里. 如果您没有输入安装号码,只有核心服务器或 Deskto ...

  6. 为企业提供存储功能的Red Hat Stratis 2.0.1发布了

    导读 Red Hat的Stratis存储项目用于在Linux上提供企业存储功能,以与ZFS和Btrfs之类的产品竞争,同时在LVM和XFS之上构建,这是其2020年守护进程的首次更新. 通过Strat ...

  7. Red Hat Enterprise Linux 各个版本以及发布日期

    Red Hat Enterprise Linux 7 Release/Update General Availability Date redhat-release Errata Date* Kern ...

  8. Red Hat

    同义词 REDHAT一般指Red Hat Red Hat(红帽)公司(NYSE:RHT)是一家开源解决方案供应商,也是标准普尔500指数成员.总部位于美国北卡罗来纳州的罗利市,截止2015年3月3日, ...

  9. 使用 KGDB 调试 Kernel On Red Hat Linux

    1. KGDB 简介         KGDB  提供了一种使用 GDB 调试 Linux 内核的机制.使用 KGDB 可以象调试普通的应用程序那样,在内核中进行设置断点.检查变量值.单步跟踪程序运行 ...

随机推荐

  1. LinGo:装货问题——线性规划,整数规划,1988年美国数模B题

    7种规格的包装箱要装有两辆铁路平板车上去,包装箱的宽和高相同,但厚度(t,以cm计)和重量(以kg计)不同, 表A-1给出了每包装箱的厚度.重量和数量,每辆车有10.2m长的地方用来装包装箱(像面包片 ...

  2. objc非主流代码技巧

    原文:http://blog.sunnyxx.com/2014/08/02/objc-weird-code/ [娱乐向]objc最短的方法声明 先来个娱乐向的.方法声明时有一下几个trick: 返回值 ...

  3. Hdu 1856(离散化+并查集)More is better

    题意:一些人遵循朋友的朋友也是朋友原则,现在找出最大的朋友圈, 因为人的编号比较大,但是输入的数据最多是10w行,所以可得出最多也就20w人,所以可以进行一下离散化处理,这样数据就会毫无压力 //// ...

  4. QFII

    QFII(Qualified Foreign Institutional Investors)合格的境外机构投资者的英文简称,中文“酋匪”,QFII机制是指外国专业投资机构到境内投资的资格认定制度. ...

  5. SQL - 添加外键

    不解释: ---先创建外键的column ALTER TABLE tblLicenses ADD ProductID int not null; ---添加外键 ALTER TABLE tblLice ...

  6. Flas-SQLAchemy数据库操作使用学习笔记

    Flas-SQLAchemy数据库操作使用学习笔记 Flask-SQLALchemy 是一个给你的应用添加 SQLALchemy 支持的 Flask 扩展.SQLALchemy 是Python语言的S ...

  7. jQuery官网一个关于菜单的例子

    来源地址:https://my.oschina.net/xngiser/blog/28323 <ul id="menu"> <li class="men ...

  8. Foreman 企业级配置管理解决方案

    Foreman 企业级配置管理解决方案 Foreman 企业级配置管理解决方案 笔记本 puppet foreman 构建运维体系 本文是构建运维体系的其中一个关键环节. 什么是 foreman Fo ...

  9. javascript 如何避免属性访问错误

    var book = {subtitle: "Bible"}; var bookName = book.name.length // 这时候会出错,  因为试图查询这个不存在的对象 ...

  10. Event Delivery: The Responder Chain(事件传递,响应链)

    当我们设计app的时候,我们很可能想动态的响应事件.例如,触摸一个拥有许多不同对象的屏幕,你要决定给哪个对象一个响应事件,怎么样对象接收到事件. 当一个用户产生事件发生时(如 点击),UIKit产生一 ...