目录
40 关系: Apache Avro,Apache许可证,Apache软件基金会,ASN.1,外部数据表示法,存储器映射输入输出,序列化,传输层,开放源代码,C++,C♯,Cocoa,绑定,Delphi,Erlang,遠程過程調用,调试,跨平台,运行时库,Facebook,Go,Google,Haskell,ICE (中间件),Java,Java NIO,JSON,Node.js,OCaml,Perl,PHP,POSIX,Protocol Buffers,Python,Ruby,Smalltalk,SOAP,XML,Zlib,接口描述语言。
- Apache软件基金会项目
- Facebook軟體
- 数据序列化格式
- 进程间通信
- 遠端程序呼叫
Apache Avro
Avro是一种远程过程调用和数据序列化框架,是在Apache的Hadoop项目之内开发的。它使用JSON来定义数据类型和通讯协议,使用压缩二进制格式来序列化数据。它主要用于Hadoop,它可以为持久化数据提供一种序列化格式,并为Hadoop节点间及从客户端程序到Hadoop服务的通讯提供一种电报格式。 它类似于Thrift,但当改变时,它不要求运行代码生成程序,除非是对静态类型的语言。.
Apache许可证
Apache许可证(Apache License),是一个由Apache軟件基金會发布的自由软件许可证,最初为Apache http服务器而撰写。Apache许可证要求被授权者保留版权和放弃权利的聲明,但它不是一个反版权的许可证。 此许可证最新版本为“版本2”,于2004年1月发布。 Apache许可证在Apache社区内外被广泛使用。Apache基金会下属所有项目都使用Apache许可证,许多非Apache基金会项目也使用了Apache许可证:据统计,截至2012年10月,在sourceforge上有8708个项目使用了Apache许可证。.
Apache软件基金会
Apache软件基金会(Apache Software Foundation,简称为ASF),是专门为支持开源软件项目而办的一个非營利性组织。在它所支持的Apache项目与子项目中,所发行的软件产品都遵循Apache许可证(Apache License)。.
ASN.1
在电信和计算机网络领域,ASN.1(Abstract Syntax Notation One) 是一套标准,是描述数据的表示、编码、传输、解码的灵活的记法。它提供了一套正式、无歧义和精确的规则以描述独立于特定计算机硬件的对象结构。.
查看 Thrift和ASN.1
外部数据表示法
外部数据表示法(External Data Representation,縮寫為XDR)是一個在1995年制定的IETF標準協定。在OSI模型的表示层presentation layer中实现。XDR允许把数据包装在独立于介质的结构中使得数据可以在异构的计算机系统中传输。从局部表示转换到XDR称为编码,从XDR转换到局部表示称为译码。XDR使用软件来完成变换,所以在不同的操作系统中可以灵活的运用,同样的,XDR独立于传输层。Sun的远端程序呼叫RPC就是使用XDR。.
存储器映射输入输出
内存映射输入输出(Memory-mapped I/O, MMIO,简称为内存映射IO),以及端口映射输入输出(port-mapped I/O, PMIO,也叫作独立输入输出(isolated I/O),是PC机在中央处理器(CPU)和外部设备之间执行输入输出操作的两种方法,这两种方法互为补充。除此之外,执行输入输出操作也可以使用专用输入输出处理器(dedicated I/O processors)——这通常是指大型電腦上的通道输入输出(Channel I/O),这些专用处理器执行自有的指令集。 内存映射IO(不要和内存映射文件的输入输出混淆)使用相同的地址总线来寻址內存和输入输出设备(简称IO设备),前提是IO设备上的设备内存和寄存器都已经被映射到内存空间的某个地址。这样当CPU访问某个地址的时候,可能是要访问某一部份物理內存,也可能是要访问IO设备上的内存。因此,设备内存也可以通过内存访问指令来完成读写。每个IO设备监测CPU的地址总线,并且在发现CPU访问被分配到本设备的地址区域的时候做出响应,建立数据总线和相应设备寄存器之间的连接。为了实现CPU对MMIO设备的访问,相应的地址空间必须给这些设备保留, 并且不能再分配给系统物理内存。这可以是永久保留,也可以是暂时性的保留。通常来说X86架构都是永久保留的,而在Commodore 64中,由于采用了IO设备和普通内存之间的堆交换技术(bank switching),可以做到暂时性保留。 PMIO通常使用一组专门为IO设计的CPU指令来执行IO操作。比如在基于x86和x86-64架构的微处理器中使用in/out指令。这两条指令有一些不同的形式,分别用来在CPU的EAX寄存器(或高16位/低16位/高8位/低8位)和IO设备的某个端口之间完成对单字节/双字节/四字节数据的操作(比如对out指令,分别有outb, outw和outl) 。IO设备有一个和内存地址空间相互独立的IO地址空间。IO设备通过专用IO针脚或者专用的总线和CPU相连。因为这个IO地址空间和内存地址空间相互独立,所以有时候称为独立I/O.
序列化
序列化(serialization)在計算機科學的資料處理中,是指將資料結構或物件狀態轉換成可取用格式(例如存成檔案,存於緩衝,或經由網絡中傳送),以留待後續在相同或另一台計算機環境中,能恢復原先狀態的過程。依照序列化格式重新獲取位元組的結果時,可以利用它來產生與原始物件相同語義的副本。對於許多物件,像是使用大量參照的複雜物件,這種序列化重建的過程並不容易。物件導向中的物件序列化,並不概括之前原始物件所關聯的函式。這種過程也稱為物件編組(marshalling)。從一系列位元組提取資料結構的反向操作,是反序列化(也稱為解編組, deserialization, unmarshalling)。 序列化在计算机科学中通常有以下定義.
查看 Thrift和序列化
传输层
在计算机网络中,传输层(transport layer)互联网协议套件与(OSI)网络堆栈中协议的分层结构中的方法的一个概念划分。该层的协议为应用进程提供端到端的通信服务。 它提供面向连接的支持、可靠性、流量控制、多路复用等服务。 互联网与一般性网络的OSI模型的基础,TCP/IP模型的传输层的具体实现和含义(RFC 1122)是不同的。在OSI模型中传输层最常被称作第4层或L4,而TCP/IP中不常给网络层编号。 最著名的TCP/IP传输协议是传输控制协议(TCP), 它的名称借用自整个套件的名称。它用于面向连接的传输,而无连接的用户数据报协议(UDP)用于简单消息传输。TCP是更复杂的协议,因为它的状态性设计结合了可靠传输和数据流服务。这个协议组中其他重要协议有数据拥塞控制协议(DCCP)与流控制传输协议(SCTP)。.
查看 Thrift和传输层
开放源代码
開放原始碼(Open Source)描述了一种在产品的出品和开发中提供最终源材料的做法。在這個詞廣泛使用前,開發者和生產者使用很多詞去描述這個概念;開放源代碼在互聯網上獲得廣泛使用,參加者需要大量更新電腦原始碼。開放源代碼使得生產模組、通訊管道、互動社群獲得改善。隨後,一個新著作權、軟體授權條款、域名和消費者提供建立的,一個新詞開源軟體誕生。 開源模型概念包括同時間不同時程和方法來生產,相對而言,更加集中式的軟体設計模型,例如典型的商業軟体公司。一個開源軟体開發的主要原則和慣例是易貨貿易和合作的同儕生產,經由免費公開的最終產品、原始資訊、藍圖和--。這逐漸應用在其它領域,例如生物技術。.
查看 Thrift和开放源代码
C++
C++是一種使用廣泛的计算机程序設計語言。它是一種通用程序設計語言,支援多重编程模式,例如程序化程序設計、数据抽象、面向对象程序設計、泛型程序設計和设计模式等。 比雅尼·斯特勞斯特魯普博士在贝尔实验室工作期间在20世紀80年代發明並實現了C++。起初,這種語言被稱作“C with Classes”(“包含‘類’的C語言”),作為C語言的增強版出現。随后,C++不斷增加新特性。虚函数(virtual function)、运算符重载(operator overloading)、多繼承(multiple inheritance)、标准模板库(standard template library, STL)、异常处理(exception)、运行时类型信息(Runtime type information)、命名空間(namespace)等概念逐漸納入標準。1998年,國際標準組織(ISO)頒布了C++程序設計語言的第一個國際標準ISO/IEC 14882:1998,目前最新标准为ISO/IEC 14882:2017。根據《C++編--程思想》(Thinking in C++)一書,C++與C的代码执行效率往往相差在±5%之間。 C++語言發展大概可以分為三個階段:第一階段從80年代到1995年。這一階段C++語言基本上是傳統類型上的面向对象語言,並且憑藉着接近C語言的效率,在工業界使用的開發語言中佔據了相當大份額;第二階段從1995年到2000年,這一階段由於標準模板庫(STL)和後來的Boost等程式庫的出現,泛型程序設計在C++中佔據了越來越多的比重。當然,同時由於Java、C#等語言的出現和硬體價格的大規模下降,C++受到了一定的衝擊;第三階段從2000年至今,由於以Loki、MPL(Boost)等程式庫為代表的產生式編程和模板元編程的出現,C++出現了發展歷史上又一個新的高峰,這些新技術的出現以及和原有技術的融合,使C++已經成為當今主流程序設計語言中最複雜的一員。.
查看 Thrift和C++
C♯
C#是微软推出的一种基于.NET框架的、面向对象的高级编程语言。C#以.NET框架类库作为基础,拥有类似Visual Basic的快速开发能力。C#由安德斯·海尔斯伯格主持开发,微软在2000年发布了这种语言,希望借助这种语言来取代Java。C#已经成为Ecma国际和国际标准组织的标准规范。.
查看 Thrift和C♯
Cocoa
Cocoa是苹果公司为Mac OS X所创建的原生面向对象的编程环境,是Mac OS X上五大API之一(其它四个是Carbon、POSIX、X11和Java)。 Cocoa应用程序一般在苹果公司的开发工具Xcode(前身为Project Builder)和Interface Builder上用Objective-C写成。不过,通过Java bridge、PasCocoa、PyObjC、CamelBones以及RubyCocoa等桥接技术,Java、Clozure CL、LispWorks、Object Pascal、Python、Perl、Ruby等其它工具或者语言也可以用来开发Cocoa应用。也有一些其它语言的Cocoa实现无须桥接,比如苹果公司开发的MacRuby和类似Lisp的Nu语言。不使用Xcode和Interface Builder,仅仅通过文本编辑器、GCC和GNU make工具也可以用Objective-C语言开发Cocoa应用。 对最终用户来说,使用Cocoa编程环境开发的应用程序即为Cocoa應用程式。这类应用有独特的外观,因为Cocoa编程环境让程序在多方面自动遵循苹果公司的人机界面守则。.
查看 Thrift和Cocoa
绑定
#重定向 綁紮.
查看 Thrift和绑定
Delphi
Delphi,是Windows平台下著名的快速應用程式開發(Rapid Application Development,简称RAD)。它的前身,即是DOS時代盛行一時的「Borland Turbo Pascal」,最早的版本由美国Borland(宝兰)公司於1995年开发。主创者為安德斯·海尔斯伯格。經過數年的發展,此產品也轉移至Embarcadero公司旗下。 从产品名称上就可以知道,Turbo Pascal使用的是Pascal语言。从Turbo Pascal 5.5版开始,Borland公司在传统Pascal的基础上加入了物件導向的功能。 Delphi是一个整合開發環境(IDE),使用的核心是由传统Pascal语言发展而来的Object Pascal,以图形用户界面(Graphical User Interface,简称GUI)为开发环境,透過IDE、VCL工具與編譯器,配合連結資料庫的功能,構成一個以物件導向程式設計為中心的應用程式開發工具。Delphi所編譯的可執行檔,雖然容量較大,但因為產生的是真正的原生機器碼,效能上比較快速。除了使用資料庫的程式之外,不需安裝即可執行,在使用上相當方便。 Delphi在本质上應該歸類為軟體開發工具,而並非是程式语言,但由于Delphi几乎是目前市场上唯一使用Pascal,並持續推出新版本的商业产品。因此,有時人们會把Delphi視為Object Pascal的代名词。Borland公司因而把Object Pascal改称为Delphi。2006年,Borland把开发工具产品线独立出来,成立了一家新的公司CodeGear,並把產品線交由此公司负责。原本的Delphi,亦曾一度因此被命名为Turbo Delphi。但是在新的版本中,除了Delphi for Win32(原有的Delphi版本)之外,还有一个新产品「Delphi for PHP」。在CodeGear的发展规划中,或许“Delphi”不再是Object Pascal的专屬IDE名稱,而是将之提升到通用IDE品牌的層次。2008年5月7日,Embarcadero Technologies(易博龙)公司宣布以2300万美元的价格收购CodeGear公司,从而把Delphi收入囊中。2009年5月6日,Micro Focus宣布以7500万美元收购Borland。 Delphi目前的最新版本是Delphi 10.2 Tokyo。.
Erlang
Erlang()是一種通用的----,它由喬·阿姆斯特朗(Joe Armstrong)在瑞典電信設備製造商愛立信所轄的電腦科學研究室開發,目的是創造一種可以應付大規模開發活動的--和執行環境。Erlang於1987年釋出正式版本,最早是愛立信擁有的私有軟體,經過十年的發展,於1998年發表開放源碼版本。 Erlang是運作於虛擬機的--,但是現在也包含有烏普薩拉大學高性能Erlang計劃(HiPE)開發的原生程式碼編譯器,自R11B-4版本開始,Erlang也支持--。在編程範型上,Erlang屬於多重典範程式語言,涵蓋函數式、--及--。循序執行的Erlang是一个及早求值, 單次賦值和--的函數式程式語言。.
遠程過程調用
远程过程调用(Remote Procedure Call,縮寫為 RPC)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。如果涉及的软件采用面向对象编程,那么远程过程调用亦可称作远程调用或远程方法调用,例:Java RMI。.
调试
偵錯(),又稱除錯,是发现和减少计算机程序或电子仪器设备中程序错误的一个过程。.
查看 Thrift和调试
跨平台
跨平台泛指编程语言、软件或硬件设备可以在多种作業系統或不同硬體架構的電腦上運作。.
查看 Thrift和跨平台
运行时库
运行时库(runtime library,又稱運行期库),在计算机程序设计领域中,是指一种被编译器用来实现编程语言内置函数以提供该语言程序运行时(执行)支持的一种特殊的计算机程序库。这种库一般包括基本的输入输出或是内存管理等支持。它是一群支援正在執行程式的函式,與作業系統合作提供諸如數學運算、輸入輸出等功能,讓程式寫作者不需要“重新發明輪子”,並善用作業系統提供的功能。 运行时库由编译器决定,以面向编程语言,提供其最基本的执行时需要。比如Visual Basic需要复杂的运行时库支持而C的运行时库则相对简单。当然这还是由编译器厂商决定的。运行时库中的函数可能对程序员透明,也可能不透明。这也是由编译器厂商忖度语言执行环境的需求而决定的。 早期的執行期函式庫(例如Fortran)提供了數學運算的能力。其他語言增加了諸如垃圾回收的先進功能,通常用於支援物件資料結構。 許多近代語言設計了更大的執行環境並添加更多功能。很多物件導向語言也包含了分派器與類別讀取器。Java虛擬機(JVM)便是此類的典型執行環境:它也在執行期直譯或編譯具可攜性的二進位Java程式。而.NET架構也是另外一個執行期函式庫的實例。 例外處理(Exception handling)是專門處理執行期錯誤的語言機制,使程式設計師可以完全捕捉非預期錯誤,或沒有適當處理的錯誤結果。 动态链接库或静态链接库与运行时库的分类角度不同,不得相提并论。.
查看 Thrift和运行时库
Facebook(簡稱FB),華人地區有臉--書、臉--譜、面--書、面--簿等中文名稱。是一家位於美國加州-zh-hans:圣马特奥县; zh-hant:聖馬刁郡-门洛帕克市的線上社交网络服务網站。Facebook成立初期原名為thefacebook,名稱的靈感來自美國高中提供給學生包含照片和聯絡資料的通訊錄(或稱花名冊)暱稱「face book」。 除了文字訊息之外,使用者可傳送圖片、影片、貼圖和聲音媒體訊息(現在也可以傳送其他檔案類型如.doc,.docx,.xls,.xlsx等,但是.exe可能會被禁止傳送)給其他使用者,以及透過整合的地圖功能分享使用者的所在位置。Facebook是在2004年2月4日由馬克·扎克伯格與他的哈佛大學室友們所創立。Facebook的會員最初只限於哈佛學生加入,但後來逐漸擴展到其他在波士頓區域的同學也能使用,包括一些常春藤名校、MIT、紐約大學、史丹福大學等。接著逐漸支援讓其他大學和高中學生加入,並在最後開放給任何13歲或以上的人使用。現在Facebook允許任何聲明自己年滿13歲的使用者註冊。 使用者必須註冊才能使用Facebook,註冊後他們可以創建個人檔案、將其他使用者加為好友、傳遞訊息,並在其他使用者更新個人檔案時獲得自動通知。此外使用者也可以加入有相同興趣的群組,這些群組依據工作地點、學校或其他特性分類。使用者亦可將朋友分別加入不同的列表中管理,例如「同事」或「摯友」等。截至2012年9月,Facebook內已有超過十幾億個活躍使用者,其中約有9%的不實使用者。截至2012年,Facebook每年共產生180拍位元組(PB)的資料,並以每24小時0.5拍位元組的速度增加。統計顯示,Facebook上每天上傳3億5千萬張圖片。.
Go
Go(又稱Golang)是Google開發的一种静态强类型、編譯型、-zh-hant:並發型;zh-hans:并发型-,并具有垃圾回收功能的编程语言。 ,羅勃·派克(Rob Pike)及肯·汤普逊於2007年9月开始设计Go,,稍後Ian Lance Taylor、Russ Cox加入專案。Go是基於Inferno作業系統所開發的。Go於2009年11月正式宣布推出,成為開放原始碼專案,并在Linux及Mac OS X平台上进行了實現,后来追加了Windows系统下的实现。 目前,Go每半年发布一个二级版本(即从a.x升级到a.y)。.
查看 Thrift和Go
Google有限公司(Google LLC;中文:谷--歌),是美国Alphabet Inc.的子公司,业务范围涵盖互联网广告、互联网搜索、云计算等领域,开发并提供大量基于互联网的产品与服务,其主要利润来自于AdWords等广告服务。Google由在斯坦福大学攻读理工博士的拉里·佩奇和谢尔盖·布林共同创建,因此两人也被称为“Google Guys”。1998年9月4日,Google以私营公司的形式创立,目的是设计并管理互联网搜索引擎“Google搜索”。2004年8月19日,Google公司在纳斯达克上市,后来被称为“三驾马车”的公司两位共同创始人与出任首席执行官的埃里克·施密特在此时承诺:共同在Google工作至少二十年,即至2024年止。Google的宗旨是“--”(To organize the world's information and make it universally accessible and useful);而非正式的口号则为“不作恶”(Don't be evil),由工程师阿米特·帕特尔(Amit Patel)所创,并得到了保罗·布赫海特的支持。Google公司的总部称为“-”,位于美国加州圣克拉拉县的山景城。2011年4月,佩奇接替施密特擔任首席执行官。在2015年8月,Google宣布進行资产重组。重组後,Google划归新成立的Alphabet底下。同时,此舉把Google旗下的核心搜索和廣告業務與Google無人車等新兴业务分離開來。 据估计,Google在全世界的数据中心内运营着上百万台的服务器,每天处理数以亿计的搜索请求和约二十四PB用户生成的数据。 Google自创立起开始的快速成长同时也带动了一系列的产品研发、并购事项与合作关系,而不仅仅是公司核心的网络搜索业务。Google公司提供丰富的线上软件服务,如雲端硬碟、Gmail电子邮件,包括Orkut、Google Buzz以及Google+在内的社交网络服务。Google的产品同时也以应用软件的形式进入用户桌面,例如Google Chrome网页浏览器、Picasa图片整理与编辑软件、Google Talk即时通讯工具等。另外,Google还进行了移动设备的Android操作系统以及Google Chrome OS操作系统的开发。 --分析网站Alexa数据显示,Google的主域名google.com是全世界访问量最高的站点,Google搜索在其他国家或地区域名下的多个站点(google.co.in、google.de、google.com.hk等等),及旗下的YouTube、Blogger、Orkut等的访问量都在前一百名之内。其中,社交网络服务Orkut于2014年9月关闭。.
Haskell
Haskell()是一种标准化的,通用的纯函數程式語言,有非限定性语义和强静态类型。它的命名源自美国逻辑学家哈斯凱爾·加里,他在数理逻辑方面上的工作使得函数式编程语言有了广泛的基础。在Haskell中,“函数是第一類物件”。作为一门函數程式語言,主要控制结构是函数。Haskell语言是1990年在编程语言Miranda的基础上标准化的,并且以λ演算为基础发展而来。这也是为什么Haskell语言以希腊字母「λ」(Lambda)作为自己的标志。Haskell具有“证明即程序、命题为类型”的特征, with 2 sections by William Craig, see paragraph 9E。.
ICE (中间件)
Internet Communications Engine,或Ice,是ZeroC开发的一个面向对象的中间件平台。它提供了面向对象的远程过程调用、网格计算和发布/订阅功能,并有基于GPL的双许可协议和一个私有许可协议。它支持Linux、Solaris、Windows和Mac OS X等最主要的操作系统,和C++、Java、.NET语言(如C#或Visual Basic)、Objective-C、Python、PHP和Ruby等语言。Ice运行时的一个轻量变体叫做Ice-e,可以运行在移动电话中。如它的名字所表明,该中间件可以被用于应用程序,而不需要使用HTTP协议,并且有能力穿越防火墙(这一点不同于当时的其它中间件)。.
Java
Java是一種廣泛使用的電腦程式設計語言,擁有跨平台、物件導向、泛型程式設計的特性,广泛应用于企业级Web应用开发和移动应用开发。 任職於昇陽電腦的詹姆斯·高斯林等人于1990年代初开发Java語言的雛形,最初被命名为Oak,目標設定在家用电器等小型系統的程式语言,應用在电视机、电话、闹钟、烤面包机等家用电器的控制和通訊。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代網際網路的发展,Sun公司看見Oak在網際網路上应用的前景,于是改造了Oak,於1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 Java编程语言的风格十分接近C++语言。继承了C++语言面向对象技术的核心,Java舍弃了C++语言中容易引起错误的-zh-hans:指针; zh-hant:指標;-,改以-zh-hans:引用; zh-hant:參照;-取代,同時移除了C++中的--和多重继承特性,改用接口取代,增加垃圾回收器功能。在Java SE 1.5版本中引入了泛型编程、类型安全的枚举、不定长参数和自动装/拆箱特性。昇陽電腦对Java语言的解释是:「Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言」 Java不同於一般的编译語言或直譯語言。它首先将源代码编译成字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编写,到处运行”的跨平台特性。在早期JVM中,这在一定程度上降低了Java程序的运行效率。但在J2SE1.4.2发布后,Java的執行速度有了大幅提升。 与传统型態不同,Sun公司在推出Java時就将其作为开放的技术。全球数以万计的Java开发公司被要求所设计的Java软件必须相互兼容。“Java语言靠群体的力量而非公司的力量”是 Sun公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同,此外,微软公司後來推出了与之竞争的.NET平台以及模仿Java的C#语言。後來Sun公司被甲骨文公司併購,Java也隨之成為甲骨文公司的產品。 現時,行動作業系統Android大部分的代碼採用Java 程式設計語言編程。.
查看 Thrift和Java
Java NIO
Java NIO,是Java SE 1.4版以後,針對網路傳輸效能優化的新功能。 在Java 7時再推出NIO 2,針對檔案存取的效能優化。.
JSON
JSON(JavaScript Object Notation)是一種由道格拉斯·克羅克福特構想和設計、輕量級的資料交換語言,该语言以易於讓人閱讀的文字為基礎,用来传输由属性值或者序列性的值组成的数据对象。儘管JSON是JavaScript的一個子集,但JSON是獨立於語言的文本格式,並且採用了類似於C語言家族的一些習慣。 JSON 数据格式与语言无关,脱胎于 JavaScript,但目前很多编程语言都支持 JSON 格式数据的生成和解析。JSON 的官方 MIME 类型是 application/json,文件扩展名是.json。.
查看 Thrift和JSON
Node.js
Node.js 是一個能夠在伺服器端運行 JavaScript 的 開放原始碼、跨平台 JavaScript 執行環境。Node.js 由 Node.js 基金會持有和維護,並與 Linux基金會 有合作關係。Node.js 採用 Google 開發的 V8執行程式碼,使用 事件驅動、非阻塞 和 非同步輸入輸出 模型等技術來提高效能,可優化應用程式的傳輸量和規模。這些技術通常用於資料密集的實時應用程式。 Node.js 大部分基本模組都用 JavaScript 語言編寫。在 Node.js 出現之前,JavaScript 通常作為用戶端程式設計語言使用,以 JavaScript 寫出的程式常在用戶的瀏覽器上執行。Node.js 的出現使 JavaScript也能用於伺服器端編程。Node.js 含有一系列內置模組,使得程式可以脫離 Apache HTTP Server 或 IIS,作為獨立伺服器執行。 目前,Node.js 已被 IBM、Microsoft、Yahoo!、Walmart、Groupon、SAP、 LinkedIn、Rakuten、PayPal、Voxer和GoDaddy 等企業採用。.
OCaml
OCaml,最早稱為Objective Caml,是Caml编程语言的主要实现,由Xavier Leroy,Jérôme Vouillon,Damien Doligez,Didier Rémy及其他人于1996年创立。OCaml是开放原始码项目。此项目的管理和大部分维护工作交由INRIA。.
查看 Thrift和OCaml
Perl
Perl是高階、通用、直譯式、動態的程式语言家族。最初设计者拉里·沃尔為了讓在UNIX上進行報表處理的工作變得更方便,決定開發一個通用的腳本語言,而在1987年12月18日發表。目前,Perl语言家族包含两个分支Perl 5以及Perl 6(开发中)。 Perl借用了C、sed、awk、shell脚本以及很多其他程式語言的特性。其中最重要的特性是Perl内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。 2000年开始,目前拉里·沃尔开始開發Perl 6,來作為Perl的後繼;不過,Perl 6語言的語法有很多轉變,所以Perl 6被視為Perl家族中的另一個語言。 Perl语言的应用范围很广,除CGI以外,Perl被用于图形编程、系统管理、网络编程、金融、生物以及其他领域。由于其灵活性,Perl被称为脚本语言中的瑞士军刀。.
查看 Thrift和Perl
PHP
PHP(全称:PHP:Hypertext Preprocessor,即“PHP:超文本预处理器”)是一种开源的通用计算机脚本语言,尤其适用于网络开发并可嵌入HTML中使用。PHP的语法借鉴吸收C语言、Java和Perl等流行计算机语言的特点,易于一般程序员学习。PHP的主要目标是允许网络开发人员快速编写动态页面,但PHP也被用于其他很多领域。 PHP最初是由勒多夫在1995年开始开发的;現在PHP的標準由the PHP Group維護。PHP以PHP License作為許可協議,不過因為這個協議限制了PHP名稱的使用,所以和開放原始碼許可協議GPL不相容。 PHP的應用範圍相當廣泛,尤其是在網頁程式的開發上。一般來說PHP大多執行在網頁伺服器上,透過執行PHP程式碼來產生使用者瀏覽的網頁。PHP可以在多數的伺服器和作業系統上執行,而且使用PHP完全是免費的。根據2013年4月的統計資料,PHP已經被安裝在超過2億4400萬個網站和210萬台伺服器上。 PHP在windows上有专门的官方移植编译项目,并且分多个VC编译器版本和线程安全特性来提供不同的版本支持。.
查看 Thrift和PHP
POSIX
可移植作業系統接口(Portable Operating System Interface,縮寫為POSIX),是IEEE为要在各种UNIX操作系统上运行软件,而定义API的一系列互相关联的标准的总称,其正式称呼为IEEE Std 1003,而国际标准名称为ISO/IEC 9945。此标准源于一个大约开始于1985年的项目。POSIX这个名称是由理查德·斯托曼应IEEE的要求而提议的一个易于记忆的名称。它基本上是Portable Operating System Interface(可移植操作系统接口)的缩写,而X则表明其对Unix API的传承。 Linux基本上逐步实现了POSIX兼容,但并没有参加正式的POSIX认证。 微软的Windows NT声称部分实现了POSIX标准。 当前的POSIX主要分为四个部分:Base Definitions、System Interfaces、Shell and Utilities和Rationale。.
查看 Thrift和POSIX
Protocol Buffers
Protocol Buffers是一種序列化資料結構的协议。對於透過管線(pipeline)或儲存資料進行通訊的程式開發上是很有用的。這個方法包含一個接口描述語言,描述一些資料結構,並提供程式工具根據這些描述產生程式碼,用於將這些資料結構產生或解析資料串流。.
Python
Python( ),是一种广泛使用的高级编程语言,属于通用型编程语言,由吉多·范罗苏姆创造,第一版发布于1991年。可以視之為一種改良(加入一些其他程式語言的優點,如物件導向)的LISP。作为一种解释型语言,Python的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进划分代码块,而非使用大括号或者关键词)。相比於C++或Java,Python让开发者能够用更少的代码表达想法。不管是小型还是大型程序,该语言都试图让程序的结构清晰明了。 与Scheme、Ruby、Perl、Tcl等动态类型编程语言一样,Python拥有动态类型系统和垃圾回收功能,能够自动管理内存使用,并且支持多种编程范式,包括面向对象、命令式、函数式和过程式编程。其本身拥有一个巨大而广泛的标准库。 Python 解释器本身几乎可以在所有的操作系统中运行。Python的正式直譯器CPython是用C语言编写的、是一個由社群驱动的自由软件,目前由Python软件基金会管理。.
Ruby
Ruby 是一种面向对象、命令式、函数式、动态的通用编程语言。在20世纪90年代中期由日本電腦科學家松本行弘(Matz)设计并开发。 遵守BSD许可证和Ruby License。它的灵感与特性来自于Perl、Smalltalk、Eiffel、Ada以及Lisp语言。由Ruby语言本身还发展出了JRuby(Java平台)、IronRuby(.NET平台)等其他平台的Ruby语言替代品。.
查看 Thrift和Ruby
Smalltalk
Smalltalk,被。Smalltalk由艾伦·凯,Dan Ingalls,Ted Kaehler,Adele Goldberg等于70年代初在Xerox PARC开发。 Smalltalk对其它众多的程序设计语言的产生起到了极大的推动作用,主要有:C++,C#,Objective-C,Actor,Java和Ruby等。90年代的许多软件开发思想得利于Smalltalk,例如设计模式、敏捷编程和代码重构等。.
SOAP
#重定向 简单对象访问协议.
查看 Thrift和SOAP
XML
可扩展标记语言(Extensible Markup Language,简称:XML),是一种标记语言。标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。如何定义这些标记,既可以选择国际通用的标记语言,比如HTML,也可以使用像XML这样由相关人士自由决定的标记语言,这就是语言的可扩展性。XML是从标准通用标记语言(SGML)中简化修改出来的。它主要用到的有可扩展标记语言、可扩展样式语言(XSL)、XBRL和XPath等。.
查看 Thrift和XML
Zlib
zlib是提供資料壓縮之用的函式庫,由Jean-loup Gailly與Mark Adler所開發,初版0.9版在1995年5月1日發表。zlib使用抽象化的DEFLATE演算法,最初是為libpng函式庫所寫的,後來普遍為許多軟體所使用。此函式庫為自由軟體,使用zlib授權。 截至2007年3月,zlib是包含在Coverity的美国国土安全部赞助者选择继续审查的开源项目。.
查看 Thrift和Zlib
接口描述语言
--(Interface description language,缩写IDL),是用来描述软件组件介面的一种计算机语言。IDL通过一种中立的方式来描述接口,使得在不同平台上运行的对象和用不同语言编写的程序可以相互通信交流;比如,一个组件用C++写成,另一个组件用Java写成。 IDL通常用于远程调用软件。在这种情况下,一般是由远程客户终端调用不同操作系统上的对象组件,并且这些对象组件可能是由不同计算机语言编写的。IDL建立起了两个不同操作系统间通信的桥梁。 在IDL基础上开发出来的软件系统有Sun的ONC RPC,The Open Group的Distributed Computing Environment,IBM的System Object Model,Object Management Group的CORBA,和SOAP(用于Web service)。.
另见
Apache软件基金会项目
- Apache ActiveMQ
- Apache Ant
- Apache Avro
- Apache Axis
- Apache Axis2
- Apache CXF
- Apache Camel
- Apache Cordova
- Apache Derby
- Apache Flex
- Apache HBase
- Apache HTTP Server
- Apache Hadoop
- Apache Hive
- Apache Maven
- Apache Mesos
- Apache OpenOffice
- Apache POI
- Apache Shiro
- Apache Spark
- Apache Struts 2
- Apache Tomcat
- Apache Velocity
- Apache ZooKeeper
- Apache可移植运行时
- Cassandra
- CouchDB
- Giraph
- Kafka
- Lucene
- NetBeans
- OpenNLP
- Solr
- SpamAssassin
- Subversion
- Tapestry
- Thrift
- Traffic Server
- UIMA
- Wicket
Facebook軟體
数据序列化格式
- ASN.1
- Apache Avro
- BSON
- Base64
- Bencode
- Protocol Buffers
- S-表达式
- Thrift
- XML
- YAML
- 外部数据表示法
- 寻人信息交换格式
- 属性列表
- 序列化
- 轻量级标记语言
进程间通信
- ØMQ
- 9P
- AJAX
- Apache Avro
- CORBA
- D-Bus
- Distributed COM
- ICE (中间件)
- Tee
- Thrift
- Unix信号
- 伺服器訊息區塊
- 共享内存
- 分散式運算環境
- 動態資料交換
- 匿名管道
- 命名管道
- 字串流
- 对象链接与嵌入
- 廣播 (網路)
- 本地过程调用
- 消息队列
- 管道 (Unix)
- 網路資訊服務
- 组件对象模型
- 行程間通訊
- 訊息傳遞 (軟體)
- 透明进程间通信
- 遠程過程調用
- 邮槽
- 電腦檔案
遠端程序呼叫
- .NET Remoting
- Apache Avro
- D-Bus
- DCE/RPC
- ICE (中间件)
- JSON-RPC
- Java远程方法调用
- Marshalling (计算机科学)
- Thrift
- XML-RPC
- 接口描述语言
- 简单对象访问协议
- 遠程過程調用
- 開放網路運算遠端程序呼叫