管子钳厂家
免费服务热线

Free service

hotline

010-00000000
管子钳厂家
热门搜索:
技术资讯
当前位置:首页 > 技术资讯

看15年间用友iUAP企业互联网开放平台的发展历程

发布时间:2020-07-21 18:29:17 阅读: 来源:管子钳厂家

摘要:用友iUAP平台也经历了四个大版本阶段,经历十余年的发展,将长期服务企业信息化过程中提炼出的各类技术成果

关键词:用友iUAP

用友iUAP平台也经历了四个大版本阶段,经历十余年的发展,将长期服务企业信息化过程中提炼出的各类技术成果,与互联网技术和企业互联网化全生命周期管理相结合,缔造出一个亘古未有的企业互联网开放平台。

万物都有进化的过程。就拿人类来说,最早起源于森林古猿,从灵长类经过漫长的进化过程一步一步发展而来,其间经历了猿人、原始人、智人、现代人四个阶段。其间,人类陆续完成了直立行走、使用工具、大脑逐步发达、产生语言等标志性事件,最终成为了掌控世界的最高智能生物。

无独有偶,用友iUAP平台也经历了四个大版本阶段,经历十余年的发展,将长期服务企业信息化过程中提炼出的各类技术成果,与互联网技术和企业互联网化全生命周期管理相结合,缔造出一个亘古未有的企业互联网开放平台。

下面,就让我们对照人类进化四阶段,来看看iUAP从前世到今生的四个时代。

第一阶段:2.x时代(2001-2004)

拿猿人阶段对比UAP的2.x时代,还真是有些相似呢。这不仅仅是因为猿人和程序员的关系——毕竟进化到了现在,“程序猿”的帽子也还没有被摘掉。

实际上,要追溯UAP2.0的起源,就必须要提到2001年初春在北京西山凤凰岭脚下的一次封闭开发。当年的凤凰岭,并不是现在4A级自然风景区的样子,而是怪石密布的大山和裂谷,裂谷边缘是茂密的树丛,这和1200万年前南方古猿生存的环境非常相似。

当时,用友NC从各部门抽调Java技术骨干、组成这支20人的先遣队进驻凤凰岭的时候,团队成员谁都没有想到自己正在为一个伟大的平台建立雏形。那时候甚至没有UAP这个名字,封闭团队所肩负的使命,就是把经过检验积累下来的各种公共开发框架、UI控件等进行平台化封装,解决内部开发效率和代码重用问题,更好的服务于水平应用产品的规模化开发。

封闭团队根据事先分工,对中间件、基础控件、模板、系统管理、查询报表、流程、数据交换、持久化、安全、升级等等部件进行设计、开发和封装,所选择的开发工具是当时比较流行的VisualAge for Java。2.x早期,平台还没有配备专业的UE人员,因此很多界面的布局、着色等方案是直接由技术人员确定的。从下图可以看到,2.x时期的开发工具IDE以及典型功能节点的样式风格。

经过凤凰岭封闭和后续加班加点的开发,用友于2001年底推出了NC2.0产品,底层已经形成了"应用开发平台",这就是早期的UAP平台——当时UAP并没有从NC中独立为一条产品线。应用开发平台的出现,大幅提升了应用系统的开发效率。

iUAP中心总经理谢志华当时对此给出了准确的评价:“没有平台时,每个开发人员都必须是全能选手,按现在流行的说法可以称为‘全栈开发工程师’,既要了解底层的操作系统、数据库技术,又要了解上层的业务逻辑和用户体验,这样的结果是开发效率低,对个人的依赖程度高。有了平台之后,按照平台的架构和体系,研发团队也被分为了技术平台层、业务逻辑层、应用展现层,每一层再进行技术细分,每一部分的开发人员可以专注于自己所在领域的研发,这样就使得开发效率提升了一倍以上。”

翌年,更为完善的NC2.1版本问世。由于UAP平台的支持,NC2.x的产品已经涵盖了财务、供应链、制造等跨不同领域的ERP功能,UAP平台采用的是当时刚刚兴起的J2EE技术,在技术上保持了领先性。

以下是2.x的运行环境的登录界面和系统桌面,红白底色的LOGO,Jtree风格的菜单树,都带有很强的时代烙印。

2.x时代的关键版本包括:

2001年12月,NC2.0发版;

2002年,NC2.1发版;

2003年,NC2.3发版,这也是2.x时代的最稳定版本。

第二阶段:3.x时代(2004-2006)

NC3.0于2004年8月发版,其中的UAP平台当时被称作“客户化”。3.0是在前一版产品NC 2.3的基础上,结合实施过程中客户提出的需求,以及3.0的产品规划,开发完成的更加实用、高效和完整的产品版本,除核心应用得到加强外,在产品效率和产品可靠性上也有显著提高。

在3.0版本的客户化模块中,系统管理增加了安全控制和权限控制管理;自定义查询进行了重构,新的查询引擎功能更为强大和完整;原数据仓库重构为ETL工具;审批流支持越级跳转;EAI部分实现了U8和NC的整合;模版的易用性和功能大大增强。3.0版本推出后,NC产品交付了一大批项目,此时,用友在高端市场得到客户的认可和青睐,这也标志着用友抢滩高端市场初战告捷。

如果说2.x是程序员各显神通的年代,那么从3.0开始,各类组件控件都已严格规范化。另一方面,用友自主的中间件也日臻成熟。早期NC中间件的主要职责是支持NC开发调试过程和客户环境运行,进入3系列后的主要改进包括:完善支持NC开发调试过程的工具,包括在VA中的插件,用于生成代码和进行热部署等;为支持客户环境运行,对中间件的底层功能进行了改进,包括工具生成代码的优化;增强了NC中间件的本身特性,支持多种策略的负载均衡特性。

上述技术变革,带来了平台及产品在性能和稳定性的显著提升。我们将2.x到3.x的进化比喻为猿人到原始人的进化,也是因为平台在性能和易用性方面的提升,这就像原始人类开始直立行走一样,把双手解放出来,可以有更多的资源去做别的事情。

在3.x时代中期,开发人员沿用的开发工具Visual Age for Java由于无法替换更高版本的JDK,已经难以适应开发的要求。经过选型,全体开发改为使用ECLIPSE作为IDE。这个过程是略带痛苦的,很多程序员已经习惯了VA基于可视化工具的开发模式,但经过努力终于还是完成了这个转变。以下是3.x典型开发环境的截图。

3系列的界面风格也发生了翻天覆地的变化。先前大家认为,用友代表性的底色就应该是红与白,蓝色基调是竞争对手多年采用的底色。但经过人机工程方面的分析,NC3.0从配色上毅然转向浅蓝色,这也体现了平台开发团队在观念和心态上的成熟化。以下是NC3.x系统桌面和登录界面的截图。

3.x时代的关键版本包括:

2004年8月,NC3.0发版;

2005年7月,NC3.1(国际化版本)发版;

2006年7月,NC3.5上市,这也是3.x时代的最稳定版本。

第三阶段:5.x时代(2006-2011)

从事研发的岁月,技术变革的历程,在我的脑海中留下了难以磨灭的烙印,时刻牵动着心弦。以至于多年之后,我在飞机上随便看了一部青春题材的片子《左耳》,就对里面仅有的几幕体现软件和编程的画面印象深刻。

让我们把目光重新投回2011年的初冬。

在前一版产品3.5的基础上,用友NC结合市场、客户的需求以及产品未来的发展规划,推出了高效、易用和适合集团客户管理应用的新一代产品。它的版本号是什么呢?当然是5.0(用友产品的大小版本号都不会出现4这个数字)。此时的UAP平台产品更趋成熟稳定,在诸多亮点当中,有一点足以体现UAP“从原始人到智人”的飞跃,那就是对当时大热的面向服务体系架构SOA的支持。

平台支撑着NC无数业务的底层调用,服务组件的清晰化,以及服务端代码的规范化,无疑使得UAP的脑容量大增。不少程序员回忆说,做过5.0的开发,才算见识了什么叫真正的代码重构。

早在2x、3x年代,程序员写一段最普通的远程调用代码,通常是这么写的:

try {

// 检查该查询是否被复合查询引用

bQuoted = GrowmodelBO_QryQuoted(strQryOid);

} catch (Exception e) {

intStackTrace();

}

到了5x年代,这种调用变成了这样写:

uotationMaintain service = Locator

.getInstance().lookup(ass);

try {

// 获取报价单全部结果数据

quos = eryBillByPK(pks);

} catch (Exception e) {

ror(e);

}

不难看出,接口、实现的封装/查找/调用,功能模块的解耦,代码层次的封装,都已经能从短短几行代码中看到了影子。实际上,经过架构优化后的UAP代码,已经分为public、client、private三层,层次间、模块间的调用都已做了严格的规范,一切都是面向接口而不能去访问组件内部的私有实现。下面这张5x时代开发工具截图,正体现了代码、类库和其它资源的规范分层。

除代码架构的优化之外,UAP5.0还支持了商业中间件IBM Websphere,并成立专门团队进行UE改进和portal集成,使得产品在可靠性和效率、易用性上有了很大提升。UAP专门为客开伙伴提供了集成二次开发平台,基于SPRING推出UI工厂框架,支持代码版本管理,优化了外部数据交换平台,平台产业链特性得到增强,成为用友基于J2EE的多产品开发平台。

责编:chenjian

西宁碧莲盛植发

兰州碧莲盛医院

碧莲盛 厦门

西安碧莲盛好吗