JBoss Wildfly 10 技术培训

JBoss Wildfly 10 & EAP 7 技术培训介绍

  • 本培训是关于 Wildfly 10 所使用的技术体系

  • 包含了 Java EE 规范和Wildfly应用服务器本身的内容

  • 本文是技术大纲内容,具体的培训内容在分小节培训资料中

新一代开源应用服务器

  • 2016/1 Wildfly 10 发布

  • 2016/5 EAP 7 发布,基于Wildlfy 10开发

  • 新一代的红帽商业支持版本,完整的JavaEE 7 规范实现

特色亮点

Undertow

  • Java实现的事件驱动 Web 容器

  • 借鉴 Nginx 设计思路

  • NIO 网络底层实现机制

  • 同时支持阻塞和非阻塞IO模型

  • 支持Websocket和HTTP/2

Wildfly-core核心服务器

  • Wildfly9时,从Wildfly服务器分离出来

  • 不再和JavaEE规范实现代码耦合

  • 对于JBoss其他项目,如Keycloak,core是一个坚实的基础服务器架构

servlet容器的发布包

  • 小尺寸28M

  • 方便开发人员开发和部署基于Servlet的应用

  • 配合部署Spring框架的应用

Wildfly-elytron

  • 重新构建安全基础架构

  • 替代原有PicketBox+JAAS的组合作为wildfly安全核心

  • 可配置的SSL

Graceful shutdown

  • 若干子系统的优雅停机方案

  • 服务器临时挂起

  • 极大的改进了可用性

对外端口减少

  • 标准安装对外端口减少为两个,更好的适应云端部署

    1. 应用端口 8080

    2. 管理端口 9990

管理界面的加强

  • Web Console的加强和改进

  • Cli控制台的加强

集群,池化能力的提升

  • Web, EJB, Hibernate等多处支持集群能力

  • EJB中SFSB和MDB的池化得到加强,配置更方便

Java EE 7 规范集合

  • 前半部分为Spring框架直接采用的EE规范,或者是完全支持的

  • 后半部分是Java EE中分布式相关,和Spring竞争的一些规范

Java EE 7 综述

  • 2013年6月发布

  • 包含30多项规范集合

  • 支持Websocket,以及更多的异步改造

  • 加入Batch规范,但Cache没来得及加入

Servlet

  • Java Web开发的基石

  • Servlet规范的重要接口,Http协议的映射。

  • 无状态网络请求和拦截模式,监听接口。

  • Context上下文,Session带入状态信息,服务端处理的几种方式

  • 异步处理方式,对通用web服务器的线程模型的改进

  • 规范定义的打包方式和插件机制

  • Servlet 4.0规范加入HTTP/2支持的展望

JSP & EL

  • 信息发布时代的网页模板技术,JSP是Servlet的延伸

  • JSP渲染引擎的分析

  • 其他模板工具,Freemarker和Thymeleaf

  • EL表达式语言

MVC

  • MVC经典设计模式,各个层次的职责

  • 正在设计中的规范,会成为Java EE8的组成,Ozark是RI参考实现

  • 和 Spring MVC的对比分析

Restful

  • Rest基于HTTP的语义级别无状态协议,面向资源定义,考虑幂等性,互联网应用友好

  • 传递信息方式,格式文本json/xml,通用解析工具,DOM/SAX/Stax解析方式对比

  • GET/POST/PUT/DELETE方法,接口设计原则,语义可读性

  • HATOES状态传递方式

JaxRS

  • JaxRS规范和API讲解

  • 多种环境可用,JavaSE/Servlet

  • JaxRS Client

  • 异步处理方式

WebService

  • 基本WebService规范,SOAP,WSDL,UDDI

  • WebService架构和SOA相关标准

  • WebService由RPC技术演变而来,不成功的原因分析,适用的场景。

JaxWS

  • 前身JaxRPC

  • JaxWS和JAXB规范,核心API

  • JDK自带的JaxWS工具

Websocket

  • HTTP协议之上的二进制双向传输

  • Upgrade协商过程,浏览器和服务器如何处理

  • 和客户端JS之间的互动过程

JDBC

  • JDBC API分析,连接状态

  • 常用连接池特性

  • iBatis等框架介绍

JPA

  • JPA是持久对象和关系模型在内存中的映射,正确使用的场景

  • Entity及操作,对象之间关系表示

  • JPA查询接口分析

  • Metadata和Metamodel

事务

  • 数据库的事务能力和JPA事务封装

  • JTA API

  • 分布式事务

  • 并发大敌,事后一致性优化系统整体效率

消息系统设计

  • 消息总体结构,消息头,消息体的设计

  • 消息的发送和接收,加解密,压缩

  • 连接管理,消息队列管理

  • XML和二进制消息

JMS

  • JMS1.1接口

  • JMS2.0版本的改进和优化

  • STOMQ协议介绍

  • AMQP协议介绍

EJB

  • EJB的历史演进,程序员的误解

  • EJB3的新生,EJB规范的庞大集合分析

  • SLSB/SFSB/MDB/Sington/Timer,企业应用设计不可缺少

  • EJB的线程安全模型和企业级特性

  • 远程EJB的有用之处和无奈,EJBLite的用武之地

  • 微服务和EJB在设计上的相通之处

CDI

  • DI规范

  • CDI是DI规范针对企业应用开发的扩展

  • CDI规范详解,Scope/Stereotypes/LifeCycle/Decorator/Event/Portable extensions

  • CDI是揭示了对象间关系本质的规范

AOP & BV

  • AOP是设计模式还是设计思路

  • JavaEE中的规范,BeanValidation和Inteceptor公有规范

  • Java JDK和JavaEE实现AOP的多种方法,代码编译/类加载/运行时

JNDI

  • JNDI命名服务概念和实现

  • JNDI在JavaEE中重要的地位

  • LDAP介绍和映射到JNDI

JavaEE Security

  • JavaEE中,安全信息在对象上下文中传递

  • JAAS框架介绍以及在JavaEE中的应用

  • Web层的安全介绍

  • EJB层的安全介绍

  • JCA层的安全相关接口

JSF

  • 理解JSF体系结构,请求处理和状态传递,生命期处理过程

  • 构建Web应用,使用JSF自定义的基本Tag

  • 应用ManagedBeans/CDI Beans处理业务逻辑

  • 应用EventListener/Validator/Convertor

  • 如何创建组合UI

Concurrency

  • Java EE规范定义的Concurrency能力

  • 各个规范中的异步改进点

  • 对于系统效能提高的分析

JCA

  • JCA规范和API讲解

  • 同外部系统连接,传递上下文信息,提供事务/安全等能力

  • 现实应用场景,连接池,遗留系统连接

Cache

  • Map和Cache相同和不同之处

  • 缓存数据的驱逐和过期

  • 分布式缓存是互联网应用的重要基础服务

  • JCache API接口设计

JBatch

  • 规范API说明

  • 实现分析

Wildfly-core核心部分

JBossModule

  • 类OSGi模块化项目

  • 负责类加载和隔离,并发加载能力

  • module文件层次

Ioc框架

  • Ioc是软件设计模式总结的必然产物

  • Spring诞生和设计原则,xml文件为直观的对象组合方案

  • 充分应用Java的annotation,Guice框架分析

JBossMSC

  • 异步并发轻量级Ioc框架

  • 内核状态改变

  • 代码分析

控制器和管理接口

  • Controller

  • JBossDMR和ModelNode

  • JBoss Cli

Server服务器

  • Server服务器整体架构

  • 服务器启动过程分析

  • 内置服务分析

部署框架

  • DeploymentFramework架构分析

  • war/ear部署过程

  • 扩展定义自己的包进行部署

Subsystem子系统

  • 子系统挂接结构分析

  • 子系统范例分析

  • 如何开发自己的子系统

域模式

  • 域模式管理多个节点和统一部署

  • 域模式的服务和架构分析

  • 启动流程和通信交互分析

Web Console

  • Web控制台界面

  • GWT图形框架

  • 控制台代码结构

  • 对控制台进行扩展

JBossThread

  • 线程池原理

  • 项目代码分析

  • Web, EJB等模块使用线程池

  • 线程池调优

网络IO

  • XNIO项目,基于Java NIO的异步网络框架

  • JBossRemoting代码分析

  • RPC技术综述

安全基础模块

  • Wildfly-Elytron项目

  • SASL和SSL的支持

  • JDK安全能力

服务器调优

  • 系统的主要调优关键点

  • GC分析

  • Heap dump分析

Wildfly服务器

  • 历史发展及内核演变

  • JNDI命名约定,和子系统schema

  • 配置文件和部署方式

连接池

  • 配置方法和调优

  • 数据源高可用支持

  • 上游JCA实现项目Ironacamar分析

Undertow

  • 按照Nginx架构设计的新一代Web容器

  • 异步事件驱动模型

  • Wildfly web子系统

  • 反向代理的配置使用

Infinispan

  • 架构分析和Core API说明,同步和异步调用

  • 强大灵活的配置方式

  • CacheStore接口和几种实现,File/JDBC/LevelDB

  • 事务处理和锁定并发模型

  • 运行模式,集群配置方法。Replication/Distribution,原理分析

  • 高效的HotRod接口,Rest接口,Memcached接口

  • 作为Hibernate二级缓存和WebServer的Session manager

  • 查询接口,和Lucene配合使用

集群和容错

  • Infinispan的集群支持,Web,EJB等

  • 配合mod_cluster实现高级集群功能

  • 域模式的集群和容错能力

命名服务器

  • NamingServer的实现分析

  • 分布式和高可用服务器

  • 对比ZooKeep等分布式服务能力

Resteasy

  • Resteasy实现分析

  • 代码范例解析

  • 集成到Wildfly中

Hibenate

  • ORM产品,ActiveRecord和贫血充血设计方法之争

  • Hibernate的高级特性

  • 二级缓存提升效率和避免误用

  • Hibernate OGM介绍

Weld

  • Weld是CDI规范参考实现,代码分析

  • 介绍Seam2

  • Apache Deltaspike项目是CDI扩展集合

  • CDI和EJB,CDI和SpringFramework的区别和相关分析

  • 集成到Wildfly中

ActiveMQ

  • 设计思路和架构分析

  • 自有API使用说明,使用管理接口

  • 网络连接管理,LinuxAIO使用

  • 文件存储设计原理和实现

  • 消息流控制,拥塞管理

  • 事务处理

  • 集群,高可用的配置和实现分析

  • 集成到Wildfly中

Apache CXF

  • CXF核心架构,Bus/Messaging/Inteceptor/Feature

  • 前端编程模型,代码优先/WSDL优先,provider/Dispatch,动态客户端技术

  • 数据绑定DataBinding, JAXB/XMLBeans

  • 传输协议,HTTP,JMS

  • 服务模型ServiceModel和绑定Binding

  • WS-*标准的支持

  • 在Wildfly中的集成应用

EJB3

  • Session实现分析

  • MDB实现分析

  • 池化能力

  • 本地和远程的区别

  • 单件和Timer EJB实现分析

Narayana

  • 对JTA/JTS的支持

  • Corba事务能力

  • 分布式事务

  • 集成到wildfly

安全子系统

  • PicketBox项目分析

  • BouncyCastle应用说明

  • 集成到wildfly中

  • 各个模块的安全相关配置

End