Oracle APEX 系列文章6:Oracle APEX 到底适不适合企业环境?
本文是钢哥的Oracle APEX系列文章中的第六篇,完整 Oracle APEX 系列文章如下:
- Oracle APEX 系列文章1:Oracle APEX, 让你秒变全栈开发的黑科技
- Oracle APEX 系列文章2:在阿里云上打造属于你自己的APEX完整开发环境 (准备工作)
- Oracle APEX 系列文章3:在阿里云上打造属于你自己的APEX完整开发环境 (安装CentOS, Tomcat, Nginx)
- Oracle APEX 系列文章4:在阿里云上打造属于你自己的APEX完整开发环境 (安装XE, ORDS, APEX)
- Oracle APEX 系列文章5:在阿里云上打造属于你自己的APEX完整开发环境 (进一步优化)
- Oracle APEX 系列文章6:Oracle APEX 到底适不适合企业环境?
钢哥注:本文是一篇翻译文章,原文作者:Joel R. Kallman(Oracle APEX 研发总监),原文请移步这里:“Is APEX Suitable for an Enterprise Setting?”。
很多人对 Oracle APEX 是否真的适合企业环境还心存顾虑,所以我觉得有必要做个解释。就我个人的理解,IT 行业从有狗那年起就没有银弹。不管是从前的 SOA、企业服务总线,还是现在的微服务架构、容器技术、无服务等。即使 BAT 这些一线互联网大厂,公司内部也存在很多不同的应用框架和技术栈。别人家的架构永远也只是别人家的,能借鉴的也就是个思路,而现在国内每天都在进行的各种“技术分享会”,也只能靠 “XX公司的技术架构演进之路”之类的话题来吸引人气,因为没有一个架构或技术适合所有的公司。
架构或技术本身并没有绝对的好坏之分,只有适不适合。
(想争论 PHP 是最好的编程语言的同学请无视我,谢谢)言归正传,下面是主要译文。
Oracle APEX 18.1
最显著的新特性就是有能力消费多种远端数据源
,从普通的 REST 数据源乃至基于 ORDS(Oracle REST Data Services)的远程 SQL。直到 Oracle APEX 18.1 之前,数据库连接(DB Link)还一直是访问远端 Oracle 数据库的最普遍方式。当然,这种数据库连接在云端环境是不存在的,而针对这方面的(功能)提升已然变成 Oracle APEX 18.1 的一个核心关注点。
一位具有多年经验的 Oracle 顾问最近发表了一篇关于 Oracle APEX 的负面评论,他在博客中声称:
“在 Oracle 众多的产品中,APEX 已然是(一种)过时的,单层的,与 Oracle Forms 类似古董(工具)。现在许多应用架构都基于 REST 服务了,并且其他的 Oracle 工具,如:Oracle Jet, VBCS 和 ADF 长久以来就具备生成和(或)消费 REST 服务的能力。”
在我继续(下面的话题)之前,我要纠正(他的)几个观点。首先,Oracle APEX 很久以前就已具备生产和消费 REST 以及 SOAP 服务的能力了。我(之所以)知道,是因为我早在2002年就授权了 APEX 针对 SOAP 服务的第一个支持。并且,您也不可能在 Oracle Jet 上生产 REST 服务,因为 Oracle Jet 是一个工具集,本身并不具备后端数据存储(的功能),更没有能力用来"支撑"一个 REST 服务。包括 Oracle 自己的 Oracle Jet 的产品经理们现在都在使用来自 Oracle APEX 上的 REST 服务来演示 Oracle Jet!最后,Oracle Jet 是2015年10月才发布的,而 ABCS (现在叫“VBCS”) 也仅仅是2015年6月才发布的第一版。如果这就是这位顾问所谓的“长久以来就具备”的能力,那么好吧。
回到(博主)提到的"过时的,单层的,不够现代化"的问题。在回应 Morten Braten (Oracle APEX 论坛社区的资深人士)的问询时,该顾问声称“单层(应用)对于企业环境来说很少是好的选择”,在回应我关于什么是"企业环境"的定义时,他仅仅援引了另一篇讲述“单层工具对企业是坏的”的网络博文。
他质疑 Oracle APEX 架构的观点之一是:"数据在被其他人看到之前必须先提交到数据库"。我觉得这是个很奇怪的观点。上一次我关注(这类问题)的时候,大部分的业务应用系统都是用来处理数据的。从现在(往前)倒推30年,我们处理数据的界面和方法变更了十几次了。然而,(企业应用系统)处理的仍然只是 - 数据。Billy Verreynne(一位资深 Oracle APEX 专家)曾在2005年评论道:“企业应用系统到底应该关注什么?是数据!(数据)才是最核心的,(数据)才是驱动业务的关键。铁打的数据,流水的应用。数据保存在哪里?数据库!数据库才是核心所在。数据库自从上世纪80年代就出现了,而现在仍然在那里。将关注点聚焦在数据上,为了数据来设计,并有效利用好数据才是企业应用设计的关键所在。”
我经常告诉人们,Oracle APEX 跟许多其他技术的交叉点就是 Oracle 数据库。Oracle APEX 是一个功能非常强大的应用开发环境,它同时也是一个带有交互界面的设计开发引擎,跟这位顾问提到的许多企业应用框架是一样的。并发性、事务完整性、持久性
- 这些问题 Oracle 数据库早在许多年前就已经解决了。并且作为奖励,您同时还免费获得了零延迟的数据访问
能力。所以,“在任何人看到数据之前提交到数据库”从来不应该被认为是缺陷,反而应该被考虑成是一个特性。
反观“企业设置
”这一术语,对于每一家企业而言,从简单的应用到完整的关键业务应用,对应着不同的需求。如果把这些需求画成一个图,类似下面这种:
最底部代表最简单的应用需求。这类应用应该是非常简单
就可以实现的,复杂度非常低
,基本一到两个人
就可以开发完成,并且只有短暂
的可预见的生命周期
,这类应用往往都是 "机会主义" 类型的应用。
而图的最上面则对应的是真正的企业关键应用需求。这类需求往往需要更大的团队
(通常10到20人,甚至更多的开发人员)、并且配备专职的项目经理
,拥有专门的预算
,系统复杂度和成本都非常高
,开发的则是企业真正的关键核心应用系统。
那么,Oracle APEX 能够解决的需求落在哪个区间范围内呢?我相信这也是我跟上面那位顾问最大的分歧所在。我相信 Oracle APEX 绝对可以处理这里面从下至上 90% 的需求。
虽然Oracle APEX 可以被企业客户用来开发大型 ERP、HR 和 CRM 系统,并支持数以千计的终端用户的,但 Oracle APEX 真正的强项还是在处理从下至上这 90% 的需求。
每家公司自己的应用系统(与真正的需要之间)都有差距。连作为信息管理公司的 Oracle 公司 自己也会存在这种差距。没有一个企业或应用系统可以完美地解决所有的业务需要。问题是,我们该如何来解决(这些问题)?还是仅仅放任自流,根本不去解决?企业架构师优先选择的肯定都是主流的、广受支持的技术栈,但往往这些技术栈对大部分现有开发人员不是那么容易可以使用的,这也是为什么至今为止 Excel 式的“系统”仍然在企业里广泛使用的原因。
上面那位顾问所信奉的企业架构都应该选择最理想的技术来开发。但问题是,在上面的图中,这类"理想"的技术对于开发数量众多的简单应用而言,在应用架构和相关技术栈层面,是否带来了更多不必要的复杂度或成本开支呢?一家企业现存的应用系统中,能有多少可以被称为真正的关键应用系统?10个?20个?30个?与之相对的却是数以百计、千计乃至万计的“非关键”应用系统。我很高兴看到 Oracle APEX 可以被用来快速解决掉这其中 90% 的需求,即使对于大型企业也依然如此。
在我们 Oracle 内部,我每天也都能看到 Oracle APEX 正在解决这 90% 的需求,所覆盖的范围从跟踪硬件资产分配 & 管理
到 旨在管理与区块链案例相关的抵押品应用系统
,再到可以给财务部门提交薪资问题的应用系统
- 这类“90%”的需求的覆盖面是非常广的。问题是,被认为是理想中的技术真正解决了这其中的多少需求?最终是用纸,还是用一个电子表格来解决的?您是否更愿意选择一个基于 Oracle 数据库的、久经考验的、可扩展的低代码开发框架
,让它来帮您完成 Web 应用开发中涉及到的所有方方面面,而您则可以将注意力更专注于解决业务问题呢?是的,我的朋友,我说的这个框架就是 Oracle APEX
!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
如何成为一名成功的程序员
编程是一个仅靠兴趣仍不足以抵达成功彼岸的领域。你必须充满激情,并且持之以恒地不断汲取更多有关编程的知识。只是对编程感兴趣还不足以功成名就——众所周知,我们工作起来像疯子。 编程是一个没有极限的职业,所以要成为一个成功的程序员,你必须超越现有已存在的极限。在程序员职业生涯的开始阶段,他们将面临许多挑战,面对困境,他们之中有一些人将会放弃,而只有少数人会坚持到底,并成为这个领域的领头羊。 成为成功程序员的步骤 1.愿意学习新技术 随着技术的不断进步,我们学到和实施的技术会很快地过时。所以,作为一个程序员,你就需要更新你的技能,保持与时俱进。市场上出现的所谓新技术通常由一些进程和语法变化而构成,但逻辑是相通的,所以你可以很快地掌握它。 2.调试技巧 程序员不但需要创建代码,而且当软件不按预期方式工作时,程序员还必须能够快速而有效地解决问题。 因此,与其更改所有代码,还不如在创建程序时制作适当的流程文档,以便你可以快速检查代码并尽快找到问题。制作正确的文档可以方便你快速调试程序,而不浪费时间。 3.解决问题的技巧 当一名普通的程序员获得项目/模块时,他们会直接写代码。但一名成功的程序员会试图找...
- 下一篇
从基线模型开始:别担心,模型最开始都让人不忍直视
怎样高效开发机器学习产品 想要开发通用AI,首先你得掌握逻辑回归模型。 从最基础的开始 在大多数领域,当人们尝试用科学的方式理解世界时,都会选择先宽泛研究整体的内容,而不是立马深入到重要的细节之中。 譬如在物理学领域,我们常常从简单的模型开始(牛顿物理学)做研究。然后,我们在逐渐认识到最初的一些假设并不正确时,就会慢慢开始使用更复杂的模型。这种方式可以以最简单的方法高效地解决问题。 凡事力求简单,但不要过于简单。 ——阿尔伯特·爱因斯坦 同样的思维模式,即从最简单的模型开始建造,也可以应用于AI工程之中。并且在大多数情况下,这样的方式都很有价值。 事实上,在Insight上目睹成百上千个项目从想法发展成实际产品之后,我们发现将一个简单模型作为基础版本,往往能让最终产品变得更棒。 但在解决复杂问题时,简单的解决方案(比如下文中讨论到的基线模型)存在诸
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Mario游戏-低调大师作品
- CentOS关闭SELinux安全模块
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Red5直播服务器,属于Java语言的直播服务器
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS6,CentOS7官方镜像安装Oracle11G