软件标准简介

什么是技术标准? 什么是标准? 本质上,技术标准是在垂直扇区中关于应用程序编程接口和/或通信协议的通用协议。 标准可以大可小。 它们对人民社区的思想份额,经济市场乃至公司活动产生深远影响。

英国标准协会提到了有关标准的三个方面:
禁止

  1. 标准增强了消费者保护和信心
  2. 标准提供了互操作性框架
  3. 他们促进贸易

在上面列出的清单中,没有提及创造力企业家精神和经常被滥用的词语创新 。 让我们在下一节中深入研究这些短语。 为了没有时间的人的利益,我想生产这段代表我自己对标准的想法的伪语言代码,尤其是在Java世界中。

class Java_Community_Processalias JCP type of Java_Community_Process

这定义了一个别名类型为Java_Community_Process的实体。 请记住,这不是Java编程语言,而是该示例的组成部分。 当然,我发明的伪Java语言省去了分号,因为我生活在20世纪一世纪的第二个十年,而不是在1990年代中期。 我也对代表的概念表示敬意。 继承中的组成,以及类,类型和函数版本控制的概念,我在其他学术研究编程语言中也提到过。 让我们回到正轨。

JCP是维护,记录和主持500多个Java规范请求(JSR)的标准机构。 让我们选择其中之一:

abstract class JSR delegate from JCPalias JSR type name Specification  // the popular vernacular term "standard"abstract class JPA version 1.0 delegate from JSRabstract class JPA version 2.0 delegate from JSR

这定义了具有两个不同版本的Java Persistence API标准

implementation class Hibernate version 5.0 extends JPA version 2.0implementation class EclipseLink extends JPA version 2.0implementation class TopLink extends JPA version 1.0

这定义了JPA 2.0的两个标准实现,并承认存在与旧版JPA版本兼容的实现。

通常,在编写具体类时,需要首先定义超类。 当您具有完整的超级类的先验知识时,在祖先之前编写实现类是一种奇怪的做法。 一旦拥有许多实现超类并且它们具有通用的功能,协作者和责任感,那么您就该是时候进行重构以简化重用了。
同样,在任何库都可以标准化之前,它们应该已经存在。 许多客户和消费者已经在持续,可靠和高效地使用该库。 这就是为什么专家组第一次创建成功的JPA规范要比实体EJB的痛苦容易得多。

工程师在弄清楚模糊的抽象代码和设计时,通常不会将精力放在将来的标准化工作上。 当您和我有完成某项任务的截止日期时,标准往往就不在您的考虑范围之内。 相反,我们倾向于依赖现有技术和标准的存在,以缩短我们的时间来完成代码,使票证通过完成的定义并将其标记为“完成”

J2EE的失误和沉思

当Java EE于1999年成立时,作为J2EE的委员会,专家组在其总体规范中做出了技术和商业战略上的错误。

首先,它是各种配置的XML地狱。 EJB的第一个版本需要大量的XML配置,只是为了定义一个无状态会话Bean。 他们还指定了该类必须实现的至少两个Java接口。 这是一个漫长的故事,但是Java 5样式注释最终确实节省了时间。

其次,专家组设计了一个灾难性的概念,称为EJB实体Bean,用于持久存储到数据库中。 专家组将其规范基于CORBA等较早的设计标准。

第三,专家组和委员会对开发人员正在进入易于使用,更快且迭代的工程过程感到迟钝。 应用服务器很昂贵,几乎没有开放的完整J2EE技术​​的示例可供学生和新学习者使用。 到了2005年,AJAX和Ruby-on-Rails运动开始兴起,当时的游戏已经快到了。 幸运的是,Sun Microsystems进行了一些导入更改。

最后,该技术严重依赖于依赖关系查找。 该委员会看不到控制反转对依赖注入的未来千年影响。 因此,其他人,特别是一个人看到了市场空白。 有人说,剩下的就是历史了。

创造力

围绕一个标准,创造力与生存能力有关。 如果一个标准看起来过于严格,那么历史表明,创新将在集团内部和外部进行。 有时,创造力将遵循API和/或协议的总体方向。 有时,某些供应商会只为标准支付口头服务,因为即使该标准存在,但该标准仍然太弱或不支持全新概念。

因此,标准不能用于限制创造力。 但是,它们可以帮助确保互操作性。

双刃剑

创造力也是一把双刃剑,在向标准添加特定于供应商的API的合理位置。 例如

在Java EE中,该标准存在几个值得商issues的问题。 我仅列举一些辩论转换主题:

安全性–当前的Java EE安全性不足以满足许多公司的需求,因此您的工作量实际上是变化的。 有多种解决方案,例如Spring Security,Apache Shiro和特定于供应商的API。 还值得注意的是,没有诸如Java EE的单点登录API标准之类的东西。

嵌入式容器–没有用于启动创建所谓的无容器应用程序的标准API。 有人称这个概念为uber-jar或uber-war,有人称其为模块化应用程序服务器和应用程序。 所有人都同意,应用程序概念内的嵌入式服务器将WAR文件的常规部署转移到其头上的应用程序服务器上。 还值得注意的是,主要IDE中用于此概念的工具尚处于起步阶段。

日志记录–关于日志记录存在分歧,或者令人愉快,但没有共识。 现在,有许多方法可以记录错误消息。 考虑将日志记录到云基础架构中的中央服务,考虑仅记录到文件,考虑将那些放弃购物车分析数据点的客户记录到消息队列中。

部署,管理和云–关于如何部署到云服务环境尚无共识。 即使在2016年,这也是现实,因为云技术飞速发展,并且不断变化。

创业精神

让我们回到网络的开始。 也许,每个从事数字开发,设计和架构工作的人都会听说蒂姆·伯纳斯·李爵士 。 正是这位英国绅士创建了万维网的第一个实现,并设计了称为超文本标记语言语言的XML文档变体以及超文本传输​​协议(又称为HTTP) 。 伯纳斯·李(Berners-Lee)创建了这个WWW,同时为欧洲主要科学机构CERN工作 。 (我多么讽刺我在2016年7月1日(星期五)写这篇文章太血腥了!! BREXIT注意。)我们可以观察到,他的前任雇主CERN为蒂姆的创造力和远见付出了WWW的身影。

基于全球商业,贸易和社区术语WWW的指数增长,金融货币的数量足以使CERN资助2000年的科学研究。

根据WWW的估计成本,2万亿美元( Quora )和运行LHC的总年度成本10亿美元( 福布斯 )。

如果欧洲核子研究组织(CERN)申请了知识产权(IPR),那将有一部分钱。 根据Wikipedia的定义,知识产权的定义是指授予权利以保护其免受知识产权作品的商业竞争的侵害,其中包括商标,版权,专利,工业品外观设计权和秘密。

但是,仅仅因为您获得了知识产权,并不意味着您就垄断了市场。 让我们稍微回顾一下历史,以了解现实世界中的这种情况。

史蒂夫·乔布斯(Steve Jobs)曾经戴着领结,突然从库比蒂诺(Cupertino)的苹果公司(Apple Corporation)离开时,一位鲜为人知的计算机科学家创建了一个新颖的概念应用程序,该应用程序是Macintosh计算机的第一版所独有的。

Bill Atkinson是一位传奇的计算机程序员和设计师。 从1978年到1990年,他在Apple工作。他独自负责Quick Draw,这是Macintosh的核心UI库框架,标志着图形用户界面领域的格局发生了变化。 他还创建了名为MacPaint的库的第一个示例。 Bill Atkinson还创建了HyperCard ,它是万维网的可堆叠前身。 实际上,伯纳斯·李(Berners-Lee)使用HyperCard作为灵感来源。 HyperCard的基本要点是能够通过在文本元素上单击鼠标来在卡之间移动。

关键是,HyperCard虽然是WWW和我们所知道的先驱,但它还是一种商业应用程序,因为消费者为获得使用它的特权而用辛苦赚来的钱付了钱。 1987年没有免费的或几乎没有“精简版”的商业产品可用。甚至没有人听说过这种营销Meme,因为没有必要。 我们生活在这个世界上,我们当中那些记得并活着的人看不到这种商业模式的意义。 我们依靠的是盒式磁带,软盘,如果您要访问连接的网络,它就被称为以太网,它可能被称为令牌环。

Berners-Lee对他的婴儿WWW做了什么? 因为他在欧洲核子研究组织(CERN)工作,并且相信自己可以使用通用的信息访问科学模型,并且因为他想帮助自己的用户体验(UX)最终用户,受人尊敬且非常努力的科学家,所以他打开了自己的孩子。 这不是免费的,而是将WWW的IPR当时交给了现有的技术标准机构。 首先,蒂姆爵士向Internet工程任务组 (一个30年的机构)提供了用于通信的HTTP文档。 其次,在1994年,他帮助成立了万维网联盟 (W3C),以正式授权HTML标准和其他与Web有关的部分。 W3C是公认的标准机构。

嗯是的! 如果没有将知识产权授予组织,标准机构,我们对世界的看法将与我们今天生活的数字世界大不相同。

因此,有了标准机构,就可以授予,授权和保留IP。

但是,这并不是企业家故事的结局,或者到目前为止,如何将技术和创造力赠予标准机构仍然没有结束。 作为抵御工业破坏的安全之所,标准团体可以提供保护,免受敌对行动。

以JavaScript的故事为例,这是一种编程语言,它是由Brendan Eich在他的前任雇主Netscape Communications上由一位异常聪明,有争议且在政治上有缺陷的人在几天之内创建并原型化的。 JavaScript的全部内容及其惊人的令人难以置信的影响应该在本书撰写之后再进行,因为我想将您的宝贵精力吸引到Netscape Communication与Microsoft公司的对抗以及Brendan Eich发挥的巨大作用中使JavaScript成为标准的创造力。

30岁以上的每个人都可能记得他们对Netscape Web浏览器的最初印象,Netscape Web浏览器是Mozilla Firefox的正确祖先。 Netscape浏览器是1995年某个马克·安德森 ( Marc Andreessen )的产品,它还利用了市场和机会上的差距,这是业务的两个主要因素。 公众访问Internet突然变成了白葡萄酒,闲聊和八卦课的事情,并且除了非常学术和行人外观的NCSA Web浏览器之外,没有商业Web浏览器 。

就像Netscape Communications突然启动(没有双关语)一样,数十亿美元的庞然大物Microsoft也开始涉猎。 长期的公司之战涉及监管机构,这相当于美国的反竞争垄断做法。 这也是另一个切线,而重点是安德森(Andreessen)以及可能是艾希(Eich)都在寻找更好的稳固防御,以保护他们可爱的产品Netscape和他们的婴儿JavaScript nee LiveScript。 他们担心Microsoft会破坏其精美的动态脚本语言,因此他们与Sun Microsystems一起将其提交给了国际私有资助的标准机构ECMA International 。 因此,今天我们有了ECMAScript和围绕JavaScript编程语言的标准。

加剧竞争

微软在其历史的第一部分采用了一种有争议的业务策略,即拥抱,扩展和然后熄灭 。 这是比尔·盖茨(Bill Gates)所依赖的策略,并在1975年至2008年间由史蒂夫·巴尔默(Steve Balmer)奉行。这与较小的竞争对手发明的技术(包括Java,JavaScript,Apple Windows和标准主体)非常相关。 关键思想是为关键技术和/或标准创建特定的Microsoft扩展,然后依靠大修市场份额来占领和支配小型厂商。 最终,彻底杀死了他们。

创业精神和标准似乎并没有齐头并进,因为它们看上去就像磁铁上的两极对立。 但是,企业会在没有保证和某些激励措施的情况下异常运作,以缩短上市时间,招募合格人员并扩展到新的领域。 因此,标准是明智的思维,您只需要将皇冠上的IPR与对软件技术社区有所贡献的IPR分开即可。 可以将它想像成是将一定数量的资源归还给那些帮助您从一开始就变得富有的人们!

最后,让我们继续进行创新。

革新

创新是一句话迷失的灵魂。 创新实际上意味着什么? 它与创造力有何不同?

在我看来,创新意味着找到某些可观察事件的新颖解释。 创新是纯粹的思维,不会分散注意力。 创新有时会意识到两个相互矛盾的想法或明显分开的主题,主题或主题实际上是相关联的。 质量创新就像飞向地球一样,超越现状,而且实现细节。 有时候,事实恰恰相反。 真正的创新是科学思维,例如宇宙学,林德的多元宇宙或沿这些层次的事物。

在软件中,我们不一定要研究创新,这是我们在Car Hoare , QuickSort ,算法中看到的最好的东西,或者表示为CAP thereom,而这些都是算法。 不幸的是,您不能只出售具有RSA加密和加密物理卡的算法,例如Oystercard是该规则的例外。

但是,我们可以在软件产品,库和框架方面进行创新。 关键是,在标准解决方案之外进行任何标准化尝试之前,创新的效果最佳。 但是,软件创新应该站在巨头的肩膀上。 我们的想法是“此处未发明”(NIH)或“不重做”(DRY),这就像一场可怕的灾难一样席卷整个行业。 如果您从头开始编写自己的事务服务或尝试重写操作系统,那么您需要非常出色的才华和勤奋工作。 莱纳斯·托瓦尔兹鞠躬。 创新是通过需求,挫败感和努力来进行的。

当我们至少有两个类似的Java EE创新实现时,也许(只有这样)我们才应该考虑为其组织JSR,否则我们将犯与J2EE 1.0相同的错误。 创新的麻烦在于,它总是处于不断变化的状态,您如何知道自己在特定的空间中进行了创新? 您的解决方案何时足够稳定? 您是否愿意与竞争对手分享知识产权? 它将如何影响您的客户,生产者和核心业务模型? 如果您经营一家企业,则需要知道所有这些问题的答案。 可能为什么这么少的企业会参与到任何形式的标准机构流程中来,这是可以理解的,因为总的时间,精力和精力都在做出贡献。 如果您从事标准化工作,那么您肯定会询问最可能的投资回报率。 创新,损益与成为标准组织的好公民之间的这种张力永远都不会轻易解决。

结论

人们管理标准机构。 人们参与政治和政策。 因此,标准机构是政治性的,尽管许多机构的职责是减少自负的个人,公司和团体之间的摩擦。 总体而言,如果没有一般性的沟通和同意,它们将无法运行。 最好的软件标准机构具有多种公共功能,避免了社会功能失调,并为垂直部门,图书馆和技术提供了便利。 以W3C为例,创始人和现任总监Tim Berners-Lee爵士发挥了积极的积极作用,以便引领网络的未来。 仅他一个人就拥护这个有益的角色的愿景,并且是标准的面Kong,而不是在遥不可及的遥不可及的关注中进行的不露面的C级执行操作。

现在应该很清楚,您不能使用标准团体或专家组进行创新。 因此,不要期望很快看到Java EE专家组(或任何其他标准机构:ECMA,W3C,IETF)的创新,因为当灯泡出现时,实际的发明者,创建者和数字化机构实际上并没有考虑标准机构在他们的头上突然散发出灿烂的光芒。 他们实在太忙了,无法抢先将创新产品推向消费者的手中。 只有完成后,他们才能回顾自己的轨迹和历史旅程并意识到,也许他们应该拥有自己知识产权的标准化部分。

Java EE 8危机和标准

Java Community Process是Java技术而非创新的标准机构。 从纯粹的观点来看,有些人可能会说JCP只是有偏见,因为Oracle在财务,政治和社会上都支持JCP。 而且因为Oracle是整个Java平台的当前管理员。 在我看来,JCP可以拥有它,因为它已经设置了与Oracle分开的流程和细则。 同样,外部公司,蓝图方面的关注者,例如IBM,Red Hat,Azul等也为定义Java规范请求做出了贡献。 因此,Oracle通过JCP以及通过使用这些相关业务的产品和服务对社区负责。 开发人员有自己的力量,不管您是否愿意对Java EE 8的进展大声疾呼,请相信或不相信,然后您应该查看Java EE Guardians ,然后决定签署他们的请愿书 。

翻译自: https://www.javacodegeeks.com/2016/07/comprehending-ulterior-motives-forces-around-software-technology-standards.html

理解围绕软件技术标准的上层动机和力量相关推荐

  1. 不可告人的隐私百度云_理解围绕软件技术标准的不可告人的动机和力量

    不可告人的隐私百度云 软件标准简介 什么是技术标准? 什么是标准? 本质上,技术标准是在垂直扇区中关于应用程序编程接口和/或通信协议的通用协议. 标准可以大可小. 它们对人民社区的思想份额,经济市场乃 ...

  2. (轉貼) 用禅宗理解、软件开发的境界 (OO)

    轉貼自http://www.cnblogs.com/flashelf/archive/2007/06/28/798967.html 用禅宗理解.软件开发的境界 1.参禅之初:看山是山,看水是水: 初学 ...

  3. 用禅宗理解、软件开发的境界

    用禅宗理解.软件开发的境界 1.参禅之初:看山是山,看水是水: 初学软件开发时认为.C 是 C,VB 是 VB 都要一个一个学 2.禅有悟时:看山不是山,看水不是水: 等到渐渐地运用纯熟了,可以触类旁 ...

  4. ibm软件工程师含金量_令人难以理解的软件工程师:几千行代码能搞定的为什么要写几万行?...

    原标题:令人难以理解的软件工程师:几千行代码能搞定的为什么要写几万行? 一 我们公司的 Windows 版软体已经有十多年的历史,经过历代工程师的整治之后,内容已经凌乱不堪.过去三个月,我找时间自己重 ...

  5. NETINT刘迅思:底层软件开发向上层应用靠拢

    从Panasonic, Sandisk, Versilicon到NETINT,刘迅思一直围绕Firmware, driver等底层开发.他说,在硬件领域研发会有一种很踏实的感觉,对于很多问题会情不自禁 ...

  6. 谈谈对一些软件架构设计箴言的理解 对软件的过早地优化是万恶的根源 反设计模式案例简介...

    http://www.nowamagic.net/librarys/veda/detail/1897在做项目的时候,有些同事总是提前考虑性能优化,需求变更又是一大堆的重写,让我想起了Donald Kn ...

  7. 难以理解的软件工程师:几千行代码能搞定为什么要写几万行?

    导读:"所以程序高手原本就不多,而一直继续在写程序的程序高手就更是稀有了."本文是一位从业多年的软件工程师分享的经验和看法,他提到的一些现象,槽点颇多,应该是从业人员都会遇到的,不 ...

  8. 快速理解各类软件开发过程模型(瀑布模型、螺旋模型、喷泉模型等)

    快速理解各类开发过程模型(瀑布模型.螺旋模型.喷泉模型等等) 1.开发模型-基础概念 2.结构化模型 瀑布模型 V模型 3.原型化模型 快速原型模型 增量模型(演化模型) 螺旋模型 4.面向对象化模型 ...

  9. 如何理解CRM软件里的销售机会与线索

    在销售过程中,销售人员必须充分把握随时出现的各种销售线索和销售机会. 销售线索是没有经过验证的,有待核实的销售消息.销售线索在销售管理体系中处于客户产生销售机会的最前端,一般由举办市场活动.网络信息. ...

最新文章

  1. 两个“不合理继承 ”的判定标识
  2. CCIE试验备考之冗余备份VRRP
  3. Delphi开发步骤经验谈(C++亦实用)
  4. POJ 3660 Cow Contest【传递闭包】
  5. 要让玩家买单的facebook中文网
  6. python中文文本处理_python简单文本处理的方法
  7. php 增加数组下标_PHP数组排序更改下标KEY方法
  8. Jsp 中遇到待解决问题
  9. (转载)C#中如何获取当前路径的几种方法
  10. 通达信指标加密DLL加密解密三个公式源码准确率90%以上超级指标精准买卖绝世指标
  11. jdk 各版本官网下载
  12. 去泰国,怎能错过这些零食!
  13. 论文阅读:Social Media and Fake News in the 2016 Election
  14. 【笔记整理】图解设计模式 | 第16章 Mediator模式(只有一个仲裁者)
  15. Windows10 桌面不停的闪烁问题
  16. python 清空表格_python 清空表数据库表
  17. 苹果平板可以用html么,哪些苹果平板可以用苹果笔
  18. javaString-StringBuilder-StringBuffer
  19. 【代码篇】通过三维坐标在CAD里自动输出三维模型
  20. ruby-to_ary

热门文章

  1. 《Braid》碎片式台词
  2. 杭电c语言课程设计短学期第七次作业,杭电短学期数字电子钟整点报时系统实验报告...
  3. 锁定计算机屏幕的快捷键是什么,计算机屏幕锁定的快捷键是什么? -计算机
  4. 优酷 html flash播放器,优酷播放器提示没有安装flash插件的解决办法
  5. 工作展望简短_2018励志句子简短大全 展望2018励志正能量句子最新励志说说
  6. android怎么设置图片缩放比例,Android按比例缩放图片
  7. VaR方法(Value at Risk,简称VaR)[风险价值模型]
  8. Python之基本数据类型
  9. apt-get install netstat失败
  10. c语言100以内分解质因数,用C语言实现,将100以内的自然数分解质因数