J2EE是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。下面是小编整理的关于j2ee技术体系架构,欢迎大家参考!
SOA 是一种分布式的软件模型。SOA 的主要组件包括 服务、动态发现和 消息。
服务是能够通过网络访问的可调用例程。服务公开了一个接口契约,它定义了服务的行为以及接受和返回的消息。术语 服务常与术语 提供者互换使用,后者专门用于表示提供服务的实体。
接口通常在公共注册中心或者目录中发布,并在那里按照所提供的不同服务进行分类,就像电话簿黄页中列出的企业和电话号码一样。客户(服务消费者)能够根据不同的分类特征通过动态查询服务来查找特定的服务。这个过程被称为服务的 动态发现。
服务消费者或者客户通过 消息来消费服务。因为接口契约是独立于平台和语言的,消息通常用符合 XML 模式的 XML 文档来构造。
Web 服务作为 SOA
Web 服务建立在开放标准和独立于平台的协议的基础之上。Web 服务通过 HTTP 使用 SOAP(一种基于 XML 的协议),以便在服务提供者和消费者之间进行通信。服务通过 WSDL(Web Service Definition Language)定义的接口来公开,WSDL 的语义用 XML 定义。UDDI 是一种语言无关的协议,用于和注册中心进行交互以及查找服务。所有这些特性都使得 Web 服务成为开发 SOA 应用程序的优秀选择。
使用 J2EE 1.4 平台开发 SOA/Web 服务框架
1.4 版的 J2EE 平台通过新的 JAX-RPC 1.1 API 提供了完整的 Web 服务支持,这种 API 支持基于 servlet 和企业 bean 的服务端点。JAX-RPC 1.1 基于 WSDL 和 SOAP 协议提供了与 Web 服务的互操作性。J2EE 1.4 平台也支持 Web Services for J2EE 规范(JSR 921),后者定义了 Web 服务的部署需求并利用了 JAX-RPC 编程模型。除了几种 Web 服务 API 之外,J2EE 1.4 平台还声称支持 WS-I Basic Profile 1.0。WS-I Basic Profile 标准让 Web 服务克服了不同编程语言、操作系统和供应商平台之间的障碍,从而使多种应用程序之间能够交互(关于 WS-I 的更多信息,请参阅 参考资料部分。)这意味着除了平台独立性和完整的 Web 服务支持之外,J2EE 1.4 还提供了跨平台的 Web 服务互操作性。
在 J2EE 1.4 下,Web 服务客户可以通过两种方式访问 J2EE 应用程序。客户可以访问用 JAX-RPC API 创建的 Web 服务;在幕后 JAX-RPC 使用 servlet 来实现 Web 服务。Web 服务客户也可以通过 bean 的服务端点接口访问无状态会话 bean。Web 服务客户不能访问其他类型的企业 beans。第二种选择——公开无状态 EJB 组件作为 Web 服务——有很多优势:
利用现有的业务逻辑和流程:在许多企业中,现有的业务逻辑可能已经使用 EJB 组件编写,通过 Web 服务公开它可能是实现从外界访问这些服务的最佳选择。EJB 端点是一种很好的选择,因为它使业务逻辑和端点位于同一层上。
并发支持:作为无状态会话 bean 实现的 EJB 服务端点不必担心多线程访问,因为 EJB 容器必须串行化对无状态会话 bean 任何特定实例的请求。
对服务的安全访问:企业 beans 允许在部署描述符中声明不同方法级别的安全特性。方法级别角色被映射到实际的主体域(principal domain)。使用 EJB 组件作为 Web 服务端点,把这种方法级别的安全性也带给了 Web 服务客户。
事务问题:EJB 服务端点在部署描述符规定的事务上下文中运行。容器处理事务,因此 bean 开发人员不需要编写事务处理代码。
可伸缩性:几乎所有 EJB 容器都提供了对无状态会话 bean 群集的支持。因此当负载增加时,可以向群集中增加机器,Web 服务请求可以定向到这些不同的服务器。通过把 Web 服务模型化为 EJB 端点,可以使服务具有可伸缩性,并增强了可靠性。
池与资源管理:EJB 容器提供了无状态会话 bean 池。这改进了资源利用和内存管理。通过把 Web 服务模型化为 EJB 端点,这种特性很容易扩展,使 Web 服务能够有效地响应多个客户请求。