读《Service Oriented Java Business Integration》2

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

2 Java Business Integration

Total Cost of Ownership (TCO)

SOA - The Motto

Why We Need SOA

We have been using multiple technologies for developing application components: * Remote Procedure Call (RPC) * Common Object Request Broker Architecture (CORBA) * Distributed Component Object Model (DCOM) * .NET remoting * Enterprise Java Beans (EJBs) * Java Remote Method Invocation (RMI)

What is SOA

SOA is all about a set of architectural patterns, principles, and best practices to implement software components in such a way that we overcome much of the deficiencies identified in traditional programming paradigms. SOA speaks about services implemented based on abstract interfaces where only the abstract interface is exposed to the outside world. Hence, the consumers are unaware of any implementation details. Moreover, the abstract model is neutral of any platform or technology. Features of SOA: * Standard-based (WS-* Specifications) * Servicese are autonomous and coarse grained * Providers and consumers are loosely coupled

SOA and Web Services

SOA doesn't mandate any specific platform, technology, or even a specific method of software engineering, but time has proven that web service is a viable technology to implement SOA.

Providers and consumers agree to a common interface called Web Services Description Language (WSDL) in SOA using web services. Data is exchanged normally through HTTP protocol, in Simple Object Access Protocol (SOAP) format.

WSDL

There are mainly two approaches in working with WSDL: * Start from WSDL, create and host the web service and open the service for clients; tools like wsdl2java help us to do this. * Start from the types already available, generate the WSDL and then continue; tools like java2wsdl help us here.

JBI is based on WSDL.

SOAP

Service Oriented Integration (SOI)

JBI in J2EE - How they Relate

The Java 2 Enterprise Edition (J2EE) platform provides containers for client applications, web components based on servlets and Java Server Pages (JSP), and Enterprise JavaBeans (EJB) components. These J2EE containers provide deployment and run-time support for application components. They also provide a federated view of the platform-level services, provided by the underlying application server for the application components.

Servlets, Portlets, EJB, JCA, and so on

JBI and JCA - Competing or Complementing

J2EE Connector Architecture (JCA) defines standards for connecting the J2EE platform to heterogenous EIS systems.

JBI - a New Standard

Integration is not that simple as it involves integration architectures, integration patterns, and MOM expertise. We need to build the extra intelligent adapters around services and endpoints. These adapters are to work in tandem with the platform provider to give low-level features like communication, session, state, transport, and routing. Thus, business integration is not limited by just application programming, but involves components and engineering processes at the application and platform interface-level. Hence, to make integration artifacts portable, even the integration vendors (who deal with platform services) have a big part to play. This is where we need standardization as components and adapters should be portable across several vendor products.

JBI in Detail

JBI provides a collaboration framework which provides standard interfaces for integration components and protocols to plug into, thus allowing the assembly of SOI frameworks.

JSR 208

JSR 208 is an extension of J2EE, but it is specific for JBI Service Provider Interfaces (SPI). SOA and SOI are the targets of JBI and hence it is built around WSDL. Integration components can be plugged into the JBI environment using a service model based on WSDL. Service composition is a major target in ESB architecture and the JBI environment aggregates multiple service definitions in the WSDL form into the message infrastructure.

JSR 208 mandates the following for JBI components: * Portable: Components are portable across JBI implementations. * Manageable: Components can be managed in a centralized manner. * Interoperable: Components should be able to provide service to and consume services from other components, despite the fact that they come from different sources and transport protocols.

JBI Nomenclature

The major components are explained: * JBI environment: a single Java Virtual Machine (JVM) where we can deploy integration artifacts.

* Service Engine (SE): SEs are service providers or service consumers deployed locally within a JBI environment. They provide the actual business logic like transformation.

Business Process Execution Language (BPEL)

* Binding Components (BC): BC provide communications protocol support and they are normally bound to components deployed remotely from the JBI run time.

The distinction between SE and BC is important for various pragmatic reasons. Mainly, it separates service logic from binding protocol. This facilitates reusability.

* JBI Container: Similar to the container in an application server , a JBI environment by itself a JBI container. This container hosts SE and BC. The interesting part is a SE is again a container for engine specific entities like XSLT engine, stylesheets, rules engines, and scripts.

* Normalized message: A normalized message consists of two parts - the actual message in XML format, and message metadata which is also referred to as the message context data.

* Normalized message router (NMR): The nerve of the JBI architecture is the NMR. This is a bus through which messages flow in either direction from a source to a destination. The specialty of this router is that messages are always in a normalized format, irrespective of the source or destination. NMR thus acts as a lightweight messaging infrastructure which facilitates actual message exchange in a loosely coupled fashion. NMR provides varying QOS functionalities: Best effort; At least Once; Once and only once.

* Pluggable components: The loosely coupled feature of ESB is due to the pluggable architecture for service components. There are two broad categories of pluggable components called SE and BC. Pluggable components can play the role of service provider, service consumer, or both. Pluggable components are connected to the NMR through a Delivery Channel.

* Service providerse and service consumers: Components can act as both a provider and a consumer at the same time. Service definition is available in the form of WSDL and this is the only shared artifact between providers and consumers.

* Delivery Channel (DC): DC connects a message source and a destination. The messaging infrastructure or the NMR is the bus for message exchange for multiple service providers and consumerse. When a service provider has got information to communicate, it doesn't just fling the message into the NMR, but adds the message to a particular DC. Similarly, a message consumer doesn't just pick it up at random from the messaging system. Instead, the consumer receives the message from a particular DC.

DCs are logical addresses in the ESB.

Provider-Consumer Contract

In the JBI environment, the provider and consumer always interact based on a services model. A service interface is the common aspect between them. WSDL 1.1 and 2.0 are used to define the contract through the services interface.

Detached Message Exchange

Provider and Consumer never interact directly. In technical terms, they never share the same thread context of execution. Provider and Consumer use JBI NMR as an intermediary. Consumer sends a request message to the NMR. The NMR, using intelligent routers decides the best matched server provider and dispatches the message on behalf of the Consumer.

Provider-Consumer Role

When a binding acts as a service Provider, and external service is implied. When a binding acts as a service Consumer, an external Consumer is implied.

Message Exchange

Message exchange encapsulates the following: * Normalized message * Message exchange metadata * Message exchange state

Message exchange is the JBI local portion of a service invocation.

Service Invocation

An end-to-end interaction between a service consumer and a service provider is a service invocation. Service consumers employ one or more service invocation patterns. Service invocation through a JBI infrastructure is based on a 'pull' model, where a component accepts message exchange instances when it is ready.

Message Exchange Patterns (MEP)

There are many service invocation patterns, and, from a JBI perspective, any JBI-compliant ESB implementation must support the following four service invocations: * One-Way * Reliable One-Way * Request-Response * Request Optional-Response

ESB - Will it Solve all Our Pain Points

An ESB is not required to build an SOA, nor is JBI required for ESB or SOA. However, all of them have something in common using JBI. JBI by itself is one of the ways by which we can attain SOA. There is also a caveat to this—just following JBI or ESB will not guarantee that you attain SOA.

Summary

JBI is the new integration API introduced in the J2EE world. It is a great enabler for SOA because it defines ESB architecture, which can facilitate the collaboration between services. It provides for loosely coupled integration by separating out the providers and consumers to mediate through the bus.

浅谈ServiceBusiness 在与人做技术交流时,发现有很多人把ServiceBusiness混在一起来谈论,有很多人甚至认为他们是一个东西。在我看来,他们虽然有时代表一样的概念,但这是在很小的应用中的情况,也就是说那是并没有所谓business的概念,业务层都推在service中,因为很多人都停留在这层,所以会对此无感。        在我看来,business是业务层,他是常常变化的,所不定业务场景每天都在变,或者说他 阅读详情

相关推荐

生产级机器学习系统:从模型部署到稳定运行的四大标尺与七根支柱

机器学习模型上线后失效,往往不是算法问题,而是系统工程缺失所致。本文围绕‘生产就绪’(Production-Ready)这一核心概念,深入解析模型在真实业务环境中必须满足的可观测性、可恢复性、可解释性与可审计性四大硬性标尺;并系统阐述契约驱动的特征管理、面向失败的模型服务、数据与概念漂移防御等七大实操支柱。内容紧扣MLOps工程实践,覆盖特征契约(Contract)、熔断机制(Circuit Breaker)、SLO治理、金丝雀发布、漂移检测等高频搜索关键词,为金融、风控、反欺诈等强监管场景提供可落地的ML

weixin_30887919的博客 377

JBI消息规范-第一部分

JBI提供了一个插接组件存在的环境。该环境为组件服务运行,组件之间的交互和所有安装组件及整个JBI系统的管理提供了一组基础服务。JBI使用标准的服务描述语言来描述插接组件间基于消息的服务调用方式的交互。这种方式为组件所能提供和消费的服务的描述提供了统一的模型。1.基于WSDL的消息模型JBI使用WSDL1.1和2.0规范描述服务提供和消费模型。在WSDL两个版本中,术语定义存在差异的地

859

SAP Process Integration 7.5,Java only 时代下 AEX 如何成为企业集成中枢

SAP PI 7.5的核心变革是彻底转向Java-only架构,淘汰了传统的dual stack(ABAP+Java)模式。其核心组件AEX(Advanced Adapter Engine Extended)作为企业服务总线(ESB),集中管理异构系统间的通信规则、数据转换和路由逻辑,解决了点对点集成的复杂性问题。通过ESR(设计层)和Integration Directory(配置层)的分层管理,实现了接口定义与实现的解耦,提升可维护性。这一架构演进使系统集成从分散连接转向可治理的平台化模式,降低了SAP

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 5992

JSR 208: Java Business Integration (JBI)

Java Business Integration (JBI,Java业务集成)技术规范定义了SOA的服务导向集成的内核和组成架构。它对公共讯息路径架构、服务引擎与捆绑的插件程序接口,以及复合型服务描述机制等都进行了标准化,这样就将多种服务结合成为一个单一的可执行的和可审核的工作单元。 JBI并不是一个为开发者设计的一个接口,更准确的说它是在JBI容器里为集成商提供相互集成的一个体系和一系

王洪伟的专栏 2896

集成医疗保健服务,第 1 部分

这篇由两部分组成的文章将演示各种医疗保健相关的服务通过一个服务总线进行聚合,我称之为(可能不够准确)Healthcare Service Bus (HSB)。在第 1 部分中,我将介绍一个用例场景,其中为病人服务的各种应用程序需要连接到 HSB,我将解释 HSB 应当提供的特性。接下来,我将介绍 Java Business Integration (JBI) 架构,它用于构建 HSB。按照以下顺序

moyumoyu的专栏 1139

Service Oriented Java Business Integration

Enterprise Service Bus integration for Java developersBinildas C. A.PACKT PUBLISHING1 Why Enterprise Service BusLine of Businesses (LOB) Enterprise Service Bus (ESB) Enterprise Application Int

未来为我而来 820

Service-Oriented Java Business Integration

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/topmvp - topmvpThe book first discusses the various integration approaches available and introduces the Enterprise Service B

TopMVP 554

JBI - Java实现SOA的标准方法

http://www.theserverside.com/articles/article.tss?l=JBIforSOA这篇文章介绍了JBI, 虽然好像出现的晚了一些,不过还是应该引起大家的重视。SOA不仅仅是Webservice,企业提供的服务也包括email, ftp, jabber, rpc,http 等各种接口,单纯依赖Web service实现企业的SOA那是笑话,或者是童话。企业需要

软件开发资料汇总 345

转:Oracle E-Business Suite R12.2的新技术特点

http://blog.sina.com.cn/s/blog_49d1af6e01010cal.html https://blogs.oracle.com/longchun/entry/oracle_ebusiness_sui...

cuixuba8515的博客 182

【转】JBI与SCA的区别

最近我在做有关ESB的开发工作,发现我们的产品(开源的Celtix  http://celtix.objectweb.org) 要支持JBI和SCA两个标准。这让我困惑了好久,JBI和SCA有什么区别呢?前几天好好在网上收罗了一番,现在把收获到的东西和大家分享一下:JBI definition http://www.theserverside.com/news/thread.t

宁静深远的专栏 2535

(课程设计)springboot毕业论文管理系统 毕业设计 附源码030946

毕业论文管理系统主要功能模块包括用户管理、任务书、学生信息、选题中心、中期检查、学生选题、开题报告、论文草稿、论文定稿、论文最终稿、答辩安排、成绩单、课题分类,采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取MySQL作为后台数据的主要存储单元,采用springboot框架、Java技术、Ajax技术进行业务系统的编码及其开发,实现了本系统的全部功能。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础

ID3461074420的博客 1万+

【课程设计】springboot毕业论文管理系统 毕业设计 030946

管理员管理模块: (1)用户管理:管理员可以对前台上注册过的普通用户信息进行管控,也可以对管理员信息进行管控。 (2)校园资讯管理:管理员在后台可以对毕业论文管理系统中显示的校园资讯进行增删改查。 (3)内容管理:管理员可以对毕业论文管理系统前台展示的校园资讯以及校园资讯分类的分类进行管控。 (4)更多管理:当点击“更多”这一菜单的时候,会出现任务书+学生信息+选题中心+中期检查+学生选题+开题报告+论文草稿+论文定稿+论文最终稿+答辩安排+成绩单+课题分类这十二个子菜单,能够对学生信息进行增删改查操作,对

WeiXin_DZbishe的博客 7169

【课程设计】spring boot毕业论文管理系统 毕业设计源码030946

毕业论文管理系统主要功能模块包括用户管理、任务书、学生信息、选题中心、中期检查、学生选题、开题报告、论文草稿、论文定稿、论文最终稿、答辩安排、成绩单、课题分类,采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取MySQL作为后台数据的主要存储单元,采用springboot框架、Java技术、Ajax技术进行业务系统的编码及其开发,实现了本系统的全部功能。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。

高级程序源的博客 2386

【信息科学与工程学】【数据中心】第三十五篇 云计算数据中心的学科知识04

编号学科(课程)核心知识点在云计算/云存储/云网络/云安全/云MaaS中的作用代表教材/资料/论文 + 数学方程式列表工业界应用D1421​云原生数据库:TiDB​HTAP(混合事务/分析处理)、分布式SQL、水平扩展、强一致(Raft)、自动故障恢复、与MySQL兼容、TiFlash列式引擎提供弹性扩展的分布式数据库;支撑高并发在线交易与实时分析教材:《TiDB in Action》PingCAP(2020) 论文:《TiDB: A Raft-based HTAP Database》(2017)

weixin_49199313的博客 201

w232基于springboot高校新生宿舍预选系统的设计与实现

内容主要介绍高校新生宿舍预选系统,基于Springboot、Mysql、B/S结构,功能包括学生管理、宿舍预选分配等。还有作者简介和联系方式等。摘要应概括核心。摘要:本文介绍基于Springboot、Mysql和B/S结构的高校新生宿舍预选系统,实现学生管理、专业班级管理、预选与分配信息、宿舍信息及新闻资讯等功能,旨在提升宿舍分配效率与信息化管理水平。

卓怡学长的博客 154

Kafka Streams 窗口统计怎么验收:本地跑订单流聚合,用 cpolar 给同事看只结果页

本地用 Kafka Streams 跑订单流 5 分钟窗口聚合,把 WindowStore 结果做成只页面,再用 cpolar 临时分享给同事验收。重点检查窗口边界、事件时间、正文图片和封面是否都走 CSDN direct 图链。

qq_63013137的博客 306

开源电商系统技术架构演进与选型方法论|2026 行业趋势深度解析

本文深度解析 2026 开源电商架构演进趋势,梳理三代商城架构迭代历程,从领域化架构、跨端能力、AI 协同、长期成本等维度,拆解 LikeShop、ShopXO、NiuShop、JavaShop、GoodGoods 多款主流系统技术特点与适用场景。文章指出行业重心已从功能比拼转向架构、生态竞争,提炼完整选型方法论,建议企业结合业务规模、技术团队、长期 TCO 综合评估,落地前做好实测验证,挑选适配中长期业务规划的数字化底座。

每天分享不同的文章 340

【Android性能优化】Android内存度量体系:PSS、RSS、USS 与 dumpsys meminfo 的源码级解析

本文基于 AOSP Android 16 源码,以 `Debug.MemoryInfo` 为切入点,系统拆解 Android 内存度量的完整口径体系。文中讲清 dalvik / native / other 三大分类的来源,逐条解析 PSS、SwappablePss、RSS、Private Dirty、Shared Dirty、Private Clean、Shared Clean、SwappedOut、SwappedOutPss 这九个维度的含义与差异,并深入 `other` 分类下 `.so`。

weixin_44081096的博客 513
上一篇: 读《Service Oriented Java Business Integration》
下一篇: Maven
lybra
博客等级 码龄20年 41粉丝 100原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值