2014年2月9日

摘要: 概述REST 从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表示方式。获得这些表徵致使这些应用程序转变了其状态。随着不断获取资源的表示方式,客户端应用不断地在转变着其状态,所谓表述性状态转移(Representational State Transfer)。这一观点不是凭空臆造的,而是通过观察当前Web互联网的运作方式而抽象出来的。Roy Fielding 认为,“设计良好的网络应用表现为一系列的网页,这些网页可以看作的虚拟的状态机,用户选择这些链接导致下一网页传输到用户端展现给使用的人,而这正代表了状态的转变。”REST是设计风格而不是标准。R 阅读全文
posted @ 2014-02-09 14:55 北纬三十度 阅读(397) 评论(0) 推荐(0) 编辑
摘要: 互联网的通信安全,建立在SSL/TLS协议之上。本文简要介绍SSL/TLS协议的运行机制。文章的重点是设计思想和运行过程,不涉及具体的实现细节。如果想了解这方面的内容,请参阅RFC文档。一、作用不使用SSL/TLS的HTTP通信,就是不加密的通信。所有信息明文传播,带来了三大风险。(1)窃听风险(eavesdropping):第三方可以获知通信内容。(2)篡改风险(tampering):第三方可以修改通信内容。(3)冒充风险(pretending):第三方可以冒充他人身份参与通信。SSL/TLS协议是为了解决这三大风险而设计的,希望达到:(1) 所有信息都是加密传播,第三方无法窃听。(2) 具 阅读全文
posted @ 2014-02-09 14:54 北纬三十度 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 探讨操作系统接管硬件以后发生的事情,也就是操作系统的启动流程。这个部分比较有意思。因为在BIOS阶段,计算机的行为基本上被写死了,程序员可以做的事情并不多;但是,一旦进入操作系统,程序员几乎可以定制所有方面。所以,这个部分与程序员的关系更密切。我主要关心的是Linux操作系统,它是目前服务器端的主流操作系统。下面的内容针对的是Debian发行版,因为我对其他发行版不够熟悉。第一步、加载内核操作系统接管硬件以后,首先读入 /boot 目录下的内核文件。以我的电脑为例,/boot 目录下面大概是这样一些文件: $ ls /boot config-3.2.0-3-amd64 config-... 阅读全文
posted @ 2014-02-09 14:51 北纬三十度 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 2007年6月,三个美国年轻人决定成立一家新型的网络主机公司。他们----James Lindenbaum,Adam Wiggins和Orion Henry----认为,现在的主机服务太复杂,无法做到"快速搭建,灵活扩展"。在他们心目中,下一代主机应该提供对程序员非常友好的开发环境,使得程序员可以快速做出网站原型,并且具备弹性配置,即网站的硬件配置可以随访问量的变化灵活变动,从而做到按资源消耗量计费,"用多少资源,付多少钱"。他们为这个项目起名Heroku。2008年,这个项目从YC创业训练营毕业后,拿到了300万美元风投,引起业界关注。上线后,它的业务 阅读全文
posted @ 2014-02-09 14:42 北纬三十度 阅读(301) 评论(0) 推荐(0) 编辑
摘要: Literate Programming - Nobody Understands REST or HTTP这篇文章很有意思,挖掘了REST深层,特别重点指出REST的URL是名词。比如银行转帐,从帐户1转到帐户2转去500元,那么REST URL一般人写成:POST /accounts/1/transfer/500.00/to/2其实错误的,因为REST中R代表Resource资源,资源是名词,你并不是在转钱,而是在创建一个转帐交易资源。应该是:POST 资源名词这个概念很有意思,我们知道DDD也是一个名词建模,在DDD中,转帐交易我们是使用一个服务来实现,当然这里的服务可以看成是一个资源。 阅读全文
posted @ 2014-02-09 14:35 北纬三十度 阅读(451) 评论(0) 推荐(0) 编辑
摘要: 除非你是非常熟悉基础编程的整个世界,否则你很难了解编程架构到底是什么。所以我们假设你并不太了解编程技术,那么我会说,编程是一种定义逻辑的途径或方法,这种逻辑以代码方式设计,让​​指定的编译器能够理解它,让编译器能够知道如何指挥计算机执行相应的功能。对于一个新手来说,这可能是编程的最简单的定义(banq注:对于缺乏逻辑的新手,这可能是最难懂的定义,因此,对于可以不编程的架构师来说最基本的能力是逻辑能力)。基本上有三种类型的编程:低层次的编程,中间级编程和高级编程。所有这三种编程类型中通用的事情是:都可以执行相同的功能。只是对于不同编程类型具体执行的方式是不同的。当一个程序很容易地运行,有可能在同 阅读全文
posted @ 2014-02-09 14:31 北纬三十度 阅读(564) 评论(0) 推荐(0) 编辑
摘要: 作为云计算的一种重要形式,IaaS服务有各种开源和商业云平台方案。本文立足于使用开源IaaS云平台来开发公有云和私有云管理平台的角度,介绍和比较了Eucalyptus、OpenNebula、CloudStack和OpenStack等开源IaaS云平台。从AWS看成功云平台的特点AWS是当前最成功的云计算平台,其系统架构最大的特点就是通过Web Service接口开放数据和功能,一切以服务为第一位;并通过SOA的架构使系统达到松耦合。AWS 提供的Web Service栈,由访问层(API、管理控制台和各种命令行等),通用服务层(身份认证、监控、部署和自动化等),PaaS层服务(并行处理、内容传 阅读全文
posted @ 2014-02-09 14:30 北纬三十度 阅读(1190) 评论(0) 推荐(0) 编辑

导航