美文网首页
Java EE架构概述

Java EE架构概述

作者: 静水流深ylyang | 来源:发表于2018-12-15 00:07 被阅读0次

    主要内容

    • 分布式多层应用
    • Java EE容器
    • Web Service支持
    • 打包应用
    • 开发角色
    • Java EE APIs

    引子

    • Java Platform, Enterprise Edition(Java EE)为设计、开发、装配和部署企业应用程序提供了一个基于组件的方法
    • Java EE平台提供了:
      • 一个多层分布式应用模型
      • 可复用组件模型
      • 一个统一的安全模型
      • 灵活的事务控制
      • Web Services
    • 通过Java EE平台,可以
      • 更快地构建创新的商业解决方案
      • 基于Java EE组件的平台独立性,使开发的应用不依赖于特定厂商的产品和API
      • 软件厂商和客户都能自由地选择符合其需求的产品和组件

    分布式多层应用

    • 应用逻辑按照功能分成若干组件,组成Java EE应用的各种应用组件按照多层Java EE环境中的层次结构,安装在不同的机器上。


    • 安全
      • 在每个应用中使用平台无关的安全策略
      • 允许在部署时定义安全约束
      • 应用程序能够在多种安全实现上移植
      • 对应用开发者屏蔽实现安全特性的复杂性
      • Java EE平台提供了标准的声明式访问控制规则,可由开发者定义并在应用部署到服务器时解释
      • Java EE提供了标准的登录机制,开发者可以不用重复开发
    • Java EE组件
      • A Java EE component is a self-contained functional software unit that is assembled into a Java EE application with its related classes and files and that communicates with other components.
      • Java EE规范定义了如下组件:
        • 应用客户端(application clients)和Applets是客户端运行的组件
        • Servlet和JSP组件是服务器上运行的web组件
        • Enterprise JavaBeans (EJB)组件是服务器上运行的业务组件
    • Java EE客户端
      • Web客户端 → thin client
        • 动态Web页面:由Web层运行的web组件生成
        • Web浏览器:显示页面
      • Applet
      • 应用客户端 → richer user interface
        • 直接访问企业Beans
        • 打开HTTP连接,与Web层的servlet通信
      • JavaBeans组件
      • 瘦客户端可提升应用的可分布性、可部署性和可管理性,而富客户端可获得良好的用户体验。
    • 服务器通信


    • Web组件
      • Servlet
        • Servlets are Java programming language classes that
          dynamically process requests and construct responses.
      • JSP
        • JSP pages are text-based documents that execute as servlets but allow a more natural approach to creating static content.
      • JavaBeans (optional)
    • 业务组件
      • Session beans
        • A session bean represents a transient conversation with a client. When the client finishes executing, the session bean and its data are gone.
      • Entity beans
        • An entity bean represents persistent data stored in one row of a database table. If the client terminates or if the server shuts down, the underlying services ensure that the entity bean data is saved.
      • Message-driven beans
        • A message-driven bean combines features of a session bean and a Java Message Service (JMS) message listener, allowing a business component to receive JMS messages asynchronously.


    • EIS (Enterprise Information System) 层
      • ERP
      • 数据库系统
      • 遗产系统
      • ……

    Java EE容器

    • 为什么需要容器?
      • 瘦客户端多层应用程序开发面临的难题
        • 事务管理
        • 状态管理
        • 多线程
        • 资源池
        • 其它复杂的底层细节
      • Java EE服务器对所有类型的组件,以容器的形式提供了一组底层服务。开发者不需重复开发,而只需关注业务问题
    • 容器服务
      • 容器是一个组件和支持组件的底层平台特定功能之间的界面
      • Web组件、企业Bean、应用客户端组件必须组装成Java EE模块并部署于容器中才能执行
      • 组装过程包括
        • 为Java EE应用中每个组件定义容器方面的设置
        • 为Java EE应用本身定义设置项
    • 容器管理的服务有
      • 可配置的服务
        同一Java EE应用中的应用组件依照部署方式不同而表现出不同的行为
        • 安全服务
        • 事务服务
        • JNDI查找服务
        • Java EE远程连接服务
        • ……
      • 不可配置的服务
        • 企业Bean和Servlet寿命周期
        • 数据库连接资源池
        • 数据持久化
        • 访问其它Java EE平台API
    • Java EE服务器和容器


    对Web services的支持

    • Web services是基于Web的企业应用,它使用开放的、基于XML的标准和传输协议与调用它的客户端进行数据交换
    • XML: 跨平台、可扩展、基于文本的描述数据的标准。
      • 自定义标签(tag)
      • 用schema定义其格式
      • 用XSL定义处理和展现数据的方式
    • SOAP: 客户请求和web服务响应描述成SOAP消息
      • 信封: 消息中有什么?如何处理消息?
      • 编码规则: 表示消息中的特定格式的数据实例
      • 消息约定: 描述请求和响应的格式
    • WSDL: 用XML格式描述网络服务
      • 服务名
      • 服务位置
      • 与服务通信的方式
    • UDDI和ebXML: 在Internet上发布web服务信息的标准

    打包应用

    • Java EE应用打包成EAR文件(Enterprise Archive),包括
      • Java EE模块
      • 部署描述符: 描述应用、模块或组件的部署设置
        • Java EE部署描述符
        • 运行时部署描述符
          ——应用服务器特定


    • Java EE模块: 一个Java EE模块包括一或多个具有相同容器类型的Java EE组件,以及一个组件部署描述符
      • EJB模块
        • 企业bean (class) + EJB部署描述符 → .jar
      • Web模块
        • Servlet (class) + JSP + 其它Class + HTML + 图片 + Web部署描述符 → .war
      • 应用客户端模块
        • Java class + 应用客户端部署描述符 → .jar
      • 资源适配器模块
        • Java interface, class, native libraries, and other documentation + 资源适配器部署描述符 → .rar


    开发角色

    • Java EE规范定义了如下角色
      • Java EE Product Provider
        • 实现Java EE产品,提供容器、实现API及其它Java EE特性
      • Tool Provider
        • 提供组件开发、组装和打包工具
      • Application Component Provider
        • 构建Java EE应用中使用的Web组件、企业Bean、Applets,或应用客户端
      • Application Assembler
        • 将应用模块组装成Java EE应用的EAR文件
      • Application Deployer and Administrator
        • 配置和部署Java EE应用程序、管理计算和网络架构、监控运行环境

    Java EE APIs (1)

    • Enterprise JavaBeans
      • 执行业务逻辑
      • 三种企业bean
        • Session beans
        • Entity beans (在Java EE 5中被Java persistence API entities取代)
        • Message-driven beans
    • Java Servlet
    • JavaServer Pages
    • JavaServer Pages Standard Tag Library (JSTL, new in Java EE 5)
      • 封装了对许多JSP应用来说通用的核心功能。
      • JSTL有迭代和条件Tag,可以处理流程控制;有处理XML文档的Tag;有用于国际化的Tag;有使用SQL访问数据库的Tag;及一些经常使用的功能。

    Java EE APIs (2)

    • JavaServer Face (JSF, new in Java EE 5)
      • 是一个创建Web应用的用户界面框架
      • 主要组件包括
        • 一个GUI组件框架
        • 用于在不同的HTML或各种标记语言和技术下渲染组件的柔性模型
        • 一个用于生成HTML/4.01标记的标准RenderKit
    • Java Message Service (JMS)
      • Java EE应用组件创建、发送、接收和读取消息的消息通信标准
      • 支持分布式通信,具有松散耦合、可靠、异步的特征
    • Java Transaction API (JTA)
      • JTA提供了划分事务的标准接口,UserTransaction接口是核心
      • 大多数情况下使用容器管理的事务,而不是JTA
    • JavaMail API
      • 发送email通知的API
      • 包括:一个应用级的接口;和一个服务提供者接口

    Java EE APIs (3)

    • JavaBeans Activation Framework (JAF)
      • JavaMail使用它,如处理MIME编码的邮件附件;
      • 确定任意数据片断的类型;
      • 封装对其访问;
      • 发现其可用操作;
      • 创建可以执行这些操作的合适的JavaBean组件。
    • Java API for XML Processing (JAXP)
      • 支持使用DOM、SAX和XSLT处理XML文档
      • 支持使用任何XML兼容的解析器和XSL处理器
      • 支持W3C XML Schema
    • Java API for XML-Based RPC (JAX_RPC)
      • 使用SOAP标准和HTTP,可以在Internet上实现基于XML的远程过程调用
      • 支持WSDL,可以输出和输入WSDL文档
      • 可与运行在Java和非Java平台上的web服务客户端和服务器端实现互操作

    Java EE APIs (4)

    • Java API for XML Web Services (JAX_WS, new in Java EE 5)
      • 是JAX-RPC的升级
      • 使用JAXB API绑定XML数据到Java对象
      • 引入了面向消息的功能,支持异步编程模型
      • 支持SOAP1.2
      • 可直接使用 XML/HTTP 绑定
    • SOAP with Attachments API for Java (SAAJ)
      • 是一个底层API
      • 允许生成和使用符合SOAP1.1和SOAP附件规范的消息
      • 一般不会直接被使用,而是使用JAX-RPC、JAX-WS

    Java EE APIs (5)

    • Java API for XML Registries (JAXR)
      • 支持ebXML注册和存储标准
      • 支持UDDI规范
    • Java EE Connector Architecture (JCA)
      • 用于开发资源适配器
      • 基于Java EE的Web服务与已有EIS间同步或异步集成,这种集成是面向性能的、安全的、可扩展的、基于消息的、和事务的
    • JDBC API
      • 用Java编程语言的方法调用SQL命令
      • 分成两部分
        • 应用级接口 → 应用组件访问数据库
        • 服务提供者接口 → 将JDBC驱动程序绑缚到Java EE平台上

    Java EE APIs (6)

    • Java Naming and Directory Interface (JNDI)
      • 提供目录和命名功能
      • 允许Java EE应用程序发现和获得任意类型的对象
      • 与实现无关,可以访问多种已有的命名和目录服务
      • 使用javax.naming.InitialContext对象在java:comp/env名字下查找对象
    • Java Authentication and Authorization Service (JAAS)
      • 鉴别和授权特定用户或用户组运行Java EE应用

    Java EE APIs Example

    相关文章

      网友评论

          本文标题:Java EE架构概述

          本文链接:https://www.haomeiwen.com/subject/dwznhqtx.html