开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web...

45
<在此插入> © 2011 Oracle Corporation 开发现代、轻型JEE 6 应用 何友兵 Oracle中间件咨询顾问

Transcript of 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web...

Page 1: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

<在此处插入图片>

© 2011 Oracle Corporation

开发现代、轻型JEE 6 应用

何友兵

Oracle中间件咨询顾问

Page 2: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

以下内容旨在概述产品的总体发展方向。该内容仅供参考,不可纳入任何合同。该内容不构成提供任何材料、代码或功能的承诺,并且不应该作为制定购买决策的依据。

所描述的有关 Oracle 产品的任何特性或功能的开发、发布和时间安排均由 Oracle 自行决定。

© 2011 Oracle Corporation

Page 3: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

© 2011 Oracle Corporation

术语

• “现代”开发是什么意思?

• 显而易见:利用最新创新

• 平衡前沿技术与尖端技术

• 更简单、更易于使用

• “轻型”开发是什么意思?

• 只关注所需

• 运行时内存占用更少

• 易于安装和下载

• 部署单元/库膨胀少

• 容器解耦

Page 4: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

© 2011 Oracle Corporation

• 选择

– 工具选择、开发/测试环境

• 生产力

– IDE(或没有),许多开源软件库/开源框架

• 熟悉程度

– 基于标准的扩展,非专有

• 简单性

– 精简、带批注的 POJO 驱动 API

• 质量

– 敏捷开发和测试驱动的开发

• 敏捷性

– 服务器的模块化、可扩展性

现代和轻型开发不足以满足需要

Page 5: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

© 2011 Oracle Corporation

开发人员效率

灵活、轻便 可扩展 Web Profile

上下文、依赖注入 采用开源框架

批注更多,IDE 更好 POJO 开发 XML 配置更少

Java EE

Java EE 6 满足并超越了这些要求

Page 6: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

Java EE 7:云基础

• 正式确定新角色、多承租方

• 可插式云服务,非 API

• 底层 Java EE 规范的修订版

Page 7: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

© 2011 Oracle Corporation

议题

JEE6 中如何实现现代和轻型

开发方法

开发人员工具

构建环境、持续集成

测试、诊断、调优

模块化运行时服务

更容易的 Web 应用程序打包

新的持久化方法

总结

Page 8: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

使用轻型、可测试的POJO对象

• 降低配置复杂性

• 更便于测试并与 OS 工具保持一致

– Ant/Maven/Hudson

• Java EE 6 在此领域有所突破

– (CDI) 上下文和依赖注入

– EJB 3.1、JPA

– JSF 2.0(Bean 等)

– Java EE 必将继续完善

• 使用可集群化的 HashMap 进行缓存已成为常态

© 2011 Oracle Corporation

Managed Beans

JPA 2

上下文依赖和注入

JSF2

EJB 3.1

JAX-RS

JAX-WS

持久性

Facelets

JSR330

基本组件

展现

依赖注入

业务服务

REST

SOAP

缓存 内存网格

Page 9: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

利用批注,或自建批注

类别 示例

正常批注 — 带多个参数的批注。

这些批注的语法能够为批注类型中定义的所有成员传入数据。

@MyNormalAnnotation(mem1="val1", mem2="val2") public void

someMethod() { ... }

单成员批注 — 只带一个参数的批

注,具有更紧凑的语法。无需提供成员名称。

@MySingleMemberAnnotation("a single value") public class

SomeClass { ... }

标记批注 — 这些批注不带参数。用于标记要以特定方式处理的

Java 元素。

@Deprecated public void doWork() { ... }

© 2011 Oracle Corporation

Page 10: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

开发人员工具

Page 11: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

NetBeans IDE

© 2011 Oracle Corporation

• 全面的模块化 IDE

> 最先支持 Java SE 7

> 为 Java EE 6 提供同类最佳的支持

> GlassFish 3.1.1 支持, WebLogic 10.3.4

> 广泛的动态语言支持(PHP、Ruby、Groovy 等)

> 持续的开发改进

> 直观的工作流、Java FX、Swing、C++

> 调试器、分析器、重构等。

• 应用程序构建平台

> RCP = 富客户端平台

> 模块化架构易于重用

> 丰富的窗口、菜单、工具栏和操作框架

• 蓬勃发展的开源社区

> 巨大的第三方插件集合

> 下载超过 2000 万次

> 合作伙伴公司超过 100 家

> 活跃的博客社区

Page 12: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

构件

AppXRay™

呈现

组件

数据访问

外部资源

JSP CSS JSF ADF

Faces HTML TLD

Faces

配置 POJO 资源包

XML

模式

Java

变量

Java/Java EE/ADF

Oracle Coherence

WebLogic、GlassFish

Spring、ORM、DB、JPA

Spring

DAO

EJB 3

JPA POJO

Eclipse

链接

Oracle Enterprise Pack for Eclipse 适用于融合中间件的免费 Eclipse 插件

© 2011 Oracle Corporation

Page 13: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

• 优秀的多语言支持

– Java 7、JavaScript、Ruby、Groovy、HTML、CSS、XML

– 识别其他语言内部的语言

• 强大的重构、源码编辑

• 非常及时地支持第三方技术

– Maven、Groovy、Spring、Flex、Android、Ruby、Python、Scala、PHP

• 非常适用于 Java

• 对于 Java EE,相对于其他选项而言,不是最好的

– GlassFish/WebLogic Server 插件有点棘手

– Java EE 向导相对较少

– 编辑器中无 EE javadoc 代码补全

IntelliJ IDEA

© 2011 Oracle Corporation

Page 14: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

• 编辑器始终都是轻型的,但未必是现代的

文本编辑器(VI、Emacs、VIM、UltraEdit 等)

© 2011 Oracle Corporation

+/- 没有要遵守的 IDE 项目模型

+ 适合任何编程语言(通常)

+ 企业架构雷达上甚至都不显现

- 没有集成的调试、向导、验证

- 搜索和替换 ≠ 重构、D-I-Y 代码生成

- 可能有很多正在进行的工作要配置

Page 15: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

构建环境、持续集成

Page 16: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

免费的Java开源软件生态体系 利用免费的开源软件

© 2011 Oracle Corporation

Hudson

相关性管理工具

自动化 工具

跟踪工具

版本控制工具

测试

持续集成 工具

WebLogic

GlassFish

GIT

Page 17: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

Maven,如果你能 构建和依赖管理

• Maven 想控制一切,包括目录结构

• 如果项目能克服这些限制,Maven 将:

• 启用可重复的构建

• 把构建知识嵌入项目

• 使自动构建成为可能

• 有助持续集成

• 可以强制执行统一的项目设置

• 无需让所有开发人员都自编 build.xml 文件

• 没有重复的构建代码

• 简化依赖管理

• 提供许多插件

© 2011 Oracle Corporation

Page 18: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

Maven

Repo URI

• glassfish:create-domain

• glassfish:start-domain

• glassfish:deploy

• glassfish:redeploy

• glassfish:undeploy

• glassfish:stop-domain

• glassfish:delete-domain

http://download.java.net/maven/glassfish/

Maven 与 WebLogic 和 GlassFish

© 2011 Oracle Corporation

GlassFish WebLogic

* 在 Java EE 6 中提供

• wls:install*

• wls:create-domain*

• wls:start-server*

• wls:deploy

• wls:undeploy

• wls:re-deploy

• Wls:start-app

• wls:list-apps

• wls:stop-app

• wls:wlst (运行脚本)

• wls:stop-server*

Page 19: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

敏捷要求:Hudson CI 持续集成

• 用 Java 编写,有 IDE 插件

• 可以运行在任何 Java 容器

• 无需安装,java –jar hudson.war

• 易于使用、基于浏览器配置

• REST API 和 CLI

• 含 330 多个插件的充满活力的生态系统 – GlassFish 插件

– 即将推出:WebLogic 插件

• 工作原理: – 提交代码 — 触发构建

– Hudson 检测变化,验证代码

– 在另一台计算机上构建项目

– 组织构建输出(库、文档、安装程序)

– 记录和发布结果

– 反馈 — 仅在必要时

© 2011 Oracle Corporation

Page 20: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

测试、诊断、调优

Page 21: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

测试驱动的开发

重构 提交更新

添加测试

小改

提交更新

© 2011 Oracle Corporation

• 步骤少

• 检测多

• 可测试性设计

• 先做接口,再去

实现

• Mock 对象

Page 22: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

类别 工具

持续集成 Hudson、CruiseControl、Continuum

验收 FitNesse、Selenium

负载测试 JMeter、Eclipse TPTP

覆盖 Cobertura、Emma

Web 应用程序 Selenium、HttpUnit

Java EE 服务器 Cactus

数据库 DBUnit

Mock 对象 jMock、EasyMock、Mockito

单元测试 JUnit、TestNG

构建 Ant、Maven、Ivy

争用/死锁 JRockit MissionControl

监测 JRockit Mission Control、NetBeans

内存泄漏 JRockit MissionControl

单元

测试

© 2011 Oracle Corporation

开发时可用的大量免费开源软件

Page 23: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

Operations

Production

diagnostics

Development

部署

监测和性能调优

回归测试

故障排除

监视

警报和触发器

© 2011 Oracle Corporation

部署时可用的免费插件:JRMC JRockit Mission Control 和 JRockit Flight Recorder

Page 24: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

JRockit Flight Recorder

“黑盒”

© 2011 Oracle Corporation

In-memory/on-disk

buffer

Mission Control Server

1. 发生严重故障

• JVM 崩溃

• 内存不足

• 应用程序意外终止

• 硬件故障或停电

2. 缓冲数据保存到文件

• 既有内存中的缓冲数据,又有磁盘上的

缓冲数据

• 例外:硬件故障将只产生磁盘上的数据

3. 用户在 JRMC 中打开文件进行分析

Page 25: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

Flight Recorder

“实时应用程序诊断”

In-memory/on-disk

buffer

Mission Control Server

1. 监视系统检测到问题

• JSP 响应时间太长

• 内存增长出乎意料

• 通过 JMX 公开的一切

2. JRMC 请求诊断数据

• “给我问题的所有诊断数据”

3. 数据发送到 JRMC

• 立即分析(手动或自动)

• 并/或存储起来供以后分析

Page 26: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

Flight Recorder 的优点

• 始终可用

– 无需为应用程序另配工具

– 无运行时开销

• 大大减少故障排除时间及成本

– 内部及 Oracle 支持

• 在生产中启用正循环反馈机制

– 从所有 SLA 违规行为中收集数据

– 反复分析、修复、更新应用程序,直至不再有错

• 提高了数据中心的性能和可用性

Page 27: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

模块化运行时服务

Page 28: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

轻量级运行时中的丰富特性

• 按需使用

– 数秒启动

– 按需动态加载特性,如

• 管理控制台

• EJB 容器、嵌入式 JMS 服务器

• Web 服务容器

• 集群

• Java EE 服务器的标准分布成为常态

– Java EE 6 Web Profile

– 完整 Java EE 6

– 最小化运行,以避免构建自定义平台

© 2011 Oracle Corporation

Page 29: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

©2010 Oracle Corporation 29

JEE 6全集和Web Profile

Page 30: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

Java EE 服务器模块化

应用程序容器运行时 容器 内核

容器

SD

K

部署

配置

NIO

监视

管理 GUI

WebLogic Server 和 GlassFish 上采用的方法

© 2011 Oracle Corporation

Page 31: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

对于开发人员这意味着什么?

• 有望看到更轻量级的 Java EE 服务器

– GlassFish Server Web Profile — 29M

• 有望看到发布的profiles

– WebLogic Server 已发布的 Web Profile 支持关闭 EJB、JMS

和 JCA 容器

• 有望看到 OSGi 编程模型的实验

– GlassFish OSGi/Java EE 混合规范与实施

• 例如 JPA、EJB、JDBC、JTA 等,作为 OSGi 服务

© 2010 Oracle Corporation

Page 32: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

更容易的 Web 应用程序打包

Page 33: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

简化了 Web 应用程序打包

WEB-INF/classes com/acme/MyServlet.class com/acme/MyFilter.class

WEB-INF/web.xml

index.html main.css jquery-1.4.2.js ui/jquery.ui.core.js ui/jquery.ui.widget.js

Web 应用程序

WEB-INF/lib someframework.jar

Page 34: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

简化了 Web 应用程序打包

WEB-INF/classes com/acme/MyServlet.class com/acme/MyFilter.class

index.html main.css jquery-1.4.2.js ui/jquery.ui.core.js ui/jquery.ui.widget.js

Web 应用程序

@WebServlet(urlPatterns=”/foo”) public class MyServlet { … }

@WebFilter(urlPatterns=”/foo”) public class MyFilter { … } WEB-INF/lib

someframework.jar

Page 35: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

简化了 Web 应用程序打包

WEB-INF/classes com/acme/MyServlet.class com/acme/MyFilter.class

WEB-INF/lib someframework.jar

index.html main.css jquery-1.4.2.js ui/jquery.ui.core.js ui/jquery.ui.widget.js

Web 应用程序

META-INF/web-fragment.xml com/fw/FwServlet.class com/fw/FwFilter.class

框架 Jar

Page 36: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

简化了 Web 应用程序打包

WEB-INF/classes com/acme/MyServlet.class com/acme/MyFilter.class

WEB-INF/lib someframework.jar jquery-ui-1.8.4.jar

index.html main.css

Web 应用程序

META-INF/resources/jquery-1.4.2.js META-INF/resources/ui/jquery.ui.core.js META-INF/resources/ui/jquery.ui.widget.js

jQuery 资源 Jar

Page 37: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

简化了 Web 应用程序打包

WEB-INF/classes com/acme/MyServlet.class com/acme/MyFilter.class WEB-INF/lib someframework.jar jquery-ui-1.8.4.jar

index.html main.css

Web 应用程序

• 自包含

• 通用

• 可重用

Page 38: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

新的持久性方法

Page 39: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

结构化存储的新方法

© 2011 Oracle Corporation

RDBMS

• 无处不在

• 更新、更高级的 API

内存数据网格

• 成熟

• 分布式存储、处理和缓存

NRDBMS

(noSQL)

• 新兴

• 经常是分布式的

Page 40: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

Java 持久性 API 2.0 简述

• 为何采用 JPA 而不采用其他 Java 持久性方法?

– 使用批注带来的生产力提升令人难以置信

– 减少使用低级 API 重复编码造成的错误

– 标准、非专有 — 提供商很多

– 内存数据网格的集成点

– JPA 2.0 ORM 可以处理现实的数据库模式

• JPA 概要

– 具体类 (POJO)

– 无必需的接口或继承

– 使用 new() 创建实例

– 使用批注和/或 XML 实现映射

– 由一个 EntityManager 管理

– 可以脱离容器(“分离”)

© 2011 Oracle Corporation

Page 41: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

内存缓存简述

• 为何采用内存数据网格?

– 因为公共互联网的规模

– 因为固定的响应时间

– 处理大量事件

• 内存数据网格概要

– Java 进程的无容器集群

– 在整个集群/网格范围内管理数据的数据结构

– 实时事件观察 — 监听器模式

– 数据的物化视图

– 并行查询和聚合 — 基于对象的查询

– 并行数据处理

– 并行网格处理

– 无 RemoteException 的分布式计算

© 2011 Oracle Corporation

Page 42: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

NRDBMS(即 NoSQL)简述

• 为何采用 NRDBMS?

– 可以为大量文档建立索引

– 以商业互联网负载提供数据密集型页面

– 提供流媒体

– 可为性能牺牲数据一致性

• NRDBMS 概要

– 文档存储、图形、键值存储、多值数据库、OODBMS、表存储、元组存储

– 不一定需要固定的表模式

– 通常避免联接

– 横向扩展

© 2011 Oracle Corporation

Page 43: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

总结

Page 44: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

© 2011 Oracle Corporation

• 企业需要商业支持与服务

• 商业升级方案很多

• 技术支持和专业服务

• 敏捷往往意味着项目未来会出乎意料

• 具有关联商业产品组合意味着不会受困于单点解决方案

• 企业需要具有健康生态系统的平台

• Java EE 和开源不断相互影响,应一同考虑

• Java EE6 完全满足要求

• 并有免费的开源软件用于测试、质量、故障排除

• 服务器可扩展性意味着投资将延续到:

• 下一代解决方案

• 下一代优秀语言

总结:Java EE6 是企业的最佳选择

Page 45: 开发现代、轻型JEE 6 · 负载测试 JMeter、Eclipse TPTP 覆盖 Cobertura、Emma Web 应用程序 Selenium、HttpUnit Java EE 服务器 Cactus 数据库 DBUnit Mock 对象

<在此处插入图片>

© 2011 Oracle Corporation