长期以来,IT 界一直深受理论与实践脱节之苦——学院派在象牙塔中空谈理论;“Initech” 的程序员在公司隔间里辛勤劳作。虽然这种描述可能有些幼稚,但事实仍然是,学院派和从业者都可以更好地分享彼此的想法和创新。结果,尖端研究往往无法在市场上找到实际应用。
这就是为什么世界需要更多像史蒂夫·罗斯-塔尔博特这样的人。他拥有超过 20 年的经验,将尖端研究应用于实际业务问题。最近,他创立了 Pi4 Technologies 公司,他和他的团队利用 pi 演算领域来提高设计、自动化和分析业务流程的能力。
除了创业经验外,罗斯-塔尔博特还在多个标准机构担任职务,包括万维网联盟 (Worldwide Web Consortium),他是 Web 服务协调组 (Web Services Coordination Group) 的主席和 Web 服务编排工作组 (Web Services Choreography Working Group) 的联合主席。
采访罗斯-塔尔博特的是摩根士丹利投资银行部门的首席信息官斯蒂芬·斯帕克斯。斯帕克斯对业务流程管理领域并不陌生,他在领先的金融机构从事技术工作超过 20 年,担任过一系列开发和基础设施角色。
斯蒂芬·斯帕克斯 除了您在 W3C 的工作之外,您还经历了几家初创公司。您能告诉我们每家公司的角色以及您研究的演变吗?
史蒂夫·罗斯-塔尔博特 1997 年,我创办了 SpiritSoft。当时它被称为 Push Technologies,但我们重新命名了它,因为“推送技术”这个术语名声不好,因为人们通过互联网发布内容并消耗大量带宽。SpiritSoft 的使命是构建一个通用的事件-条件-动作或 CEP(复杂事件处理)工具。
我曾在野村国际参与一个名为 Hoodini(用于高度面向对象开发)的大型项目,我被要求交付一个活动查询工具。事实证明,它是事件-条件-动作的一个特例,其中事件是数据库中的更改,条件是您想要订阅的谓词或查询,动作是刷新您的查询结果集,从中删除或添加内容,然后通知应用程序。
这样做的唯一原因是减少服务器上的带宽,以便您可以开始分发处理,因此您不必返回服务器读取查询。您显然更改了大多数应用程序的编程模型,因为它们必须是事件驱动的。但是,如果您正在进行 GUI 界面,通常会有一个事件循环,因此事件驱动并不奇怪。
关键是围绕活动查询的概念构建一些灵活的东西。我在 97 年离开了野村,创办了 SpiritSoft,目的是交付事件-条件-动作计算的通用能力,因为在当时,我确实认为这是一种非常有趣且可能是构建系统的基本方式。如今,我们谈论事件驱动架构和服务导向架构,就好像它们已经存在了很久一样,但在我们达到这一点之前,发生了很多事情,事件-条件-动作和活动系统是其中的一部分。
长期以来,我一直认为事件-条件-动作是自主计算概念的基础,并公开表示使用事件-条件-动作来构建工作流程。
我在大约 2001 年离开了 SpiritSoft,因为像所有初创公司一样,您必须专注于您可以立即交付的东西,而 SpiritSoft 需要专注于消息传递,而不是我非常想做的高级的东西。
我获得许可离开并做更多关于事件-条件-动作的工作,然后我遇到了邓肯·约翰斯顿-瓦特,他劝说我加入一家名为 Enigmatec 的新公司。
在 Enigmatec,我们回到了基础。这实际上是 pi 演算对我而言的基础。当您进行大量的事件-条件-动作时,如果动作本身是发布,您会得到一个因果链。因此,一个事件-条件-动作规则最终会触发另一个规则,但您不知道自己有因果链——至少系统不会告诉您。
长期以来,这个问题一直困扰着我,因为这在某种程度上是无法控制的,当然,如果我是一名 CIO,有人说他们正在做一些事情,而且非常灵活,我会非常担心我的基础设施的脆弱性,因为人们订阅事件,然后在运行时发布事件。
因此,因果关系开始困扰我,我一直在寻找理解交互本质的方法,因为这些事件订阅和事件的后续发布实际上与分布式框架中不同服务或不同组件之间的交互有关。
在做这些事情的许多年前,我在爱丁堡大学师从 pi 演算的发明者罗宾·米尔纳。我在 Enigmatec 回到了 pi 演算,开始重读我最初的讲义,然后是书籍,最后开始与罗宾本人交流。然后,很明显,有一种更根本地理解因果关系的方法。
pi 演算中一个有趣的事情是,如果您拥有身份的概念,以便您可以指向任意两个参与者之间的特定交互,然后指向可能随后的后续交互的身份,那么您现在就拥有一个因果链,其中包含建立链接所需的身份令牌。这回答了我一直在努力解决的问题,这个问题完全是关于因果关系以及如何管理它的。
在 Enigmatec,我们告诉风险投资者我们正在做一件事,但我们实际上正在构建一个分布式虚拟 pi 演算结构,您可以在其中创建高度分布式的系统并在结构中运行它们。长期目标是能够询问有关系统的问题,我们想要知道的问题类型来自因果关系。例如:我们的系统是否没有活锁?我们的系统是否没有死锁?它是否有任何竞争条件?
这些是消耗您大约一半开发和测试时间的事情。当然,根据我的经验,我经历过的最糟糕的调试工作都与时间和资源共享有关,这些问题表现为活锁、死锁和竞争条件。一般来说,Java 程序员当时为了摆脱这些问题,当他们面临压力时,会更改同步块并使其更宽,这减少了活锁和死锁的机会。但这并没有真正解决问题;它所做的只是缓解了症状。
SS 只是使其发生的可能性略微降低?
SR-T 就是这样。我开始痴迷于完美,因为我真的觉得您必须能够做到这一点。
SS 应该是一个绝对的证明。
SR-T 完全正确。我们可以证明某个东西是整数。当然,我们应该能够证明关于交互的某些东西。我开始研究其他利用罗宾·米尔纳和 pi 演算的工作的论文,并发现了瓦斯科·瓦斯康塞洛斯和小出英夫的一些基础工作。他们的工作着眼于一种称为会话类型的东西,从外行人的角度来看,这就是预先附加到交互的身份令牌的概念。
如果您有它,那么您可以建立一个图——一个等待图或一个因果关系图——并静态分析程序以确定它是否会表现出活锁、死锁或竞争条件。
我开始与小出英夫合作将其放入系统中。那时编排工作组成立了,那时我开始参与 W3C。
让学院派参与进来是很自然的,这就是为什么罗宾·米尔纳成为该工作组的特邀专家,以及小出英夫和吉田信子。他们三人真正形成了交付这些非常先进的行为类型系统思想的支点,外行人——程序员——永远不会看到这些系统。您永远不需要看到算法。您永远不需要阅读文献——除非您晚上难以入睡。
除非您想实现它,否则这是我能想到的唯一人们阅读它的理由。它应该是不存在的,就像我们不必了解图灵完备性和图灵机以及 lambda 演算来编写软件一样。这些都由一般的类型系统处理。
我设法在编排工作组内尽早建立了 Petri 网理论和 pi 演算之间的对比,显然 pi 演算取得了胜利。它获胜的原因是,当您处理大型、复杂、分布式系统时,您遇到的最常见的模式之一是我们称之为回调的模式,在这种模式中,我可能会将我的详细信息传递给您,您可能会将其传递给其他人,以便他们与我对话。在 Petri 网理论中,您无法更改图:它是静态的。在 pi 演算中,您可以。这种可组合性的概念对于任何分布式形式主义在互联网时代的成功至关重要,在这个时代,我们通常在 pi 演算中传递所谓的通道,但我们可能会称它们为 URL,在人与人之间传递。我们一直都在电子邮件中这样做,并且我们没有意识到如果电子邮件末端的自动化计算正在对刚刚传递的我们的 URL 做一些事情,这可能意味着什么。真正需要了解事物的形式方面,以便在互联网上实现可组合性,更不用说在特定组织的领域内了。
我在 Enigmatec 继续做这些事情,但同样,与所有初创公司一样,事实证明 Enigmatec 真的需要专注于解决问题的重点解决方案,并使用我们已经组装好的分布式计算框架。理所当然地,它专注于灾难恢复编排,这本身必须是高度分布式的。这给我留下了一点资金问题,因为那么我如何才能真正利用编排?在那个阶段,我已经研究这些东西两年了。
再次转移阵地是有道理的,Enigmatec 慷慨地捐赠了我们围绕编排建立的所有源代码给一个开源项目,允许我和我的商业伙伴加里·布朗在我们现在的新公司 Pi4 Technologies 中做我们现在所做的事情。顾名思义,它基于使用 pi 演算的概念。
SS 我们将如何利用 pi 演算的惊人力量?这种表现形式会是什么样的?它会如此深入地嵌入,以至于我们只需要意识到它,还是我们会亲身体验到它?
SR-T 我当然不认为您会亲身体验到它。我认为它只会表现为一种类型机制。例如,如果您是大型企业的架构师,那么通常您有三个角色:业务架构师,负责收集需求——功能性和非功能性需求——以及业务流程;系统架构师,负责尝试将这些需求和业务流程融入系统;以及技术架构师,负责实现这一点。通常系统架构师和技术架构师是同一个人。当我们以架构师的身份构建这些系统时,我们经常使用诸如 UML(统一建模语言)之类的东西来描述我们的整体系统,我们这样做主要是因为它为我们提供了一种通用语言。但正如我们都知道的那样,大多数项目失败都是由于沟通不畅,也许还有需求不明确。
我认为第一个表现形式将是系统架构师的工具,用于明确地描述面向服务架构中基本角色或组件或服务之间发生的交互。
例如,在后台处理环境中,您可能需要验证和丰富;您可能需要现金流和结算;您可能需要确认;您可能需要报告和风险。所有这些事情都必须发生,而且它们不是串行发生的;它们是并行发生的。
将会发生的是,我们将交付基于 CDL(编排描述语言)的解决方案,这使得系统架构师可以从可观察的角度完整地描述他们的系统,并保证引入或不引入活锁、死锁和竞争条件。您可以将其视为一种为描述添加严谨性的方法,就像航空电子和电子领域的系统设计师所做的那样。我们正在尝试使用技术向上移动堆栈,并获得与软件之外的正常工程环境中人们通常理解的相同的好处。
如果您有活锁、竞争条件或死锁,它将在您的系统描述中显示为警告或错误,并且它将指向您的编排中发生这种情况的具体行。您不必知道它是如何做到的。您将得到的是,“嘿,您可能在这里有问题。”
SS 因此,在很多方面,就像编译器会在过去标记低级错误一样,这将标记交互建模中的错误。
SR-T 正确。
SS 过去,大型企业在业务流程工程咨询计划上花费了无数美元,但最终得到的是一个建模流程的电话簿或顾问对建模流程的看法。那是一个死胡同,因为没有办法过渡到系统的实现。您所描述的似乎至少建立了一半的桥梁:能够让您对最终解决方案充满信心。
SR-T 您提出了一个非常有趣的点。我最近参加了一个架构师峰会,来自行业的一些杰出人士聚集在一起讨论基本架构原则以及架构师希望从供应商那里获得什么。有人实际上说他们将来想要做什么——设定 2008 年的时间表——是在 Google 上搜索服务,包括属性和行为。有了您提到的关于拥有这些业务流程大书的想法,也许,仅仅是也许,有可能做到这一点。我当然知道,其他 pi 演算爱好者正在做一些工作,他们正在创建一个大型 XML 数据库,该数据库编码了组件的行为,这将提供完全相同的能力。
这将以更基本的方式在组件提供商之间建立竞争。您获得了互操作性的保证,因为您拥有正确的功能和正确的行为足迹。然后,您可以实际决定哪些组件可以参与您的编排——内部或外部——并且您可以纯粹根据非功能性需求做出这些决定:“成本是多少?”“可靠性如何?”那将是一个美好的新世界。
SS 那确实是一个美好的新世界。将这种程度的抽象应用于系统选择或组件选择,并确信您将获得互操作性,这是朝着提高技术投资效率和有效性迈出的巨大一步。
SR-T 为了清楚起见,我们还没有达到那个目标,但架构师峰会设定的 2008 年的目标并不是一个激进的时间表。我猜想,如果我们明年交付它——并且 Pi4 Tech 有可能在明年交付它——它可能在未来几年内都不会准备好用于真正的商业用途,因为它必须经历一些巨大的试验。
SS 很高兴听到您谈论 Pi4 Tech 的商业模式,并且考虑到您是一家处于领先领域的早期公司,您如何确保您分享您正在取得的进展,并且您正在利用最广泛的思想来解决问题,同时又保持您公司的某些商业前景。
SR-T 让我的女儿继续上舞蹈学校非常重要,所以钱是一个问题。在这方面,我正在做几件事。我没有创办一家公司,而是创办了两家公司,这听起来可能有点奇怪,但在某种意义上这是一种对冲机制。
Pi4 Technologies 的主要目的,并且永远都是,作为基于 pi 演算的工具的开源托管者,其第一个表现形式是 Pi4 Tech 的 CDL 工具套件,它在 Apache 许可证下开源——目前是 Apache 2.0——永远如此。
其货币化主要来自第二家公司 Hattrick Software,该公司由 Michael Paull(首席执行官)、加里·布朗博士和我共同创立。Hattrick 实际上是可以使用编排提供的业务需求的垂直化。它为 Pi4 SOA(面向服务架构)、Pi4 Tech CDL 工具套件提供专业的开源支持和咨询,并在其基础上构建一种称为行为骨干的技术。
要理解什么是行为骨干,请想象您拥有一个分布式基础设施,您可以在其中使用 CDL 描述您当前拥有的内容,然后为每个角色生成监视器,这些监视器充当线路上的嗅探器——只是线路上的一个小凸起,用于嗅探组件表面上的输入和输出以及顺序。行为骨干为您提供监视代理以及针对编排的监视信息的整合。因此,您看到的是与计划的差异,它在不对您的服务做任何事情的情况下做到这一点。这是一种巧妙的方法,可以弄清楚您对分布式系统的理解是否准确,因为您可以这样做并发现实际上它是完全不同的,并且您可能会迭代多次,直到获得某种真正反映您拥有的内容的稳定状态。
优势在于,一旦您拥有了高级类型系统,首先您可以确定它是您拥有的内容的反映,其次您可以针对它运行高级类型系统并找到您没有意识到的所有问题。
SS 在许多情况下,这可能会揭示业务流程模型中存在的问题,因此这里也存在一些有趣的潜力,可以作为一种揭示业务流程缺陷的方式。
SR-T 这背后的驱动力是在投资银行中进行复合或结构化产品。这是推动衍生品交易,这仅仅是因为今天在大多数机构中,确认函和可能甚至现金流和结算方面似乎存在大量积压,尽管我怀疑那里的积压较少——银行非常擅长获取资金。
因此,行为骨干的开发实际上是为了使人们能够更好地管理其结算流程,并通过描述交易在其生命周期内的行为来管理复杂交易的生命周期描述。
您可以想象以 FpML(金融产品标记语言)记录的交易,这是交易的静态描述,但扩展了具有 CDL 描述的交易,该描述描述了交易的整个生命周期以及所有可能的接触点。因此,您拥有一个交易生命周期的正交描述和另一个真正是结算流程的正交描述。这实际上就是 Hattrick 正在做的事情,使用 Pi4 Tech 工具套件。
这就是我们如何将我们的工作货币化的。来自 Hattrick 的资金以 Pi4 Tech 为所有开源支持和咨询所占百分比的形式反馈给 Pi4 Tech。这笔钱放在一个大罐子里,用于资助研究项目。
这就是我们如何设法与最广泛的社区互动,以推进开创性的工作。举个例子,我们有小出英夫、吉田信子和罗宾·米尔纳都在从事高级类型系统的开源工作。我们还有另外两个研究小组联系 Pi4 Tech 做出贡献。一个是博洛尼亚大学,在 pi 演算社区中广为人知,另一个是帝国理工学院,它是霍华德·福斯特的团队,他们一直在使用一种称为标记转换系统分析器的东西。
通过这种方式开源,我们设法消除了所有困扰学院派的 IP(知识产权)问题,因此,我们让学术界致力于以业务为中心的问题,这非常罕见。我知道罗宾·米尔纳教授对我们设法将人们聚集在一起并使其所创立的所有工作具有相关性的方式感到非常兴奋,而正是这种相关性是关键。
我一直很擅长采用非常先进的研究并弄清楚如何赋予其商业相关性。我不是一个好的研究人员。我只是很擅长连接点。
SS 借助 Hattrick Software 利用 Pi-4 Tech 创建的平台,您显然希望其他人也能在其他垂直领域或可能与 Hattrick 竞争中利用该平台。大公司都将展示他们现有的 BPM(业务流程管理)解决方案,但如果没有这种能力,他们将缺少使其成功的关键要素。您是否看到来自大型参与者的兴趣,或者它是否仍未引起他们的注意?
SR-T 它真的还没有引起他们的注意。一些参与者表示了兴趣。有一家较小的数据集成专业公司开始使用我们的 CDL 工具,当然,奇怪的是,Hattrick 和任何其他人都有能力编写自己的工具。Pi4 Tech 所做的是开源这项技术,因此这不一定是您进入业务的方式。
我完全期望许多公司利用 Pi4 Tech 拥有的东西,然后在一段时间内编写自己的东西,因为他们会想要拥有生产资料。任何由风险投资资助或公开上市的公司都会想要这样做,这很好。这是值得鼓励的。
还有一家大型、相当知名的软件和硬件供应商对此感兴趣,我们正在进行大量的对话,但目前还没有任何实质性的进展。我认为推动这一点的途径是成功案例。第一个成功案例是 FpML.org 采用 CDL。
我希望的第二个成功案例是 SWIFT(环球银行金融电信协会)将采用它。如果是这样——我有点冒险——那么我认为大型供应商——Oracle、IBM、Microsoft——不可能忽视它。它变得太重要了,他们绝对欢迎使用 Pi4 Tech 的开源产品。
只要他们不违反开源许可协议,他们完全可以自由地重写他们想要的一切。他们可以从头开始重写它,但我们想做的是给他们一个快速启动。我们希望这些东西被使用并尽可能地发挥作用。
从第一天起就开源是一个有趣的方法。我以前从未在一家公司这样做过,但我认为这对于获得使其有用并被视为有用的采用是绝对必要的。
如果没有大型供应商都在关注这一点,如果我们不将其开源,道路会更加艰难。开源做了两件事。在商业方面,它消除了风险,在个人方面,这意味着加里·布朗博士和我将始终有能力从事这项工作,这是不容低估的,因为需要连续性。
SS 您正确地指出,最终公司中的任何研发阶段都将针对实施和解决方案,并且为了作为一个独立的实体生存下来,组织有必要缩小其关注范围。我认为为您继续发展这一点创建一个工具是一个非常明智的举动。
SR-T 所有这些的 IP 不应在于编排工具的生产或 pi 演算的使用。真正的 IP,对企业而言真正的价值,是编排。因此,我希望随着时间的推移,Hattrick 和其他公司将进入市场并创建编排,这些编排将形成企业的模板。然后企业可以采用这些模板并进行调整。这才是真正的 IP。
最重要的是,在交易中,人们到处都在使用电子表格,您有点希望他们不这样做。银行在前台和风险方面拥有的真正 IP 通常嵌入在电子表格中。它不在电子表格程序中。
SS 我想说,您低估了自己,在 VisiCalc 或后续克隆产品出现之前,拥有 VisiCalc 的实体比没有 VisiCalc 的实体具有显着的商业优势。我认为您在这个领域工作了很长时间,并且已经吸收和内化了平台的好处,而对于该领域之外的人来说,平台本身就具有价值。同意,最终价值将体现在垂直实施和适合特定业务流程的编排中。
SR-T 您可能是正确的。价值提取实际上是 Hattrick 的商业模式。因此,我们真正做的是降低许可成本,而许可成本往往由销售队伍、营销团队以及公司最终支付的所有其他费用的引入所主导。我们有点让它更透明,并说,“看,使用该软件并购买保险。”
因此,我们都提取价值。对我来说,价值不是致富。那会很好,但这不是重点。我在互联网泡沫时期陷入了那个陷阱,并且永远不会再陷入其中。对我来说,价值在于做我所做的事情,那就是尝试交付好的技术来解决有趣的问题,并在一段时间内获得公平的回报。我只是在真正地调整模型,以便通过采用开源模型来获得更广泛的采用。
最终,我们将获得公平的价值,花园里的一切都会是玫瑰,当我女儿 17 岁时,我可以给她买一辆车。
SS 基于我对您迄今为止所取得成就的赞赏,我非常有信心,如果世界上有任何公正的话,您将能够在她 17 岁时给她买一辆非常好的车。
最初发表于 Queue 第 4 卷,第 2 期——
在 数字图书馆 中评论本文
João Varajão, António Trigo - 评估 IT 项目的成功:感知与现实
本研究通过提供对 IT 项目成功的新见解,对实践、研究和教育具有重大意义。它通过报告项目成功(而不仅仅是项目管理成功)扩展了项目管理知识体系,这基于几个客观标准,例如项目后期阶段客户对可交付成果的使用情况、客户雇用与项目相关的支持/维护服务、客户承包新项目以及客户向潜在客户推荐供应商。研究人员可以找到一组标准,他们可以在研究和报告 IT 项目的成功时使用这些标准,从而扩展当前对评估的看法,并有助于得出更准确的结论。
艾比·诺达, 玛格丽特-安妮·斯托里, 妮可·福斯格伦, 米凯拉·格雷勒 - DevEx: 真正驱动生产力的因素
开发者体验专注于开发人员的实际体验以及他们在日常工作中遇到的摩擦点。除了提高生产力外,DevEx 还通过提高效率、产品质量和员工保留率来推动业务绩效。本文为理解 DevEx 提供了一个实用的框架,并提出了一个测量框架,该框架将来自开发人员的反馈与他们与之交互的工程系统的数据相结合。这两个框架为领导者提供了清晰、可操作的见解,了解需要衡量什么以及关注哪里,以提高开发人员的生产力。
珍娜·巴特勒, 凯瑟琳·叶 - 设身处地为他们着想
新冠疫情在许多方面改变了人们的工作方式,但许多结果本质上是矛盾的。对一个人有效的方法可能对另一个人无效(甚至同一天对同一个人也可能无效),而且我们尚未弄清楚如何准确预测什么对每个人都有效。正如您在此处描述的综合角色中所见,有些人与隔离和孤独作斗争,很难在社交上与他们的团队建立联系,或者发现与远程团队进行混合工作的时间压力令人难以承受。另一些人则喜欢这种新的工作方式,享受更多与家人共处的时间、白天锻炼的更大灵活性、更好的工作/生活平衡以及为世界做出更大贡献的强烈愿望。
布里奇特·克罗姆豪特 - 容器无法修复你破碎的文化(以及其他残酷的真相)
我们常常专注于技术反模式,而忽略了我们社会结构内部的类似问题。剧透警告:许多看似技术性的难题的解决方案可以通过检查我们与他人的互动来找到。让我们来谈谈在与那些被称为人类的讨厌生物一起工作时,您需要了解的五件事。