发布时间:2026/8/25 5:59:35
机器视觉采用Jakarta EE 和Python深度学习框架的技术方案 如果要为现有的Jakarta EE 11业务应用采用经典的JSF EJB JPA三层架构增加一个类似 IBM Maximo 的机器视觉模型训练与推理模块最核心的原则是“业务归 JavaAI 归 Python通过微服务/API 进行松耦合集成”。在 Jakarta EE 11 的生态下不建议尝试用纯 Java 去重写深度学习算法而应采用成熟的混合架构。以下是具体的技术选型与架构设计方案1. 核心技术选型AI 与深度学习层为了实现与 IBM Maximo Visual Inspection 9.2 类似的功能支持主流模型、统一训练体验、支持边缘部署推荐以下技术组合底层深度学习框架PyTorch。理由目前工业视觉如 YOLOv8/v11 目标检测、Segment Anything 图像分割的主流算法几乎全由 PyTorch 驱动。AI 业务开发语言Python (FastAPI / Flask)。理由Python 拥有无可比拟的 AI 生态。使用FastAPI可以极快地将 Python 编写的 AI 训练和推理逻辑封装为高性能的 RESTful API且原生支持异步操作。边缘/高性能推理引擎ONNX Runtime或Nvidia TensorRT。理由效仿 Maximo在 Python/PyTorch 中训练好的模型导出为通用ONNX格式。这样既可以用 Java 直接调用也可以轻松部署到工业边缘设备工控机、摄像头。2. Jakarta EE 11 与 AI 模块的集成架构设计利用 Jakarta EE 11 的现代化特性如 Jakarta RESTful Web Services 4.0、Jakarta Concurrency 3.0可以实现与 AI 模块的完美对接。[ 前端: JSF (HTML/CSS/JS) ] │ (通过 AJAX / PrimeFaces 上传图片并展示结果) ▼ [ 业务层: EJB / CDI Bean ] ──(调用 JPA 11)── [ 数据库 (元数据/工单) ] │ │ (异步 HTTP 客户端 / Jakarta REST) ▼ [ AI 独立微服务 (Python FastAPI) ] ── [ GPU 算力 (PyTorch / ONNX) ]⚖️ 推理功能Image Inference: 实时/准实时响应当用户在 JSF 页面上传一张图片例如质检照片需要立刻获得检测结果JSF / 视图层使用 JSF 的h:inputFile或第三方组件如 PrimeFacesp:fileUpload实现异步文件上传。EJB / Facade 层接收到图片后不直接处理而是使用 Jakarta EE 11 的Jakarta REST (Client API)发起 HTTP POST 请求将图片二进制流发送给 Python API。Python / AI 层FastAPI 接收图片调用ONNX Runtime利用 GPU进行毫秒级的损伤/缺陷识别返回 JSON 结果如{defect: crack, confidence: 0.94, bbox: [10, 20, 100, 200]}。JPA / 数据层EJB 收到 JSON 后通过 DTO 转化为实体利用JPA (Jakarta Persistence)写入数据库并将结果刷回到 JSF 页面展示。⏳ 训练功能Model Training: 异步长周期任务训练新模型需要几小时甚至几天绝对不能阻塞 Java 应用的主线程任务触发用户在 JSF 界面点击“开始训练新版本模型”。异步派发Java 端使用Jakarta Concurrency的ManagedExecutorService或企业级消息队列如Jakarta Messaging / JMS向 Python 端发送一个包含数据集路径的训练指令。状态轮询与回调 (Callback)方案 APython 训练服务提供一个/training/status/{id}的 APIJava 端启动一个定时任务Schedule去轮询进度。方案 B推荐训练完成后Python 端主动向 Java 端的 Jakarta REST Endpoint 发起一个 Webhook 回调通知 Java 更新模型状态。3. 特殊替代方案纯 Java 机器视觉不推荐但可行如果您因为信息安全或运维限制绝对不允许引入 Python 环境必须在 Jakarta EE 容器内完成所有操作可考虑以下方案Deep Java Library (DJI):由 Amazon 开源的 Java 深度学习框架。它实际上是一个 Java 外壳底层通过 JNIJava Native Interface直接调用 PyTorch 或 TensorFlow 的 C 引擎。优点100% Java 代码控制可以直接写在 EJB 里利用dto传递数据。缺点工业视觉领域的最新模型如 YOLO 最新版很难第一时间在 DJI 中找到开箱即用的 Java 实现开发定制化模型的成本极高。4. 总结与选型建议维度方案一混合双轨制 (推荐等同 Maximo 理念)方案二全 Java 架构 (不推荐)技术栈Jakarta EE 11 Python (FastAPI/PyTorch)Jakarta EE 11 Amazon DJI (Java)集成方式互不干扰通过标准 RESTful API / JSON 通信深度耦合AI 引擎作为 Jar 包嵌入 Java 应用算法生态极其丰富可以秒级同步业界最新的视觉模型严重受限必须等待社区将 C 算法封装为 Java部署运维推荐使用 Docker/K8sJava 和 Python 容器独立部署部署单一但 Java 进程会因为 AI 训练吞掉全部 GPU/显存 落地建议按照Jakarta EE 11的高标准标准建议将 AI 推理和训练做成一个独立的轻量级 Python 微服务。Java 端利用 JSF 做好用户交互利用 EJB 处理复杂的工单和资产逻辑在需要视觉识别时通过一行 HTTP Client 代码向 Python 发起调用。这不仅是 Maximo 的做法也是目前企业级大系统接入 AI 的行业标准范式。

相关新闻

2026/8/25 5:59:35

AI Agent从副驾驶到代理人:打通支付闭环的技术架构与挑战

1. 项目概述:当AI Agent开始“掏钱”最近,一个名为“龙虾”的OpenClaw项目,与支付宝的AI付功能进行了一次引人注目的结合尝试。这听起来可能有点抽象,但简单来说,就是让AI智能体(Agent)不再仅仅…

2026/8/25 5:59:35

Java后端面试高频考点与深度解析

1. Java后端高频面试题整理的必要性作为Java后端开发者,面试准备是职业生涯中无法回避的重要环节。我整理这份高频面试题集的初衷很简单:市面上虽然有不少面试题库,但要么过于零散不成体系,要么内容陈旧跟不上技术发展。更重要的是…

2026/8/25 5:59:35

LangChain Agent集成MCP协议:实现AI工具即插即用的标准化方案

如果你正在开发AI Agent,可能已经遇到了这样的瓶颈:Agent能理解你的指令,也能调用几个基础工具,但一旦需要连接数据库、读取文件、调用第三方API,就得写大量胶水代码。更头疼的是,每个新工具都得重新集成、…

2026/8/25 8:09:56

Unity 对象追踪:实现“闭环管理”的一套大白话实战

做 Unity 项目久了你会发现,最难查的 bug 不是崩溃,而是"东西没了但内存还在"、“对象销毁了还有人调用它”、“池子借出去的对象再也没还回来”。这类问题的根源都是同一个:对象的生命周期失控了。这篇文章用大白话讲讲怎么给对象上一套"闭环管理"。 一…

2026/8/25 8:09:56

移动端 Shader 变体治理实战:从爆炸到可控

如果你做过移动端项目,大概率被 Shader 变体坑过:包体莫名其妙大了几百 MB,低端机内存爆红,进战斗第一帧卡成幻灯片。这篇文章聊聊 Shader 变体这件事,以及一线团队到底是怎么把它治住的。 一、先理解问题:变体为什么会"爆炸" Shader 变体的本质是组合爆炸。每…

2026/8/25 8:09:56

Java Stream limit()方法:从短路求值到性能优化的核心实践

1. 项目概述:为什么limit()是Stream操作中的“黄金分割点”在Java 8引入Stream API之后,数据处理的方式发生了根本性的变化。从传统的命令式、循环驱动的模式,转向了声明式、函数式的流水线操作。在这个全新的范式里,limit(long m…

2026/8/25 8:09:56

Python交互式Web框架:Streamlit、Gradio、Dash、Hyperdiv

概述 本文搜集几个流行的后端友好、基于Python语言、交互式Web框架,可实现无需过多前端开发技能,几行代码实现一个MVP展示界面,可应用:数据可视化、原型快速开发、机器学习数据探索等诸多场景。 Streamlit 官网,开源…

2026/8/25 8:09:56

Unity Shader变体爆炸?75%问题不在你的代码

写在前面 很多人一遇到"包体里 Shader 变体爆炸"的问题,第一反应就是去抠自己业务代码里的 multi_compile。结果改了半天,变体数纹丝不动——因为找错了地方。 先看一组真实项目里的变体来源分布: 来源 占比 引擎内置变体(光照/阴影/雾/Lightmap 组合) ~45% 美…

2026/8/25 8:04:56

SAP ABAP利用SMW0与CL_FDT_XLSP实现Excel模板化报表生成

1. 项目缘起:当标准ALV报表无法满足业务需求时在SAP ABAP的日常开发中,我们经常需要生成格式复杂、样式多变的Excel报表。标准的ALV输出到Excel功能(REUSE_ALV_GRID_DISPLAY或CL_SALV_TABLE)虽然方便,但在面对固定表头…

2026/8/25 1:04:19

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/24 1:12:32

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 8:17:29

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/25 0:04:14

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory Meta Description:GetQzonehistory 是一个QQ空间历史说…

2026/8/25 0:04:14

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

【题目来源】 https://www.luogu.com.cn/problem/P7912 【题目描述】 小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子,从左到右依次用正整数 1,2,…,n 编号。连续排在一起的同一种水果称为一个“块”。小熊要把这一排水果挑到若干个果篮里&#x…

2026/8/24 13:42:17

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/24 18:13:48

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/25 1:08:14

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…