当今开发人员面临的最有影响力的趋势有哪些?

 

 

Editorial staff (mailto:dwinfo@us.ibm.com), developerWorks, IBM

2007 年 4 月 06 日

了解 IBM 技术专家认为开发人员目前面临的最有影响的趋势有哪些。

引言:冰块业务 (ice business) 教训

高科技行业中,我最欣赏的人之一 Guy Kawasaki 经常给人讲关于采用新技术的一则故事。有的读者可能没有听说过 Guy,他是最早的技术倡导者之一。在 Apple Computer 成立之初,他就在其中工作;作为技术倡导者,他的主要职责是向即将使用新技术的人们(特别开发人员)介绍这些技术的优势。他所讲的这个故事对尝试预言下一代重要技术的人员具有深远的影响,给很多人带来了无限的希望。

Guy 的故事讲述冰块使用以及冷冻技术的历史。获得冰块的最原始“技术”(如果您愿意这样说)是使用大型船只。在电力和冷冻技术发明前,人们驾船航行到北极地区,在冰帽、冰川等上砍下巨大的冰块,然后将其运回。随后,会将这些冰块储藏起来,将其切割为便于使用的大小,然后卖给消费者,由他们运回工厂企业或家中使用。

后来,终于发明了冻结水的技术。这项冷冻技术为各个大型企业所掌握,他们生产大量的冰块。消费者要出门购买冰块,冰块在专门的地方销售(随着时间的推移,后来也开始在零售商店里销售)。

接下来的技术突破将冷冻技术送到了消费者手中,他们可以购置家庭使用的冰箱和冰柜。现在消费者可以自己制作冰块和储藏,而不再需要出门去购买了(当然,除非他们要举行大型宴会,不过这有些跑题了)。

有意思的是,拥有用于从北极运回冰块的船只的是一个特定企业群。而拥有集中冰块生产技术的则是另外完全不同的企业群。同样,制造和销售冰箱冰柜的又是另一个企业群。在冰块业务第一技术阶段获利的企业中,没有一个在第二技术阶段(冷冻厂)赚到钱。而第二阶段的企业没有一个成为家用冰箱的制造商。

这个小故事告诉了我们什么呢?那些拥有我们今天使用的技术并从中获利的企业可能不是拥有下一代技术并使其得到成功应用的企业。(当然,IBM 是此规律的一个特例。这只是个玩笑,稍后我们将更为详细地说明。)完全有可能出现这样的情况,某个我们今天甚至都不认识的人将对下一代技术有透彻的理解,从而在全新的高科技行业扮演重要的角色。

当然,那个人有可能就是您,而本文的专栏文章目的就是帮助您了解一些此类重要的新技术趋势。确定了这个目标后,我们给 IBM IT 体系结构专家组提出的问题是:当今最有影响力的技术趋势有哪些?我们的问题如下:

您认为最近的最重要技术趋势是什么,它将对软件工程造成何种影响?

通过他们的回答,我们将知道为何 IBM 始终有机会在未来几十年中保持自己的重要地位。他们的回答还将至少能给某位读者带来灵感,帮助形成下一代技术理念。如果您就是这个人,请告诉我们。:)

developerWorks Architecture 团队——

Paul Dreyfus
developerWorks 成员

pdreyfus@us.ibm.com



参与者越多,结果越好

Holt Adams毫无疑问,最重要技术趋势是 Web 2.0 的概念和在构建 IT 解决方案过程中越来越多地使用开源技术(特别是对于软件工程来言)。而这方面领先的似乎有两个阵营:采用“作为服务的软件”(software as a service) 方法的独立软件供应商(Independent Software Vendor,ISV)和中小型企业。

Web 2.0 的发展以及使用 Internet 作为业务“平台”(与使用 Internet 作为通信机制相对)的趋势正在逐渐形成全球社区,并不断带来各种业务机遇。例如,开源社区成员在多样化的理念和共享资产方面的贡献就促进了软件作为服务业务模型的发展。资金、开发资源和分发渠道有限的创业公司通过利用开放源代码实现了茁壮成长。类似地,中型企业经常更关注于对其利益的近期影响,必须牢记开销和成本对其业务的持续和发展具有重大的影响。因此,他们在寻找恰当的方式,以将开发和部署阶段的成本转换为生产中实现的收益。规模更大、更成熟的企业已经注意到这些趋势,也在评估自己如何利用这个全球性的资产和人力资源池。

主要 Web 2.0 主题之一是“参与者越多,结果越好”(指内容和服务创建方面)。除了具有各种理念和经验的全球团队的贡献外,所涉及人员的数量本身也能对软件的质量有所帮助。(这并不是说开源软件的质量一定高于商业软件。)例如,可以进行错误查找工作的人越多,所执行测试的覆盖率越高。除了开源社区和支持其开发工作的工具外,其他经常提到的 Web 2.0 成功案例的成功也源自参与者数量的不断增加,包括:FlickrDogearBitTorrent

关于公司为何在构建其解决方案时考虑开源软件,有很多理由。这包括,能够接触源代码、评估和使用软件程序包的入门成本低以及能够采用 DIY 开发方法等。事实上,对于有些客户,开源软件的功能和质量足以满足其主要需求。不过,这其间通常会存在重大的折衷。开源项目的数目超过 100,000,使用开源软件的常见障碍包括发现、集成、维护与支持、许可遵从、安装和配置。对于很多利用开放源代码的客户而言,性能、可伸缩性和互操作性等非功能需求经常未得到恰当优化,可能导致彻底的体系结构更改,从而导致成本大幅度增加。即使有这些障碍,客户仍然能在提供服务和工具的开源基础设施企业(如 OpenLogic、SourceLabs 和 SpikeSource)的帮助下继续成功地评估和使用开放源代码。

当企业利用开源软件时,IT 架构师的角色变得更为重要了,因为将由此架构师负责处理这些新挑战。同时,架构师在寻求意见和支持时,并不存在可视为主要 IT 供应商的实体。与此类似,IT 供应商可以扩展其业务模型,向其选择开放源代码的客户提供额外的服务,以帮助他们集成现有解决方案。他们还可以恰当定位其产品,以在开源技术的功能不再能够满足客户的解决方案需求时满足其需求。

很难想象来自不同公司、国家和地区,具有不同价值观的人一起协作,提供商业软件的可行替代项,但这切切实实发生着,而且成功的例子越来越多。





五大趋势,以及由此形成的第六大趋势

Ali Arsanjani在我看来,软件工程方面无疑正在酝酿着一场风暴。很多信息和观念正在逐渐整合或彼此挑战。

回顾过去的 15 年,我亲眼看见面向对象的趋势逐渐成为了主流,试图渗入从建模到 COBOL 的各个方面,然后快速地从表面上消失,渗透到每个角落:从很大程度上说,对象无处不在。

我们通过对象学到的知识之一是 1993 年到 1994 年提出的设计模式。当然,这些知识已经存在了一段时间了:“对接口编程,而不要对实现编程”。

转眼到了 2003 年,Web 服务开始普及。然后是 2004 年-2005 年,面向服务的体系结构(Service-Oriented Architecture,SOA)开始出现。显然,“对接口编程,而不要对实现编程”的趋势又以一种新的形式出现,开始尝试进入体系结构堆栈的较高层:SOA 是将接口从实现和传输(绑定)分离,但有趣的是,此工作在体系结构级别进行。

到目前为止,我们在应用程序(或企业)体系结构中包含了一个层次结构,即一个服务层和一个接口层。

但这个趋势并未就此停住。这一年我们亲眼看到了组合应用程序各个方面越来越多的发展和骄人的成果,这些贡献既来自 IBM® 和 Microsoft® 等工具供应商,也来自 SAP 和 Oracle 等已打包应用程序供应商。这进一步提高了抽象级别,使企业可以将流程视为由多个彼此交互但相互独立的服务组成。

抽象级别的提高并不是此趋势的唯一表现,而且也体现在另一个与其正交的方面:即,以策略为代表的声明式外部化。功能被外部化,各个服务提供商可以提供相应的实现,以便采用此功能。此外,我们还能够以声明的方式外部化与行为(功能和非功能)以及该服务的预期服务质量相关的服务配置。

因此,我认为目前有五大趋势。以下为前四个:

  • 一个趋势是提高抽象,从编程到体系结构层再到业务层。此趋势导致的结果是,服务现在是企业资产,而不在仅属于 IT 范围内了。
  • 第二个趋势是功能(服务是提供者还是使用者)和策略(服务的非功能属性)的外部化以及声明的添加。
  • 第三个趋势是组合和可组合性。
  • 第四个趋势是在总线上集成(而不是点到点集成或仅仅是轮辐式集成)。一个非常特别的总线(即企业服务总线)提供了通过已分离的提供者和使用者定义集成的方法。

最后一个趋势利用其他几个趋势,最初似乎彼此对立的东西现在开始彼此融合了。我在 SOA 身上看到了这些趋势的融合。

现在第五个趋势更为微妙,正在缓慢地发展,逐渐成型。这标志着更为成熟的集成级别的出现。这是通过以新的有意义的方式组合其他四个趋势而形成的。

因此产生了一个混合物,而这个过程本身就是第六个趋势。这就将语义包含进来,使其进入一贯由句法和接口统治的环境中。这可以在 Web 2.0、语义 Web (Semantic Web) 以及信息交互和用户界面方面更为明显的趋势中得到表现。

这对软件工程有何意义?这意味着软件工程的基本原理现在正逐渐向新的领域和方面发展,各个基本原理彼此进行组合,其本身也在发生变异,所得到的新组合最初可能会让人不知所措,但很快便会脱颖而出,开始越来越多地得到非技术人员认同。





敏捷性方法

Jorge Diaz确定最重要的技术趋势是一项主观性相当强的活动。我没有直接选取在最新的计算机杂志中越来越多谈论的话题,相反,我选择的话题并不那么引人注目,但与软件工程领域具有很密切的关系。

对于此问题:最近的最重要技术趋势是受到敏捷性方法影响的传统软件工程生命周期模型的发展。

方法几十年来一直是业界一个热门话题。在本世纪初多种敏捷性方法(如极限编程——Extreme Programming,XP)广受欢迎的同时,此主题再次得到大家的重视。敏捷性方面的很多发展都是为了处理通过传统软件开发方法导致的过剩现象。其中很多都过分强调文档和流程的角色,有时候甚至认为它们比交付这些内容的人员更为重要。所有这些都会导致一个反应(这在开发人员圈内非常常见),即采用更为以人员为中心、更为简单的流程,此类流程降低了传统文档相关的重要性,提高了质量保证活动的重要性。

不幸的是,这个反应将其很多支持者推到了另一个极端,他们有时候会忽视传统方法的价值。这意味着在某些敏捷性领域(特别是 XP),开发人员经常认为复杂的前期工作会对软件开发工作的效率造成负面影响。相反,他们建议采用 Test-first 设计(经常用于测试驱动的开发流程中)之类的技术。

这类方法在小型的受控环境中已初见成效。大部分大型开发组织通常并不对提出的所有建议提供支持。这并不意味着大型组织并未受到其明显的影响,而主要是因为很多敏捷性方法被更多地视为有待完善的最佳实践,而不是用来替代当前的方法。这种熔炉式方法已由业界通过实践进行了验证,通过实践,加强了其对测试、重构和创建更为简单的体系结构设计的关注,并同时仍然遵循各个流程和文档框架。例如,Rational® Unified Process (RUP®) 知识库已经过了扩展,现在包含各种可在其已知生命周期模型中使用的敏捷性方法。

敏捷性方法毫无疑问帮助唤醒了传统软件工程社区,让他们认识到所面临的是一个节奏更快的世界,要求以更低的成本更高效地实现目标。他们对更为传统的方法的积极发展起到了推动作用,带来了软件方法研究领域的复兴。因为所有这些原因,此趋势对软件工程具有非常深远的影响。





摩尔定律的终结?

Don Ferguson很难从众多动向中仅选出一个趋势。我不由自主地想到 SOA、硬件/软件虚拟化、使用 Web 服务进行管理、模式、代表性状态传输(Representational State Transfer,REST)、应用程序 Wiki、Ajax 和很多其他东西。对于这些大家热衷的话题,有大量的公开讨论,同时很多博客文章也对其进行了积极的探讨。因此,我将不会选择这些广为人知的话题。我选择的是“摩尔定律的终结”。

数年前,几位 IBM 技术带头人在内部讨论过摩尔定律的终结。他们的主要观点是,单处理器性能(指令执行速率/时钟速率)将不会再每 18 个月翻一倍。冷却和电源问题妨碍了持续的指数级增长。您只要穿着短裤时将便携式计算机放在腿上,就会明白他们为什么这样认为了。

我对此的第一个反应是,这个问题与软件无关。很多软件客户所面临的难点都与总体拥有成本相关。其主要成本是系统管理和应用程序开发与测试方面的成本。随着摩尔定律的终结,可通过使用多核心、多芯片组和刀片技术来进行横向扩展,从而提高性能,那又怎样呢?我们的中间件已经能够支持横向扩展了,例如 WebSphere® Extended Deployment (XD) 就支持横向扩展。大部分商业 Web 应用程序都使用请求间并行机制,并不需要支持请求内并行的工具或语言。

我已经意识到自己当时有些目光短浅了。让我们看一个横向扩展的例子,并考虑一种极端的情况:“如果硬件不用花钱,我们的中间件将会是什么样子?”以处理动态 Web 请求为例。Vanilla Common Gateway Interface (CGI) 太过低效,因为它会为每个请求分叉出一个进程。如果硬件不用花钱,我们将不必考虑这一点。很多中间件结构都源自这样一个假设,即分叉进程、运行它并随后销毁进程的做法对硬件的利用非常不足。正是由于这个原因,我们才使用服务器池、多线程服务器、连接和数据缓存、基于关联性的请求路由等等。如果硬件不用花钱,我们还会这样做吗?可能什么都不会做。

这个事实吓我一跳。这是否意味着我们不需要 WebSphere 之类的中间件呢?答案是,现有中间件将会进一步发展,从而扮演不同的角色。幸运的是,我们所拥有的中间件非常适合用于承担这个新角色。接下来让我们看看几个技术问题和解决方案。首先,考虑以下情况:WebSphere 有一个连接管理器,该管理器实现了 Java Connector Architecture。它将缓存连接、性能事务和安全关联性,以便重用连接。连接管理器可提高 WebSphere 应用程序的性能。用户会话中命中的每个网页并不都需要登录到 CICS、获取数据然后再注销。

如果硬件不花钱,为什么还需要这个功能呢?只需要分叉进程、登录、运行事务、然后注销。我并不关心 Web 事务的路径长度。那么,连接管理器在未来将十分重要,但其角色会发生变化。连接管理器保护 CICS(DB2、Oracle)不会受到每秒成千上万的连接、登录、事务处理、注销序列的影响。没有连接管理器,现有操作系统将不堪重负,从而导致 ATM 和其他类似设备脱机。因此,与中间件承载的应用程序相比,我们的中间件所进行的很多工作(多道程序设计、缓存等)给由中间件集成的软件带来的好处更多。

现在,让我们看看第二个情况:我们很容易认为中间件的唯一价值是“保护遗留资产”。以 WebSphere 中的分布式多服务器缓存为例。其充当的角色之一是优化WebSphere 应用程序性能。另一个任务是减少外部系统上的负载。它还承担着实现性能独立或保护外部系统的任务。即使硬件不用花钱,仍然经常会出现对“软”资源的资源争用,此类资源如数据、队列等。

考虑一下处理大量股票交易的极端情况。购入和售出请求以及竞价和报价出现的频率非常高。所交易的股票数目非常多。解决此问题需要使用多台计算机,以提供所需的吞吐量和可用性。此问题似乎无法通过简单地为请求分叉进程、读取数据、更新并写回来解决。我们可能会依赖硬件来解决此问题,但这个解决方案会由于数据争用而显得力不从心。为了提供解决此问题的环境,需要中间件、缓存管理、工作负载管理器(Workload Manager,WLM)等等。

硬件价格的发展以及 LAMP (Linuz, Apache, MySQL, and PHP/Perl/Python) 和环境应用程序 (Situational Application) 将改变中间件和工具的本质,但并不会消除对其的需求。我们刚刚讨论的两个问题是两个简单的极端例子,但却代表了大量可能出现的实际问题。





纳米技术

Calvin Lawrence我选择纳米技术!纳米技术是是一个包罗万象的词,指在纳米级别操作的材料和设备。此技术是分子级微型机器的工程学。纳米是十亿分之一米。通常所提及的纳米材料和设备即表示材料能够以纳米为单位进行度量。将来可能会有这样的医疗设备,能够进入人体,并能在癌细胞扩散前找到并消灭癌细胞,而且不会带来其他伤害。也有可能在一个比小糖块还小的盒子里竟然包含国会图书馆的所有书籍。或者,比钢材轻得多的材料竟然有十倍于钢材的强度。纳米技术不仅仅与制造更好的产品相关,而且是一个得到大幅度改进的制造流程。像复制文件一样廉价地生产这类产品只是一个时间问题。

纳米技术今天已经在很多行业得到了应用,特别是在政府、制药和军事方面应用更为广泛。





随需应变模型的可伸缩性推动创新

Sridhar Sudarsan很难准确地确定一个最重要的技术趋势;有多个趋势都可能对软件工程造成影响。总的说来,我们构建的应用程序和系统越多,需要理解的需求和需要的创新就越多。随着我们采用分布式计算随需应变模型,在此类解决方案的可伸缩性方面存在一些挑战,需要一些创新解决方案,而这又反过来定义了一些趋势。

在基础设施端,一个新兴趋势是虚拟化,在使用这种技术时,并不需要考虑谁处理信息以及在哪里处理信息。网格计算为基础设施提供了“随时随地 (anytime and anywhere)”计算模型。而这其中颇有意义的就是实用工具或所承载计算功能的“用多少付多少 (pay-as-you-use)”模型,企业并不基于其峰值负载购买硬件基础设施,而是根据使用情况付费。另外,随着分布式系统规模日渐增大以及速度的日渐加快,跨平台计算能力(在大型机和分布式系统上)也在不断提高。

在应用程序端,创建可重用业务组件并将其作为服务接口公开的需求正在改变软件工程师看待构建新应用程序的方式。各个企业现在认识到了采用 SOA 的重要性及其能带来的好处。数据建模现在变得更为重要,而同时,联机事务处理和批处理计算之间的边界也在逐渐消弱。24/7 处理导致了“随需应变批处理”之类的概念的出现。中间件边界现在也通过信息集成和工业模型扩展,目前也大约落入这个领域内了。

从开发流程和配置管理角度而言,全球外包正在不断增加对高效协作工具、团队开发环境和 24x7 开发与测试环境支持的需求。开源开发项目意味着数百甚至数千开发人员同时进行同一个项目,以交付高质量的代码。这就为团队协作环境带来了一系列独特的挑战。

完全可以说这些技术趋势均实际源自不断变化的业务需求。这将反过来改变软件工程师看待以创新方式解决此类问题的方式。





飞速发展的计算机网络化

Bobby Woolf计算领域中最为重要的趋势是 Ajax。不,只是开玩笑:Ajax 只是一项图形用户界面(Graphic User Interface,GUI)技术。这是一项相当不错的 GUI 技术,但 GUI 不过是类似于汽车中的仪表盘的应用程序。

我认为最有意义的一项技术趋势是 IBM 和其他公司已经推广了数年的多项技术方法的组合:随需应变、虚拟化、网格、自主计算、普及计算以及最近的 SOA 和企业服务总线(Enterprise Service Bus,ESB)。这些技术一起形成了强大的新技术方法,用以通过 IT 实现业务价值,具体如下所示:

  • 随需应变是指企业能够随时向客户、员工和合作伙伴提供所需的信息和功能,并能够根据用户的需要创新和实现新功能。
  • 虚拟化表示这些功能直接可用,而不用考虑其承载位置以及如何交付,可以方便地对功能进行替换和复制,以提高容量。
  • 网格使得能够随时随地在任何地方使用这些功能,或至少能在需要时使用。
  • 自主计算允许网格自动进行调整,以提供尽可能多的资源,从而提供理想的容量,以应对不断更改的负载,补偿停机和瓶颈可能造成的影响。
  • 普及计算允许用户从任何类型的设备访问网格上的这些功能,而不管此设备是富 GUI、Web 浏览器、嵌入式柜员机还是无线个人数字助手(Personal Digital Assistant,PDA)。
  • SOA 将这些功能打包为可重用业务服务,以便能够通过已知接口远程调用这些服务,并获得事先确定的服务质量。服务提供者能够通过依赖于网格的自主功能来满足部分服务质量要求。
  • ESB 允许服务调用本身对自主网格加以利用,将请求路由到容量最大且响应时间最短的提供者,并负责在使用者预期的接口和提供者实现的接口之间进行转换。

不仅每个方法本身有意义,而且其组合具有巨大的潜能。这就是高速发展的计算机网络化。SOA 服务由连接的计算设备通过 ESB 调用,可提供对始终可用的人员业务功能的访问。可以迅速将这些服务重新组合为新功能,以支持针对不断发展的业务需求的创新方案。

在对软件工程的影响方面,它将使您熟悉这些技术和概念,特别是 SOA 和 ESB。您的公司应该进行数个实验性项目,以尝试将这些技术和产品应用到您的业务中。否则,如果您只是在局外观望的话,则很可能被当今 IT 中的一些重大趋势甩在身后。





关于专家

Holt Adams

Holt Adams 是 IBM Software Group Emerging Technology 团队的执行 IT 架构师,目前在支持 IBM 的 jStart 计划和 Customer Innovation Team。作为解决方案顾问 IT 架构师,他的工作职责包括将客户的业务需求和信息技术相结合,以将其包含到 IBM 产品中,或设计为新产品。在 jStart 计划和其他服务相关工作中任职期间,他涉及的技术领域包括无线/普及计算、Internet 基础结构、Java/Java EE、XML、Web 服务/SOA、富 Internet 应用程序及 LAMP 技术。他也是本月“观点与展望”专栏的供稿编辑。

Ali Arsanjani

Ali Arsanjani 博士是 IBM Global Services 的 SOA and Web Services Center of Excellence 的首席架构师,主要负责收集和制定 SOA 和 Web 服务的建模、分析、设计和实现方面的最佳实践。他是内部的 IBM 全球 SOA and Web Services Community of Practice(拥有 4000 名成员)的负责人,是 SOA 的面向服务的建模和体系结构(Service-Oriented Modeling and Architecture,SOMA)方法的主要作者之一。他目前的工作重点是支持建模 (SOMA)、评估、策略与计划、管理、体系结构和实现的 SOA 工具,以及其在 IBM 内部和外部的实际应用。请访问他的博客:Best Practices in Service-Oriented Architecture

Jorge Diaz

Jorge Diaz 是 IBM Software Services for WebSphere 的一位解决方案架构师。他的工作重点是提供中间件和分布式系统集成领域的策略体系结构,负责欧美地区的相关工作。Diaz 先生与各个大客户密切合作,帮助他们使用各种技术(包括 Web 访问)来引入面向服务的体系结构。

Donald F. Ferguson

Donald Ferguson 是 IBM 的 200,000 技术雇员中的 53 个 IBM Fellow(IBM 最高的技术职位)之一。Don 还是 IBM 软件部的首席架构师。Don 是 SWG Architecture Board 的主席,该委员会监督 WebSphere、DB2®、Lotus®、Tivoli® 和 Rational® 产品的体系结构和集成。Don 原来曾担任过 WebSphere 系列产品的首席架构师。他于 1985 年加入 IBM Research。他的兴趣爱好包括带他的孩子们、与他们玩耍、分布式系统、简化应用程序开发、系统管理、Web 服务、事务处理、性能以及空手道。请访问他的博客:Middleware and tools

Calvin Lawrence

Calvin Lawrence 是 IBM Software Group Emerging Technology 团队的一位执行架构师。他的职责范围包括通过关键策略活动的支持来推广战略 IBM 体系结构、技术和产品,以及使用 IBM 技术确保客户实现成功。他是 IBM Software Group Worldwide Technical Leadership Council 的前主席。

Sridhar Sudarsan

Sridhar Sudarsan 是 IBM Software Services for WebSphere 的一位高级 IT 架构师。他曾负责过全球很多客户的企业体系结构解决方案的工作,包括金融、政府机构、汽车和 SRM 等垂直行业的大公司。他是 Java EE 中的批处理编程模型(该模型现在是 WebSphere XD 中的一个组件)的创建者之一,目前正在向客户推广这个模型,并致力于构建此技术相关的最佳实践。他目前正在负责一家大型保险公司的大型 SOA Center of Excellence 的工作。

Bobby Woolf

Bobby Woolf 是一名 IBM Software Services for WebSphere 咨询师,负责帮助客户使用 WebSphere 实现成功。他与人合著了 Enterprise Integration PatternsThe Design Patterns Smalltalk Companion。请参阅 developerWorks 上 Bobby 的博客,以了解更多信息。

Andras Robert Szakal

Andras Robert Szakal 是 IBM Federal Software Group 的首席架构师,同时也是杰出工程师和高级认证 IT 架构师。他还是 The Open Group 理事会成员。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值