转:Red Hat JBoss团队发布WildFly 8,全面支持Java EE 7并包含全新的嵌入式Web服务器
原文来自于: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角色:
- 监视者:拥有最少的权限。能够读取配置和当前运行状态,不能读取敏感资源和数据,不能查看审计日志和相关资源。
- 操作员:除拥有监视者的所有权限外,能够修改运行时状态,重新加载或者关闭服务器,暂停/恢复JMS目标。操作员无法修改持久化配置。
- 维护员:除拥有操作员的所有权限外,能够修改持久化配置,可以部署应用,增加JMS目标等等。维护员能够编辑几乎所有服务器和部署相关的配置。但是,维护员不能读取和修改敏感信息(例如密码),不能读取或修改审计信息。
- 部署员:很像维护员,但仅限于部署相关的修改。部署员不能修改通用服务配置。
- 管理员:能够查看和修改敏感信息例如密码,安全域设置。但是对审计日志不能进行任何操作。
- 审计员:拥有监视者所有权限。绝大部分都是只读的,但是能够查看和修改审计日志系统相关的配置。
- 超级用户:等同于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服务器的更多相关文章
- 英特尔和Red Hat合作实现Gnome桌面的Wayland支持
在发布支持XMir的Linux图形驱动程序xf86-video-intel 2.99.901后数天,英特尔宣布撤回对XMir的支持,XMir补丁不会合并到上游项目.XMir是Mir显示服务器的X11兼 ...
- Apache发布支持Java EE微服务的Meecrowave服务器
Apache OpenWebBeans团队希望通过使服务器适应用户来消除复杂性.所以,该团队发布了Apache Meecrowave项目1.0版. Apache Meecrowave是一款小型服务器, ...
- Red Hat Enterprise Linux 7.0
简介 Red Hat Enterprise Linux是Red Hat公司的Linux发行版,面向商业市场,包括大型机.红帽公司从Red Hat Enterprise Linux 5开始对企业版LIN ...
- 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 ...
- Red Hat Enterprise Linux 5安装序列号
为了保证安装的组件和订阅相匹配,红帽企业 Linux 5 需要输入一个安装号.它被用来配置安装程序来提供正确的软件包.安装号码包含在你的订阅里. 如果您没有输入安装号码,只有核心服务器或 Deskto ...
- 为企业提供存储功能的Red Hat Stratis 2.0.1发布了
导读 Red Hat的Stratis存储项目用于在Linux上提供企业存储功能,以与ZFS和Btrfs之类的产品竞争,同时在LVM和XFS之上构建,这是其2020年守护进程的首次更新. 通过Strat ...
- Red Hat Enterprise Linux 各个版本以及发布日期
Red Hat Enterprise Linux 7 Release/Update General Availability Date redhat-release Errata Date* Kern ...
- Red Hat
同义词 REDHAT一般指Red Hat Red Hat(红帽)公司(NYSE:RHT)是一家开源解决方案供应商,也是标准普尔500指数成员.总部位于美国北卡罗来纳州的罗利市,截止2015年3月3日, ...
- 使用 KGDB 调试 Kernel On Red Hat Linux
1. KGDB 简介 KGDB 提供了一种使用 GDB 调试 Linux 内核的机制.使用 KGDB 可以象调试普通的应用程序那样,在内核中进行设置断点.检查变量值.单步跟踪程序运行 ...
随机推荐
- 3分钟学会sessionStorage用法(h5页面返回滚动到上次浏览器位置)
前言: 因最近移动端开发过程中遇到一个运营提出的所谓技术难点需求,对于原生APP来说轻而易举,毕竟自己的APP用户操作指哪打哪,但是H5该怎么做?H5就实现不了么?对于一个爱研究攻克这些前端棘手问题的 ...
- android中画文字的换行 办法(对于遇到canvas.drawText(String s )无法实现换行问题的解决)
在使用canvas.drawText()绘制文字的时候,发现,如果需要绘制的文字较长,需要换行,通过在文字中加上“\n"或者”\r\n"都无法实现换行,如果非要使用canvas.d ...
- Android SimpleAdapter GridView (网格图片点击放大显示)
GridView网格视图 GridView网格视图是按照行,列分布的方式来显示多个组件,通常用于显示图片或是图标等,在使用网格视图时,首先需要要在屏幕上添加GridView组件. 常用属性: 1. a ...
- apache SetEnv 设置
php的服务器预定义变量 $_SERVER 可以通过apache的mod_env模块来添加我们所需要的内容 来段官网介绍 Description: Modifies the environment w ...
- 几个常用的ps命令
1. ps aux If you are looking for a short summary of the active processes, use ps aux [root@rhel7 tm ...
- openvpn server部署笔记
openvpn server 部署 1.准备 安装依赖 yum -y install gcc gcc-c++ openssl-devel openssl pam-devel 2.安装 lzo cd / ...
- ReSharper warning: Virtual member call in a constructor
1.构造函数的执行顺序是:基类--->派生类 2.如果虚方法被重写后,由于基类中调用了虚方法,此时调用的是最外层的被重写后的虚方法,此时可能会发生异常 举例: class Parent { pu ...
- html:标签原本属性
<!doctype html>无标题文档 a标签,默认有text-decoration属性 span标签不需要清零 b标签不需要清零 em标签不需要清零 strong 相邻内嵌元素代码里面 ...
- 获取android手机联系人信息
package com.yarin.android.Examples_04_04; import android.app.Activity; import android.database.Curso ...
- oracle的一知半解
这里只讲第一次开发运用oracle数据库的.net程序遇到问题: 1.程序与oracle数据库在同一台的服务器,貌似设置好连接字符串就可以直接访问( 需要主要的问题: 字符串格式:Data Sourc ...