余锋 2009/03/11 http://blog.yufeng.info Erlang及其应用 余锋 2009/03/11 http://blog.yufeng.info.

Slides:



Advertisements
Similar presentations
Erlang 分布式系统的的领域语言 淘宝核心系统资深专家 余锋 淘宝褚霸
Advertisements

1 Java 语言程序设计 计算机系 鲍金玲. 2 引子 甲骨文 甲骨文是全球最大的信息管理软件及服务供应商,成立于 1977 年,公司总部 设在美国加利福尼亚州的红木城( Redwood Shores ),全球员工达 名, 包括 名开发人员、 7500 多名技术支持人员和.
高级服务器设计和实现 1 —— 基础与进阶 余锋
云计算辅助教学风云录 黎加厚 上海师范大学教育技术系 2010年8月9日.
校園資訊安全與防火牆架設 嘉義市育人國小 黃士騰.
大学计算机基础 主讲:张建国 电话: 实验及交作业网址:
Chapter 3: Operating-System Structures操作系统结构
Foundations of Computer Science
IPv6介绍 中科院高能所计算机中心 杨泽明 2003年1月.
创新实验 课程说明 计算机学院 孙彤 计算机学院 张明.
Erlang全接触 褚霸 2010/07/20.
核心系统数据库组 褚霸 高性能集群服务器 Erlang解决方案 核心系统数据库组 褚霸
Java Programming Hygiene - for DIDC
前言 1.课程安排: 第一章 操作系统引论(7学时) 第二章 进程管理(14学时) 第三章 处理机调度与死锁(10学时)
余锋 (褚霸) 淘宝网技术专家 中国软件技术大会 北京 2010
操作系统结构.
B500 主控制程序 B5000 Master Control Program
计算机网络安全概述.
大数据在医疗行业的应用.
Operating System Process Management - 4 Monday, August 11, 2008.
深層學習 暑期訓練 (2017).
Xbox one计算机系统介绍 刘一帆.
基隆社區大學 智慧型手機、平板及電腦之生活應用
形式语言与网络 计算环境构建 1.
Operating System Concepts 作業系統原理 Chapter 3 行程觀念 (Process Concept)
高效能運算服務 (High Performance Computing) 建置之經驗分享
Applied Operating System Concepts
第8章作業系統.
从UNIX到Windows的 电信软件移植实践
Linux 圖形操作介面 GUI -- X-window 與 Webmin
Operating System Concepts 作業系統原理 CHAPTER 2 系統結構 (System Structures)
Special English for Industrial Robot
Android 课程讲义 智能手机开发
Chapter 3 行程觀念 (Process Concept)
创建型设计模式.
物流管理的层次 战略 战术 运营 执行 .目标 .供货政策,服务标准 .物流网设计 作什么 制定目标,政策 .需求预测
製程能力分析 何正斌 教授 國立屏東科技大學工業管理學系.
Inside the Erlang VM Yu Feng 2008/12/20
第一章 認識Java Java 程式設計入門(I).
SAP 架構及基本操作 SAP前端軟體安裝與登入 Logical View of the SAP System SAP登入 IDES
Chapter 4 多執行緒 (Multi Thread)
/8/19 Erlang的高级特性和应用 /8/19.
臺北市立大學 資訊科學系(含碩士班) 賴阿福 CS TEAM
「寬頻匯流網路管理」教材 模組四: 第一章 網路管理架構
第一讲 J2EE基础 博和利初级培训 —开发技能.
/8/19 Erlang的高级特性和应用 /8/19.
校園網路架構介紹與資源利用 主講人:趙志宏 圖書資訊館網路通訊組.
Erlang emulator 实现分析 2007/10.
第4章(1) 空间数据库 —数据库理论基础 北京建筑工程学院 王文宇.
Operating System Principles 作業系統原理
第3章 認識處理元.
服務於中國研究的網絡基礎設施 A Cyberinfrastructure for Historical China Studies
Unit 11.Operating System 11.1 What’s OS 11.2 Related Courses
資料結構 Data Structures Fall 2006, 95學年第一學期 Instructor : 陳宗正.
通信工程专业英语 Lesson 22 The Internet 第22课 因特网
Inside the Erlang VM Yu Feng 2008/12/20
Real-Time System Software Group Lab 408 Wireless Networking and Embedded Systems Laboratory Virtualization, Parallelization, Service 實驗室主要是以系統軟體設計為主,
第十五章 WWW網頁的製作 計算機概論編輯小組.
Introduction to Operating Systems 作業系統 (上)
中国科学技术大学计算机系 陈香兰 2013Fall 第七讲 存储器管理 中国科学技术大学计算机系 陈香兰 2013Fall.
虚 拟 仪 器 virtual instrument
中国科学技术大学计算机系 陈香兰 Fall 2013 第三讲 线程 中国科学技术大学计算机系 陈香兰 Fall 2013.
Chapter 10 Mobile IP TCP/IP Protocol Suite
SAP 架構及基本操作 SAP前端軟體安裝與登入 Logical View of the SAP System SAP登入 IDES
IEEM 5352 Enterprise Integration
第一章 操作系统引论 1.1 操作系统的目标和作用 1.2 操作系统的发展过程 1.3 操作系统的基本特性 1.4 操作系统的主要功能
Speaker : 翁瑄伶 Advisor : 柯開維 博士 Date: 2016/07/31
11 Overview Cloud Computing 2012 NTHU. CS Che-Rung Lee
Operating System Software School of SCU
SAP 架構及前端軟體安裝 Logical View of the SAP System SAP Frontend 7.1安裝 SAP登入
Presentation transcript:

余锋 2009/03/11 http://blog.yufeng.info Erlang及其应用 余锋 2009/03/11 http://blog.yufeng.info

What is Erlang Erlang is a general-purpose programming language and runtime environment. Erlang has built-in support for concurrency, distribution and fault tolerance. Erlang is used in several large telecommunication systems from Ericsson.

What sort of applications is Erlang particularly suitable for Distributed, reliable, soft real concurrent systems. Telecommunication systems, e.g. controlling a switch or converting protocols. Servers for Internet applications, e.g. a mail transfer agent, an IMAP-4 server, an HTTP server or a wap stack Telecommunication applications, e.g. handling mobility in a mobile network or providing unified messaging. Database applications which require soft realtime behaviour. Erlang is good at solving these sorts of problems because this is the problem domain it was originally designed for. Stating the above in terms of features: Erlang provides a simple and powerful model for error containment and fault tolerance (supervised processes).

续上页 Concurrency and message passing are a fundamental to the language. Applications written in Erlang are often composed of hundreds or thousands of lightweight processes. Context switching between Erlang processes is typically one or two orders of magnitude cheaper than switching between threads in a C program. Writing applications which are made of parts which execute on different machines (i.e. distributed applications) is easy. Erlang's distribution mechanisms are transparent: programs need not be aware that they are distributed. The OTP libraries provide support for many common problems in networking and telecommunications systems. The Erlang runtime environment (a virtual machine, much like the Java virtual machine) means that code compiled on one architecture runs anywhere. The runtime system also allows code in a running system to be updated without interrupting the program.

What is OTP? OTP (Open Telecom Platform) is a large collection of libraries for Erlang to do everything from compiling ASN.1 to providing a WWW server. Most projects using "Erlang" are actually using "Erlang/OTP", i.e. the language and the libraries. OTP is also open source.

高性能 多核心SMP的支持 透明分布的支持 完善的监控信息 商业产品上经过时间的验证成熟 轻量进程的支持 Erlang的优势 高性能 多核心SMP的支持 透明分布的支持 完善的监控信息 商业产品上经过时间的验证成熟 轻量进程的支持

为什么其他语言要移植到Erlang虚拟机 语言Reia会成功吗 作者看中什么? 框架 概念 成熟度 性能 模型

简单小巧 模式匹配 变量单次赋值 丰富的库 灵活多样的错误处理 代码热替换 天生的分布式 多核支持 Erlang语言特性 简单小巧 模式匹配 变量单次赋值 丰富的库 灵活多样的错误处理 代码热替换 天生的分布式 多核支持

200K行C代码 几千行Erlang代码 同等的ACE框架 代码成熟度 尺寸很小 适合于嵌入式 1.5M 也适合做桌面程序 如p2p

Erlang ERTS是个典型的网络服务器框架 IO处理 kernel poll 如epoll kqueue 定时器处理 timewheel 逻辑处理处理 process coroutine fiber smp

多核心处理消息 调度器平衡迁移 同步和异步 无锁编程 纯消息驱动的系统 多核心处理消息 调度器平衡迁移 同步和异步 无锁编程

线程 调度器 异步线程 driver发起的线程 精巧的锁 process_lock 快速的mutex 进程 PORT 管道通讯 多处理器利用技术 线程 调度器 异步线程 driver发起的线程 精巧的锁 process_lock 快速的mutex 进程 PORT 管道通讯

仿照Unix的哲学: 一切都是文件 管道通讯类似CGI 对外世界的重要通道 整合其他语言写的模块 强大的PORT 仿照Unix的哲学: 一切都是文件 管道通讯类似CGI 对外世界的重要通道 整合其他语言写的模块

C节点(EI) Java (jinterface) Cobra TCP/HTTP 与其他系统整合 C节点(EI) Java (jinterface) Cobra TCP/HTTP

内置的RPC 自动维护节点的up down 知道节点名称就可以通讯 轻松分拆服务

不停机维护 在线升级 系统同时跑新旧代码 发现问题在线降级 工具化 一切自动化 热部署功能 不停机维护 在线升级 系统同时跑新旧代码 发现问题在线降级 工具化 一切自动化

监控功能 OS mon SNMP HTTP

代码可远程从网络加载 Diskless 代码可加密 强加密防止反编译 开源协议 代码安全 代码可远程从网络加载 Diskless 代码可加密 强加密防止反编译 开源协议

强大的内置shell ssh sftp 日志系统 远程维护 强大的内置shell ssh sftp 日志系统

Windows (smp支持的不好) *nix 关键语义屏蔽平台变化 平台移植 Windows (smp支持的不好) *nix 关键语义屏蔽平台变化

Erlang 相对于 ACE 完整的平台 工具 开发工具 调优工具 排错工具 跟踪工具 和其他网络库的比较 Erlang 相对于 ACE 完整的平台 工具 开发工具 调优工具 排错工具 跟踪工具

应用障碍 FP语言 独特的哲学 社区小 库偏少

Facebook 盛大 金山 校内 很多小startup公司 应用案例 Facebook 盛大 金山 校内 很多小startup公司

Q&A 谢谢大家