Java 和 J2EE 的企业应用:崎岖的蜜月之路(转)

Java 和 J2EE 的企业应用:崎岖的蜜月之路

如果你最近随手拿起一本 Java 的书(包括我自己写的书,罪过!罪过!),你几乎会被「企业应用(enterprise application)」或「Java 2 Enterprise Edition(J2EE)」等名词所淹没。似乎大家开口闭口都是 J2EE 以及企业应用的革命。许多人认为企业应用(通常是分布式架构)就是该用 J2EE 平台才能因应。
Lutris Technologies 是 Lutris Enhydra(一套开放原始码的 Java 应用服务器)的赞助者。我身为 Lutris Technologies 的员工,我深知这个问题。至少我们曾经听到有人问起「何时 Enhydra 会支持 J2EE?」或是「下一版的 Enhydra 会兼容于 J2EE 吗?」糟糕的是,人们似乎认为他们的应用一定需要 J2EE,他们认为企业应用和 J2EE 的联姻既完美且持久。让我当第一只乌鸦告诉你:其实蜜月之路遍布荆棘石块。

真正的需求与假性的需求
或许今日在建立企业应用所面临的最大问题在于「想要」和「需要」之间界线的模糊。常常,人们对于他们的应用系统过于狂热,我戏称他们为「buzzmania」。「buzzmania」指的是天性倾向于疯狂地买、疯狂地拿、疯狂地用的人,只因为产品上有着越来越多的「buzzword(行话)」。这也是 J2EE 所遭遇到的大麻烦。J2EE 产品描述和规格书读起来就像一堆超强技术的无敌组合,无怪乎在产品发表会上经理们个个听得热血澎湃。
但是,实际上,只有少数的公司和少数的业界需要用到全部的技术。我预估有 50% 到 70% 的公司只是白花钱购买 J2EE 的产品,其实他们的系统只要透过简单的 servlet 和 JDBC 来设计就绰绰有余了。将系统逻辑放在 servlet 内,再透过 JDBC 来存取数据库,这样对大多数的应用(包括电子商务)而言就已经够了。再加上使用 JSP 或是其它 presentation 的技术(比方说 Enhydra XMLC),整个系统就已经够稳固了。
但是,这样的做法到底有没有吸引力?如果你真的提供只使用 servlet 的阳春解决方案,而非豪华的 EJB+XML 方案,Sprint、Cisco、和 eBay 这些大户又会做如是想?他们的意见可能不多。如果你的计划能准时又符合预算,这些大户又会做如是想?他们可能当场乐翻天。你想想,只需要雇用 servlet 和 JDBC 程序员,而不用辛苦地找寻 EJB、XML、JMS 等技术的专家,省了时间,也省了预算。
那么,为什么这种方式不能近悦远来?因为许多公司不知道他们真正的需求是什么。对于每周营收不到百万美金的中小型的企业来说,EJB server 高昂的售价可真是要了他们的命。EJB server 提供了交易和安全管理,让高流量、高营收的网站可以省却不少麻烦,但是中小企业根本不需要 EJB server 的这些功能。
事实上,在小型网站使用这些 EJB 的服务非但无意义,甚至对效能有害。比方说,JMS 保证讯息的正确传递,但是大多数的程序员根本就不了解 JMS 所使用的「出版,订阅」和「点对点」服务到底是什么,更不可能知道应该什么时候使用他们。至于 XML,虽然使用者已经很多,但是 XML 是一种又大又慢的格式,不太适合用在许多地方。虽然 XML 可以提供资料的意义以便进行不同程序之间资料的交换,许多公司正使用 XML 当作沟通的工具,比方说:让 servlet 和 EJB container 在同一台计算机上沟通,这如果改用 Java 简单的 serialization 机制其实效能会大幅增加。
我再说一次,当开发企业应用时,一定要弄清楚业务和技术的「需要」而非「想要」。如果系统真的需要透过 HTTP 进行跨平台的沟通、需要讯息保证送达、需要支持许多笔交易(金融方面)、需要在五十个不同的服务器上执行,你们就需要使用 J2EE 的解决方案。但是,我也当了好几年 enterprise Java 的顾问,我碰过真正需要这样做的例子还不多。
我常常看到许多对技术一知半解的行销人员,在会议室对着没有需求的经理和程序员侃侃而谈那些技术,然后经理就真的买了在演示文稿中,他印象最深刻的那个高科技缩写字的产品。我们就来看看,什么是「想要」?什么又是「需要」?对于多数的人来说,J2EE 其实是想要而非需要。

一次购足,有必要吗?
一旦你浏览过这些夸大的广告词和高科技缩写字之后,你得到的印象是:J2EE 提供了一次购足的好处。换句话说,J2EE 的解决方案,可以完整地提供你在企业应用所需要的一切。许多人声称采用 J2EE 的原因是在为未来做打算。但是我们都知道结果不见得如此。
J2EE 还正朝着第一个统一的企业应用开发平台和 API 迈进,还没到达终点。让 J2EE 脱离 Sun 的活动正在进行,这说明了此点。请到 java.sun.com 看看,你会发现有一堆 XML 相关的规格和 API 正在开发,这全都是要用在企业应用上的。
这些发展无一是属于目前的 J2EE,这些技术或许会包含进下一版的 J2EE 中也不一定。由这点来看,J2EE 距离完备尚有一段日子。
除了和 XML 的鸿沟之外,J2EE 还有一些明显的漏洞,J2EE 中没有时间的观念,你可能觉得这又不重要,但其实不然。想象两台服务器和使用者互动 100,000 股的线上股票交易,如果此二服务器的时差是 30 秒,百万美金可能就飞了。如果服务器是三十台而非两台,有百万用户,你能想象这会是多大的混乱吗?
分布式系统的时间服务兹事体大。因为缺少计时功能,完整的工作排程也不能进行,所以在 J2EE 中付之阙如。J2EE 整体都还是架构在「要求与响应」的事件模式,某些骇客甚至可能以 JMS 入侵服务器。
管理也是 J2EE 的一大难题。虽然 JMX(Java Management Extensions)是一个管理的 API,但目前并非 J2EE 的一部份。你可以叫你的老板买一套所费不眦的 J2EE 解决方案,然后在他需要管理功能时,嗫嗫嚅嚅地告诉他这需要再买另一套也是很贵的产品,等着被老板修理。为何 JMX 的进展步履蹒跚,JMX 的出现甚至早于 J2EE 呢!使用一个不成熟的平台,搭配一个更不成熟的管理 API,你真得要这么做?你可得想清楚。
你可以看出 J2EE 平台确实还有一些缝隙待填补。软件使用授权、组件版本、安全性、系统日志、metadata... 这只是主要尚未解决的问题其中几个。不要误以为目前版本的 J2EE 是一个天衣无缝的完美解决方案。

本文的寓意是 ...
到底本文要表达的是什么?难道本文想告诉你的是 J2EE 根本是浪费时间的玩意儿?不!我绝对没有这样的意思。事实上,我们公司的 Application Server 产品也快支持 J2EE 了,我只是认为 Application Server 厂商不该拿这些夸大不实的信息来作为行销主轴。虽然许多人都知道采用 J2EE 是很重大的决定,但还是有许多人宣称 J2EE 是完美的解决之道,是万灵丹。如果真是这样,根本就没有必要开发 Enhydra XMLC、Apache Cocoon、SOAP、以及其它非 J2EE 技术。
你应该用 J2EE 吗?有可能,也有可能不。再说一次,你必须先考虑你的业务需求。如果你只有 1000 个顾客,你只是提供 100 网页给他们,那么使用 J2EE 只是浪费时间和资源,去买本 O'Reilly 的 Java Servlet Programming(Jason Hunter 所着),省下使用 J2EE 所要伤的脑筋吧!如果你经营的是世界最大的银行,情况可就完全不同了,你最好准备使用 EJB 和 XML,来接受迎面而来的大量业务,但虽然此时 J2EE 有必要,执行起来倒也不见得完全都如你所预期。不要以为照着 Sun 的「宠物店」范例来如法泡制就能完万事顺利,毕竟一两个范例无法教会你 J2EE 的一切。

所以,睁大眼睛,认清事实:

「企业应用」不等于「J2EE」,而且「J2EE 」不等于「一劳永逸」
上面这段逆耳的忠言,或许可以让你省下大笔花在软件购买和建置的浪费。水可载舟,亦可覆舟,你得认清你的需求再决定使用哪些技术。虽然 J2EE 和企业运算可以成功,但要称他们是佳偶天成之前,还是有一些问题需要先解决。

本文作者:Brett McLaughlin(着有 O'Reilly 出版的 Java and XML)
本文译者:蔡学镛
YOLOv8作物病害检测实战源码 这是一套基于YOLOv8n的农田病虫害目标检测系统,对叶片照片做目标检测,识别健康叶片、褐斑病、白粉病、锈病四类,并给出对应防治建议。全流程纯CPU可跑,配套交付完整Python源码、9章实战教程(md/html/pdf三种格式)、100张自造样本及YOLO标签、训练曲线与混淆矩阵截图、Tkinter界面和答辩PPT。 系统围绕五项功能展开:同一套推理逻辑覆盖图像、视频、摄像头三种来源;图形界面选文件即检测,画面叠彩色框标注病名与置信度,右侧面板同步给出症状与防治措施;检测记录自动写入CSV,统计页一键生成四类病害占比饼图;训练结束自动产出损失与精度曲线;内置防治建议文案库,检测命中即回填面板。 选型用YOLOv8n nano档,参数量约320万、权重约6.2MB,CPU单帧几十毫秒,小样本训练5到8分钟完成。数据由data_gen.py程序化绘制100张叶片图,固定随机种子,重跑分布一致,不依赖公开数据集。依赖全部锁版本,教程第7章整理了19条真实报错及排查方法,第8章给出换模型档、换PlantVillage数据集的迁移路径。 适合做计算机视觉方向课程设计或毕业设计的学生,也适合智慧农业方向想了解检测模型如何落进业务面板的学习者。不需要GPU,不需要系统学过目标检测,教程第3章会按需补齐原理。 使用时先pip install -r requirements.txt装好依赖,download_data.py下载预训练权重,data_gen.py生成样本后train.py训练,完成后用main.py infer批量检测或main.py gui启动界面。 立即下载

相关推荐

数据挖掘实战:决策树 + 聚类 + 关联规则,零 Key 离线可跑(Python 源码)

数据挖掘实战包。用 Python 标准库实现 CART 风格决策树、K-Means 聚类与 Apriori 关联规则,在虚构「星河便利店」会员表和购物篮上跑通分类、分群与购物篮分析,并给出准确率、轮廓系数、支持度/置信度/提升度。零第三方依赖、零 API Key 即可离线跑通。含 4 个样例、离线冒烟、中文 README(含「使用方法」)。均为作者原创可运行源码。MIT。作者 blog.youkuaiyun.com/mtl1994

Java和J2EE 的企业应用:崎岖的蜜月之路

如果你最近随手拿起一本 Java 的书(包括我自己写的书,罪过!罪过!),你几乎会被「企业应用(enterprise application)」或「Java 2 Enterprise Edition(J2EE)」等名词所淹没。似乎大家开口闭口都是 J2EE 以及企业应用的革命。许多人认为企业应用(通常是分布式架构)就是该用 J2EE 平台才能因应。 Lutris Technologies 是 Lu

Anders小明的Blog 1844

科技中介服务机构在技术供需对接中如何实现服务流程的自动化与标准化?.docx

科技中介服务机构在技术供需对接中如何实现服务流程的自动化与标准化?

产业园区运营负责人如何利用平台实现企业创新需求的精准分析与服务推送?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

产业园区如何高效对接企业技术需求与高校科研成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

国央企创新负责人如何快速掌握本地科技资源分布与匹配情况?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

高校技术转移办公室人员在推动成果转化落地过程中,如何实现科技成果的高效推介与价值评估?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

国央企创新负责人如何实现科技成果的精准识别与高效筛选?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

科技中介服务机构如何通过数智工具提升技术需求挖掘的精准度?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

高校技术转移办公室人员如何系统化管理科技成果信息?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

科技中介服务机构如何构建标准化、模块化的智能服务工具?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

政府科技管理者如何在政策支持中更精准地识别和支持高价值科技项目?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

fab-pm-optimizer-python-entry-py39-20261021-v1-1-0

fab-pm-optimizer-python-entry-py39-20261021-v1-1-0

全桥LLC谐振变化器参数设计资料(闭环仿真+参数设计报告)

内容概要:本文档系统性地介绍了全桥LLC谐振变换器的闭环仿真建模与关键参数设计方法,涵盖其工作原理、谐振元件(如谐振电感、谐振电容、励磁电感)的计算与优化流程,并结合Simulink或Plecs等仿真平台构建闭环控制系统模型,重点验证变频控制策略下的软开关实现、系统增益特性、效率优化及动态响应性能。资料包含完整的仿真模型、参数设计报告、数学计算书及参考文献,支持从理论分析到工程实践的全流程研究,适用于高频高效DC-DC变换器的研发与教学应用。; 适合人群:电力电子、电气工程及其自动化等相关专业的高校学生、科研人员,以及从事开关电源、新能源变换器、工业电源研发的工程技术人员,具备电路拓扑基础与仿真软件操作能力者更佳。; 使用场景及目标:①深入掌握全桥LLC谐振变换器的工作机理与谐振参数设计准则;②学习并实现闭环反馈控制系统的建模与稳定性分析;③支撑科研课题、课程设计、毕业设计或实际产品开发中的拓扑选型与性能验证需求;④通过仿真与计算联动提升对软开关技术与效率优化的理解与应用能力。; 阅读建议:建议结合所提供的仿真文件与设计文档同步操作,按照“建模—参数计算—仿真验证—性能分析”的流程逐步推进,重点关注频率调节对ZVS/ZCS实现的影响,对比不同负载条件下的闭环响应差异,深化对谐振腔特性和控制策略协同作用的理解。

PSIM-三相维也纳VIENNA整流器电压电流双闭环+中点电位平衡SVPWM控制仿真

内容概要:本文档详细介绍了一种基于PSIM软件实现的三相维也纳(VIENNA)整流器仿真模型,重点实现了电压电流双闭环控制与中点电位平衡的SVPWM调制策略。该仿真系统通过精确的控制算法有效提升了整流器的功率因数,降低了输入电流谐波含量,并解决了三电平拓扑中常见的直流侧中点电位偏移问题,具有较高的工程实用价值,适用于高效率、高功率密度的电力电子系统设计与科研验证。文档还整合了丰富的配套资源,涵盖多种电力电子变换器拓扑结构、先进控制算法及典型应用场景,形成了系统化的技术资料体系,有助于深入理解现代整流技术的核心原理与发展动态。; 适合人群:面向从事电力电子、电气工程、新能源变换系统等领域的科研人员、高校研究生以及具备一定仿真基础的工程技术人员。; 使用场景及目标:①深入研究三相VIENNA整流器的工作机理与控制特性;②掌握电压外环、电流内环双闭环控制结构的设计方法;③理解并实现SVPWM调制技术与中点电位平衡控制策略的协同作用;④开展相关控制算法的仿真验证、性能优化与实验对比,为高性能整流装置的研发提供理论支撑和技术原型。; 阅读建议:建议结合文中列出的其他仿真案例(如PWM整流器、LLC谐振变换器、DAB变换器等)进行横向对比学习,充分利用所提供的PSIM、MATLAB/Simulink等多平台仿真资源,重点关注控制逻辑与主电路的耦合关系,通过参数调试与波形分析深化对系统动态响应和稳态性能的理解,强化“理论—建模—仿真—优化”的闭环研究能力。

产业园区运营负责人如何利用数智工具提升园区企业的技术对接效率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

政府科技管理者如何提升区域科技成果转化项目的评价与筛选效率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

ICD10 openGauss版

ICD10 openGauss版

上一篇: Nuggets of Wisdom from eBay's Architecture
下一篇: Java和J2EE 的企业应用:崎岖的蜜月之路
林仪明
博客等级 码龄25年 313粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值