文档章节

OpenUI5 - SAP开源中的移动大战略

工程师楚门
 工程师楚门
发布于 2014/03/05 15:01
字数 2188
阅读 3616
收藏 43
点赞 5
评论 2

想想自己还要继续写一些非开源的东西,所以把博客搬到csdn了,链接是link

网上很少能看到介绍OpenUI5的中文文章,有也是“SAP 开源的 JavaScript 框架,有点重”。首先我不去说OpenUi5到底有多重,先说说SAP为什么把OpenUI5开源,除了软件license法律上的原因之外。

先说说历史,SAP在UI框架上的选择其实也纠结了十多年了,是多年前,SAP就很有先见的推出了SAP GUI,这个其实就是最早的BS框架,不过这个B是SAP自己的客户端而不是标准浏览器,但是遵循的就是三层框架。这个工具开发迅速,运行迅速,但是页面呆板,SAP页面开发都需要遵循特定的模式,但是这也是由于SAP针对的特定企业客户决定的,因为一个企业的应用程序数量往往比一个互联网网站多,为了方便统一的风格,而且便于客户的迅速学习,而且也便于迅速的开发,这样的设计是合理的。模式的概念一直在SAP延续,所有的程序要求模板化,样式一直也能快速开发。后来web 2.0时代SAP推出的Webdynpro基本上也延续了这一风格。

慢慢的,客户对于交互界面的要求越来越高,用户谈起SAP的界面,第一感觉就是丑,然后SAP开始谋求转变,也经过了痛苦的转型,SAP甚至投奔过微软的silverlight,哈哈,又是一个新玩意,有兴趣的同学可以查查微软的网站,最后silverlight无声无息了,这时候SAP觉得还是要有自己的UI框架,不能受制于人,于是投奔html5,有了现在的OpenUI5.

好了,开始进入正题,OpenUI5就是为了在写写在浏览器上跑的javascript框架么?不尽然,我们来分析一下下OpenUI5里面一些特点。

1. 首先,OpenUI5还确实是一个不错的javascript框架。如果你使用javascript来开发一系列产品,平台的选择有几点你是需要考虑的:

1) 有足够多的漂亮的控件而不是每一个都从原生的html开始写起

2) 有一个编程框架,比如MVC,便于各个团队代码的统一

3) 支持数据绑定。

4) 最少的代码,能开发同时支持桌面,平板和手机的UI。

OpenUI5都支持上面的特性而且还很好的整合在一起。我也使用过一些其他的开源产品做过一些项目,比如JQuery Mobile, Angular, Knockout, Backbone,发现能不做修改同时支持以上特性的开源项目还是比较少,比如JQuery Mobile就只有控件和API,没有框架支持,而且开发的UI只在手机显示比较漂亮,Angular是一个很好的框架但是没有控件,也没有移动支持。我也尝试把两者结合在一起开发,但是额外的整合成本很高,比如使用html5的data标签render出来的div往往会和数据绑定冲突,这个题外话。OpenUI5提供了很多不算难看的控件和切换效果,支持MVC框架,而且支持多种数据绑定,比如JSON和OData,而且少量特定平台的代码,程序能同时在桌面,平板和手机上运行,比如SplitApp。

2. OpenUI5只是一个写Javascript的框架么?仔细研究一下OpenUI5的开发原则,所有的应用都被开发成一个component而不是一个html页面,component会被包含在一个容器里面,这个容器可以是一个简单的html div,但是,SAP有一个launchpad的html页面,component会包含在这个称为lauchpad的容器中,这个容器能干些什么?这个容器可以按照用户的权限,显示用户能看到的应用,没有权限的应用用户是看不到的,而且用户可以按照用户的习惯,把容器里的应用的显示做一些调整,比如分组,位置。好了,移动portal的雏形出来了。像这个样子。

3. 仅仅一个portal够了么?不够,如果关心SAP,会发现SAP发布了一个叫Kapsel的浏览器,这个浏览器能干啥?首先,它是一个普通的浏览器,能跑html5和openui5程序;然后,它内部预置了OpenUI5的所有library,标准的library不用每次下载,其次,它能缓存OpenUI5的程序,由于容量限制,很多移动设备浏览器一般不会缓存程序,但是Kapsel会压缩缓存OpenUI5程序,然后按照修改更新。再其次,它里面还包含了cordova(以前叫做phonegap)的包,这样,OpenUI5可以在Kapsel上访问硬件设备了。

慢着慢着,怎么感觉这个浏览器不像一个浏览器,更像一个操作系统,不过本来现在操作系统和浏览器的区别越来越小。现在html5下浏览器又是webgl,又是本地缓存数据库,又是多线程,又是websocket,本来和操作系统没多少区别。想象Kapsel就是一个操作系统,用户打开Kapsel,可以看到自己所有的买过的程序,下载一次就如同现在移动设备上的应用安装,对于很多BYOD的用户,它直接安装一个Kapsel就如同安装了一个移动设备上的设备管理器,企业的应用都在这个设备管理器内部管理,而且Kapsel还是一个企业内部的app store,你能看到你自己所有经过授权的程序。没有授权的程序你也无法访问。

看到这里,似乎有些想法了,SAP去年还不是有风声要收购黑莓吗?为什么?把这个Kapsel直接架在黑莓硬件上,不就是一个WebOS?这样,OpenUI5对这个WebOS就如同object C对IOS,Java对Android,就是一个应用开发语言了。仔细看OpenUI5的一些设计,比如component的routing,连名字也和Android一样叫做Intent。

好了,知道为什么SAP为什么要将OpenUI5开源了,大家都来用OpenUI5写程序,大家用的多了,生态圈建好了,以后,这些程序就可以直接放到SAP的Kapsel浏览器甚至Kapsel OS上去了。以后,有了OpenUI5的App Store,大家都可以贡献自己的OpenUI5程序,就如同在Google Play上开发Android, App Store上开发IOS程序一样了

4. 这个是OpenUI5的全部么?还不是?毕竟Kapsel是一个针对企业的浏览器,还有一些其他针对企业的特点,比如

1) 和SAP Mobile Plateform的集成。你用OpenUI5开发了好多应用,那么可能数据服务来自于很多服务器吧,比如说企业有HCM服务器,有CRM服务器,你打开每一个应用难道都要去配置连接到哪个服务器?不用的,你只要把你的Kapsel指定到一台SAP的SMP服务器上,这个服务器上托管了所有的OpenUI5程序,同时这个服务器也配置了不同OpenUI5程序的数据服务器地址,这样,你的数据请求会按照SMP服务器的配置转发到配置的真正服务器上,实现了服务器的统一管理。应用程序的授权也在这台SMP服务器上。

2) 按照权限的跳转。在你的OpenUI5程序中,如果你要跳转到其他的应用程序,会按照你权限的不同跳转到不同的应用程序上,比如在你的程序里面你说要跳转到销售订单,那么你是经理还是业务员跳到的应用程序也是不一样的,这也是一些企业程序的特点。

还有很多,不扯了,所以看OpenUI5不仅仅是一个javascript框架(虽然是一个不错的javascript框架),将来也可能是一个app的标准开发语言,他的开源不像以前MaxDB的开源,重要的是修建一个新的APP的开发人员合作圈。

末了,补充一下,OpenUI5的核心大概900K,包含JQuery的包,但是可以分为很多包on-demand加载。如果你需要使用一些其他服务比如D3,也另外加载。也不算太重,而且可以包含在Kapsel浏览器中。






© 著作权归作者所有

共有 人打赏支持
工程师楚门
粉丝 6
博文 2
码字总数 2949
作品 0
浦东
程序员
加载中

评论(2)

火红莲
火红莲
太重了///而且看了代码...觉得不好
苏辽阳
苏辽阳
0
利用 Node.js 实现 SAP Hana 数据库编程接口

自 SAP HANA SP 11 之后,可以使用 Node.js 作为 Hana 的编程接口。SAP 将 Application server 简称为 XS。现在 XS 已经演化为 Advanced 版本。为了区别,早期的 XS 被称为 XS Classical。 ...

前端热爱者
05/16
0
0
企业级网站UI框架--OpenUI5

OpenUI5 是一款创建企业类网站的应用,它可以运行在任何设备上,几乎适合所有浏览器。它是基于Javascript,以JQuery为基础开发的,遵循web标准的应用。它简化你客户端的HTML5渲染库的开发,包...

叶秀兰
2013/12/12
19.2K
1
UI开发组件--SAPUI5

这套前端js框架采用基于HTML5的UI开发组件,封装了OpenUI5,jQuery等,是用来构建和适配客户端程序的用户接口技术。是SAP为快速开发UI,构建企业级产品的JavaScript框架。拥有超过360个丰富控...

xxg2
2014/10/19
14.8K
5
SAP宣布58亿美元收购Sybase

北京时间5月13日早间消息,据国外媒体报道,SAP周三宣布将以58亿美元现金收购商业软件开发商Sybase,这一消息刺激后者股价大幅上涨。 在周三常规交易时间中,Sybase股价上涨35%。该公司股价在...

红薯
2010/05/13
850
6
微软和 SAP 扩展了云环境中的合作关系

近期在SAP的SAPPHIRE NOW大会上,微软和SAP宣布了两家公司间扩展的合作关系,涵盖了在Azure上对包括SAP HANA企业版负载在内的SAP平台的更深层支持。除了对HANA产品更多的支持外,两家公司将提...

oschina
2016/07/30
1K
1
基于SAP S/4HANA构建拜博集团业务平台

  【IT168信息化】SAP公司与拜博口腔医疗集团(以下简称“拜博集团”)在北京共同签署战略合作备忘录。根据备忘录,SAP将借助最新一代企业管理套件SAP Business Suite 4 SAP HANA(SAP S/4HA...

it168网站
2015/11/17
0
0
SAP同略会盛况空前 创新观点值得期待

  【IT168 专稿】2012 SAP中国商业同略会(2012 SAP China SAPPHIRE)于7月26日至27日在北京国家会议中心隆重召开。作为全球企业应用软件领导者, SAP持续深化“中国发展计划”,连续第二年在...

it168网站
2012/07/27
0
0
传SAP将收购Red Hat 分析师认为不可能

451 Group分析师China Martens说,有更多的发展方向对于SAP似乎更有意义,比如SAP最近通过收购Sybase实施其企业移动性战略。此外,SAP官员最近一再表示, 他们的客户拥有不同种类的IT环境。R...

红薯
2010/08/27
609
0
盘点2016:全球最具影响力的10大数据公司

近几年来“大数据”可谓蓬勃发展。NewVantage Partners在2016年的大数据管理调查结果中表明,62.5%的公司现在至少有一个数据项目投入生产,只有5.4%的公司没有数据应用计划,或者是没有正在...

licunlan0904
2017/01/13
0
0
比特网:2011年十大“靠谱”预言

近日,比特网发布了2011年的十大“靠谱”预言,微软收购ARM芯片厂商,排名第一。具体榜单如下: TOP1: 微软收购ARM芯片厂商 微软将动用超百亿美元的资金收购芯片领域的新星ARM公司,ARM在手机...

老枪
2010/12/27
1K
10

没有更多内容

加载失败,请刷新页面

加载更多

下一页

shell中的函数、shell中的数组、告警系统需求分析

shell中的函数 格式: 格式: function f_name() { command } 函数必须要放在最前面 示例1(用来打印参数) 示例2(用于定义加法) 示例3(用于显示IP) shell中的数组 shell中的数组1 定义数...

Zhouliang6
今天
2
0
用 Scikit-Learn 和 Pandas 学习线性回归

      对于想深入了解线性回归的童鞋,这里给出一个完整的例子,详细学完这个例子,对用scikit-learn来运行线性回归,评估模型不会有什么问题了。 1. 获取数据,定义问题     没有...

wangxuwei
今天
1
0
MAC安装MAVEN

一:下载maven压缩包(Zip或tar可选),解压压缩包 二:打开终端输入:vim ~/.bash_profile(如果找不到该文件新建一个:touch ./bash_profile) 三:输入i 四:输入maven环境变量配置 MAVEN_HO...

WALK_MAN
今天
0
0
33.iptables备份与恢复 firewalld的9个zone以及操作 service的操作

10.19 iptables规则备份和恢复 10.20 firewalld的9个zone 10.21 firewalld关于zone的操作 10.22 firewalld关于service的操作 10.19 iptables规则备份和恢复: ~1. 保存和备份iptables规则 ~2...

王鑫linux
今天
2
0
大数据教程(2.11):keeperalived+nginx高可用集群搭建教程

上一章节博主为大家介绍了目前大型互联网项目的系统架构体系,相信大家应该注意到其中很重要的一块知识nginx技术,在本节博主将为大家分享nginx的相关技术以及配置过程。 一、nginx相关概念 ...

em_aaron
今天
1
0
Apache Directory Studio连接Weblogic内置LDAP

OBIEE默认使用Weblogic内置LDAP管理用户及组。 要整理已存在的用户及组,此前办法是导出安全数据,文本编辑器打开认证文件,使用正则表达式获取用户及组的信息。 后来想到直接用Apache Dire...

wffger
今天
2
0
HFS

FS,它是一种上传文件的软件。 专为个人用户所设计的 HTTP 档案系统 - Http File Server,如果您觉得架设 FTP Server 太麻烦,那么这个软件可以提供您更方便的档案传输系统,下载后无须安装,...

garkey
今天
1
0
Java IO类库之BufferedInputStream

一、BufferedInputStream介绍 /** * A <code>BufferedInputStream</code> adds * functionality to another input stream-namely, * the ability to buffer the input and to * sup......

老韭菜
今天
0
0
STM 32 窗口看门狗

http://bbs.elecfans.com/jishu_805708_1_1.html https://blog.csdn.net/a1985831055/article/details/77404131...

whoisliang
昨天
1
0
Dubbo解析(六)-服务调用

当dubbo消费方和提供方都发布和引用完成后,第四步就是消费方调用提供方。 还是以dubbo的DemoService举例 -- 提供方<dubbo:application name="demo-provider"/><dubbo:registry address="z...

青离
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部