又到干货的时间了,从今天开始我们会推出 “在 Liberty JVM server 中部署EJB” 系列,用一个应用商店的示例来展示如何在 Liberty JVM server 中部署 EJB。这第一篇文章会简单介绍下 EJB,之后会有更加详细的教程登场,整个系列的目录在这里:
EJB 简介
- 什么是EJB
- 为什么使用EJB
- 技术支持
使用会话bean编写业务逻辑
使用会话bean管理应用状态
使用EJB搭建前端
数据完整性
跨应用重用EJB
安全访问EJB
拓展阅读和总结
EJB 是 Java EE(Java Enterprise Edition)的核心部分,我们用它来包含企业应用的业务逻辑。在CICS TS 5.4中,Liberty JVM 服务器支持完整的 EJB 3.2 规范。
这篇 Java 开发者指南会用 EJB 创建了一个简单的在线商店。你可以在 CICS 的 GitHub 上找到完整的 sample code1。
下图是网络商店示例的结构示意。之后我会详细讲解其中的各个部分。
EJB简介
什么是EJB
EJB 是一个可重用的 Java 类,它包括了一个无参数构造器和用来描述其特性和行为的元数据。EJB 通常用来封装企业级应用的业务逻辑。元数据可以通过类里面的注解来提供,元数据使得类可以被注册(register)到 EJB 容器。元数据也可以通过 XML 描述器文件来提供,有的选项(option)只能被定义在这些描述器里。EJB 容器管理着 EJB 的事务性(transactionality)、安全和生命周期。
为什么使用EJB
EJB 是一个成熟的标准,从早期版本到如今的3.1/3.2规范,EJB 的可用性经历了显著提升。同 CDI(Context and Dependency Injection)和 managed beans 一样,它们都提供了注入框架。而 EJB 还提供了额外的功能,比如异步方法(method)调用、计时器,甚至能够远程调用方法。
注:WebSphere Liberty 支持 EJB Lite 3.1 and EJB 3.2 (包括 EJB Lite 3.2)。
CICS 的 Liberty JVM 服务器对各 CICS 版本或补丁的支持如下:
CICS Transaction Server for z/OS 5.4.0 支持 EJB 3.2(包括EJB Lite 3.2)。
CICS Transaction Server for z/OS 5.3.0 提供持续交付,通过 APAR PI63877 支持 EJB Lite 3.2。
CICS Transaction Server for z/OS 5.3.0 还通过 APAR PI77502 支持 EJB 3.2(包括 EJB Lite 3.2)。
CICS Transaction Server for z/OS 5.3.0 和 5.4.0 都支持 EJB Lite 3.1。
EJB 规范定义了两种 beans:
会话 beans(Session beans)
消息驱动 beans(Message Driven Beans,MDBs)
MDBs 通常需要一个 JMS(Java Messaging Service)的 queue 或者 JCA (Java Connector Architecture) inbound 资源适配器来辅助接受信息。本文主要介绍 session beans。
技术支持
很多技术都可供使用并和EJB交互。下表列出了其中常见的技术:
注:使用 WebSphere Liberty 的一大好处是:你可以控制哪种功能处于活跃状态。如果你不需要远程EJB,那么你可以只用EJB Lite特性,这样避免了运行IIOP服务器。
今天的简介就先到这里,从下一篇系列文章开始,我们会一步步展现相应的部署步骤,敬请关注~
1cics-java-liberty-ejb:https://github.com/cicsdev/cics-java-liberty-ejb
内容声明:本文仅代表作者的个人观点,与IBM立场、策略和观点无关。文中专业名词因翻译原因,表述中难免存在差异。如有疑惑,请以英文为准。同时数据来源于实验室环境,仅供参考。如果您对我们的话题感兴趣,请给我们留言。
领取专属 10元无门槛券
私享最新 技术干货