学术相关:
0.等待毕业证 && 办理 student visa -- 等待中
1.ACM/ICPC省赛 -- 已完成,省赛一等奖第九名
2.CUHK宿舍申请 -- 等待结果中
3.毕业论文答辩 -- 准备中
4.参加baidu之星受鄙视 -- 认命中
5.研究多核架构编程模型与OS变革 -- 遥不可望中
6.研究CUHK老师方向 -- 等待网速变好中
7.啃完算法导论与SICP -- yy中
旅行相关:
0.班级毕业旅行 -- 犹豫中
1.办理passport && 边防证 -- 进行中
2.计划去tibet && nepal 旅游一次 -- 筹划中
3.回家 && 顺便拐带某mm去丹霞山一次 -- yy中
4.计划跟某mm去河源一次 -- yy中
腐败相关:
0.与99级大师兄吃餐饭 -- 等ing他回广州
1.跟家姐撑台脚 && 唱K -- 期待中!
2.参加argo篮球版版友赛 -- 备战中
3.bg argo bbs站务 -- 排期中
4.bg 篮球版众 -- 找时间中
胡思乱想相关:
0.毕业典礼 && 毕业照邀请list -- 准备中
1.学会gdb与kdevelop使用与开发 -- 渴望中
2.进一步熟悉shell 编程 -- 日常应用中
3.临走前去献血一次 -- 可能
4.负责集体购买开源文化衫 -- 进行中
5.学会演唱30首近期港台流行曲 -- 被鄙视中...
Monday, May 5, 2008
Sunday, May 4, 2008
线性代数重要概念
determinant of a matrix:矩阵的行列式
rank of a matrix: 矩阵的秩
定理:矩阵的行秩(行向量组的秩)与列秩相同.
因此不区分它们,统称为矩阵的秩.
rank of a vector: 向量的秩
一个向量组的极大线性无关组所含向量的个数称为这个向量组的秩.
因为线性无关的向量组就是它本身的极大线性无关组,因此一向量组线性无关的充要条件就是:它的秩与它所含向量个数相同.
每一向量组都与它的极大线性无关组等价(所谓等价就是它们可以互相线性表出),并且由秩的定义可得,它们的秩相同.
由等价的传递性可知,任意两个等价向量组的极大线性无关组也等价.因此等价的向量组必有相同的秩.
向量组的极大线性无关组不是唯一的,但是每一个极大线性无关组都与向量组本身等价.
因此一个向量组的任意两个极大线性无关组都是等价的.
linear express: 线性表出
若向量b可以表示为
b=k1a2+k2a2+...knan,
则称b是向量组a1,a2,...,an的一个线性组合或说b由向量组a1,a2,...,an线性表出.
注意: 零向量是任一向量组的线性组合(系数全0即可)
若向量组a1,a2,...,as的每一个向量都可以经向量组b1,b2,...,bt线性表出,
则向量组a1,a2,...,as称为由向量组b1,b2,...,bt线性表出.
如果两个向量组互相可以线性表出,则它们称为等价(equivalent)
linear dependent: 线性相关
如果向量组a1,a2,...,as(s>=2)中有一个向量可以由其余向量线性表出,则这个向量组称为线性相关的.
注意:任意一个包含零向量的向量组一定是线性相关的.
另一种表达方法: 若,k1a1+k2a2+...+knan=0,当ki不全为0,则a1,a2,...,an线性相关.
因为按照上面线性相关的定义,假设an可以由其余向量表出,即:
an=k1a1+k2a2+...+k(n-1)a(n-1)
因此显然经过移项有:
k1a1+k2a2+...+k(n-1)a(n-1)+(-1)an=0
反之亦然.
因此上面两个定义是等价的.
特别地,根据上面定义,只有一个向量(记为a)的向量组线性相关的充要条件是a是零向量.
(ka=0)
linear independent: 线性无关
按照上述线性相关的定义,若不存在全为零的数k1,k2,...,kn,使得向量组a1,a2,...,an:
k1a1+k2a2+...+knan=0
则向量组a1,a2,...,an线性无关.
同时说明,向量组中任意一个向量ai都不可以被其他元素线性表出.
推理易得: 该向量组中任意一个向量子集都是线性无关的.
Homogeneous Linear Equation : 齐次线性方程组
常数项全为0的线性方程组称为齐次线性方程组(它的行列数不一定相等),它总是有解的(全为0.称为零解).
按照Cramer's Rule,如果它的系数行列式不为0,则它只有一个解,因此它是零解.
反过来说,如果齐次线性方程组有非零解,则必有|A|=0
Cramer's Rule: 克拉默法则
如果线性方程组:
AX=B
的系数矩阵A的行列式d=|A|不为0,则该线性方程组有解,且解是唯一的.
推论:如果一个n*n的齐次线性方程组的系数矩阵的行列式|A|不为0,则它只有一个解,
又由于它必定有零解,因此综上得到结论:它有且只有零解
推论的逆否命题:如果一个n*n的齐次线性方程组有非零解,那么必有|A|=0.
矩阵的秩(rank),行列式(determinant)与线性方程组的解(solution)的一些关系(理解)
0.如果齐次线性方程组的系数矩阵为A,行列数为s*n,如果s<n,则它必有非零解.
使用消元法把A化成阶梯状,方程的个数不会超过原方程组中方程的个数,
因此r<=s<n,则r<n,因此解不是唯一的(无穷),因此有非零解.
1.如果齐次线性方程组的系数矩阵为A,行列数为s*n的行秩r<n,则它有非零解.
由于A的行秩r<n,则说明A的行向量组线性相关,假设a1,a2,...,ar是一个极大线性无关组,组成一个新矩阵为A'
那么它与A的行向量组a1,a2,...,an是等价的.因此,系数矩阵为A'的方程组与原方程组互相线性表出,
它们是同解的,应用0,可得结论.
2.n*n矩阵A的行列式为零的充分必要条件是A的秩小于n
(即A的行向量组不是线性无关的).
充分性:由于A的秩小于n,说明A的n个行向量线性相关.
若n=1,则该向量为零向量.因此|A|=0.
若n>1,则A中有一个行向量可以由其余行线性表出.
因此从这一行减去其他行相应的倍数,即可以类似消元地消去这一行的系数,使得这行变为0.
因此根据行列式的性质,|A|=0.
必要性:用数学归纳法来证明.(此处略...)
3.系数为A,次数为n*n的齐次线性方程组有非零解的充分必要条件是它的系数矩阵A的行列式等于零.
充分性:由1,2可得.
根据1,|A|=0,则说明A的秩小于n;根据2,A的秩r小于n,则该方程有非零解.
必要性:克拉默法则的推论的逆否命题可知.
由于方程有非零解,则|A|=0.
矩阵(方阵)的逆与行列式的关系
首先,定义:
如果n*n矩阵A的行列式|A|不等于0,则称A为非退化的(non-degenerative).否则是退化的(generative)
而存在逆阵的矩阵称为非奇异的矩阵(non-singular matrix),否则称为奇异矩阵(singular matrix).
矩阵A是可逆的充要条件是A非退化,或说:
|A| != 0 <=> 矩阵A非退化 <=> 矩阵A是非奇异矩阵 <=> 矩阵A满秩(根据以上定理2)
---------------------------------------------
附:中英文对照表
向量代数
(向量(vector)),(向量的长度(模)),(零向量(zero vector)),(负向量),(向量的加法(addition)),(三角形法则),(平行四边形法则),(多边形法则),(减法),(向量的标量乘积(scalar multiplication)),(向量的线性运算),线性组合(linear combination),线性表示,线性相关(linearly dependent),线性无关(linearly independent),(原点(origin)),(位置向量(position vector)),(线性流形(linear manifold)),(线性子空间(linear subspace));基(basis),仿射坐标(affine coordinates),仿射标架(affine frame),仿射坐标系(affine coordinate system),(坐标轴(coordinate axis)),(坐标平面),(卦限(octant)),(右手系),(左手系),(定比分点);(线性方程组(system of linear equations)),(齐次线性方程组(system of homogeneous linear equations)),(行列式(determinant));维向量,向量的分量(component),向量的相等,和向量,零向量,负向量,标量乘积, 维向量空间(vector space),自然基,(行向量(row vector)),(列向量(column vector));单位向量(unit vector),直角坐标系(rectangular coordinate system),直角坐标(rectangular coordinates),射影(projection),向量在某方向上的分量,(正交分解),(向量的夹角),内积(inner product),标量积(scalar product),(数量积),(方向的方向角),(方向的方向余弦);外积(exterior product),向量积(cross product),(二重外积);混合积(mixed product,scalar triple product)
行列式
(映射(mapping)),(象(image)),(一个原象(preimage)),(定义域(domain)),(值域(range)),(变换(transformation)),(单射(injection)),(象集),(满射(surjection)),(一一映射,双射(bijection)),(原象),(映射的复合,映射的乘积),(恒同映射,恒同变换(identity mapping)),(逆映射(inverse mapping));(置换(permutation)),( 阶对称群(symmetric group)),(对换(transposition)),(逆序对),(逆序数),(置换的符号(sign)),(偶置换(even permutation)),(奇置换(odd permutation));行列式(determinant),矩阵(matrix),矩阵的元(entry),(方阵(square matrix)),(零矩阵(zero matrix)),(对角元),(上三角形矩阵(upper triangular matrix)),(下三角形矩阵(lower triangular matrix)),(对角矩阵(diagonal matrix)),(单位矩阵(identity matrix)),转置矩阵(transpose matrix),初等行变换(elementary row transformation),初等列变换(elementary column transformation);(反称矩阵(skew-symmetric matrix));子矩阵(submatrix),子式(minor),余子式(cofactor),代数余子式(algebraic cofactor),(范德蒙德行列式(Vandermonde determinant));(未知量),(方程的系数(coefficient)),(常数项(constant)),(线性方程组的解(solution)),(系数矩阵),(增广矩阵(augmented matrix)),(零解);子式的余子式,子式的代数余子式
线性方程组与线性子空间
(阶梯形方程组),(方程组的初等变换),行阶梯矩阵(row echelon matrix),主元,简化行阶梯矩阵(reduced row echelon matrix),(高斯消元法(Gauss elimination)),(解向量),(同解),(自反性(reflexivity)),(对称性(symmetry)),(传递性(transitivity)),(等价关系(equivalence));(主变量),(自由位置量),(一般解),(齐次线性方程组的秩(rank));向量组线性相关,向量组线性无关,线性组合,线性表示,线性组合的系数,(向量组的延伸组);线性子空间,由向量组张成的线性子空间;基,坐标,(自然基),线性子空间的维数(dimension),向量组的秩;(解空间),齐次线性方程组的基础解系(fundamental system of solutions);(导出组),线性流形,(方向子空间),(线性流形的维数),(方程组的特解);(方程组的零点),(方程组的图象),(平面的一般方程),(平面的三点式方程),(平面的截距式方程),(平面的参数方程),(参数),(方向向量);(直线的方向向量),(直线的参数方程),(直线的标准方程),(直线的方向系数),(直线的两点式方程),(直线的一般方程);(平面束(pencil of planes))
矩阵的秩与矩阵的运算
线性表示,线性等价,极大线性无关组;(行空间,列空间),行秩(row rank),列秩(column rank),秩,满秩矩阵,行满秩矩阵,列满秩矩阵;线性映射(linear mapping),线性变换(linear transformation),线性函数(linear function);(零映射),(负映射),(矩阵的和),(负矩阵),(线性映射的标量乘积),(矩阵的标量乘积),(矩阵的乘积),(零因子),(标量矩阵(scalar matrix)),(矩阵的多项式);(退化的(degenerate)方阵),(非退化的(non-degenerate)方阵),(退化的线性变换),(非退化的线性变换),(逆矩阵(inverse matrix)),(可逆的(invertible),(伴随矩阵(adjoint matrix));(分块矩阵(block matrix)),(分块对角矩阵(block diagonal matrix));初等矩阵(elementary matrix),等价(equivalent);(象空间),(核空间(kernel)),(线性映射的秩),(零化度(nullity))
rank of a matrix: 矩阵的秩
定理:矩阵的行秩(行向量组的秩)与列秩相同.
因此不区分它们,统称为矩阵的秩.
rank of a vector: 向量的秩
一个向量组的极大线性无关组所含向量的个数称为这个向量组的秩.
因为线性无关的向量组就是它本身的极大线性无关组,因此一向量组线性无关的充要条件就是:它的秩与它所含向量个数相同.
每一向量组都与它的极大线性无关组等价(所谓等价就是它们可以互相线性表出),并且由秩的定义可得,它们的秩相同.
由等价的传递性可知,任意两个等价向量组的极大线性无关组也等价.因此等价的向量组必有相同的秩.
向量组的极大线性无关组不是唯一的,但是每一个极大线性无关组都与向量组本身等价.
因此一个向量组的任意两个极大线性无关组都是等价的.
linear express: 线性表出
若向量b可以表示为
b=k1a2+k2a2+...knan,
则称b是向量组a1,a2,...,an的一个线性组合或说b由向量组a1,a2,...,an线性表出.
注意: 零向量是任一向量组的线性组合(系数全0即可)
若向量组a1,a2,...,as的每一个向量都可以经向量组b1,b2,...,bt线性表出,
则向量组a1,a2,...,as称为由向量组b1,b2,...,bt线性表出.
如果两个向量组互相可以线性表出,则它们称为等价(equivalent)
linear dependent: 线性相关
如果向量组a1,a2,...,as(s>=2)中有一个向量可以由其余向量线性表出,则这个向量组称为线性相关的.
注意:任意一个包含零向量的向量组一定是线性相关的.
另一种表达方法: 若,k1a1+k2a2+...+knan=0,当ki不全为0,则a1,a2,...,an线性相关.
因为按照上面线性相关的定义,假设an可以由其余向量表出,即:
an=k1a1+k2a2+...+k(n-1)a(n-1)
因此显然经过移项有:
k1a1+k2a2+...+k(n-1)a(n-1)+(-1)an=0
反之亦然.
因此上面两个定义是等价的.
特别地,根据上面定义,只有一个向量(记为a)的向量组线性相关的充要条件是a是零向量.
(ka=0)
linear independent: 线性无关
按照上述线性相关的定义,若不存在全为零的数k1,k2,...,kn,使得向量组a1,a2,...,an:
k1a1+k2a2+...+knan=0
则向量组a1,a2,...,an线性无关.
同时说明,向量组中任意一个向量ai都不可以被其他元素线性表出.
推理易得: 该向量组中任意一个向量子集都是线性无关的.
Homogeneous Linear Equation : 齐次线性方程组
常数项全为0的线性方程组称为齐次线性方程组(它的行列数不一定相等),它总是有解的(全为0.称为零解).
按照Cramer's Rule,如果它的系数行列式不为0,则它只有一个解,因此它是零解.
反过来说,如果齐次线性方程组有非零解,则必有|A|=0
Cramer's Rule: 克拉默法则
如果线性方程组:
AX=B
的系数矩阵A的行列式d=|A|不为0,则该线性方程组有解,且解是唯一的.
推论:如果一个n*n的齐次线性方程组的系数矩阵的行列式|A|不为0,则它只有一个解,
又由于它必定有零解,因此综上得到结论:它有且只有零解
推论的逆否命题:如果一个n*n的齐次线性方程组有非零解,那么必有|A|=0.
矩阵的秩(rank),行列式(determinant)与线性方程组的解(solution)的一些关系(理解)
0.如果齐次线性方程组的系数矩阵为A,行列数为s*n,如果s<n,则它必有非零解.
使用消元法把A化成阶梯状,方程的个数不会超过原方程组中方程的个数,
因此r<=s<n,则r<n,因此解不是唯一的(无穷),因此有非零解.
1.如果齐次线性方程组的系数矩阵为A,行列数为s*n的行秩r<n,则它有非零解.
由于A的行秩r<n,则说明A的行向量组线性相关,假设a1,a2,...,ar是一个极大线性无关组,组成一个新矩阵为A'
那么它与A的行向量组a1,a2,...,an是等价的.因此,系数矩阵为A'的方程组与原方程组互相线性表出,
它们是同解的,应用0,可得结论.
2.n*n矩阵A的行列式为零的充分必要条件是A的秩小于n
(即A的行向量组不是线性无关的).
充分性:由于A的秩小于n,说明A的n个行向量线性相关.
若n=1,则该向量为零向量.因此|A|=0.
若n>1,则A中有一个行向量可以由其余行线性表出.
因此从这一行减去其他行相应的倍数,即可以类似消元地消去这一行的系数,使得这行变为0.
因此根据行列式的性质,|A|=0.
必要性:用数学归纳法来证明.(此处略...)
3.系数为A,次数为n*n的齐次线性方程组有非零解的充分必要条件是它的系数矩阵A的行列式等于零.
充分性:由1,2可得.
根据1,|A|=0,则说明A的秩小于n;根据2,A的秩r小于n,则该方程有非零解.
必要性:克拉默法则的推论的逆否命题可知.
由于方程有非零解,则|A|=0.
矩阵(方阵)的逆与行列式的关系
首先,定义:
如果n*n矩阵A的行列式|A|不等于0,则称A为非退化的(non-degenerative).否则是退化的(generative)
而存在逆阵的矩阵称为非奇异的矩阵(non-singular matrix),否则称为奇异矩阵(singular matrix).
矩阵A是可逆的充要条件是A非退化,或说:
|A| != 0 <=> 矩阵A非退化 <=> 矩阵A是非奇异矩阵 <=> 矩阵A满秩(根据以上定理2)
---------------------------------------------
附:中英文对照表
向量代数
(向量(vector)),(向量的长度(模)),(零向量(zero vector)),(负向量),(向量的加法(addition)),(三角形法则),(平行四边形法则),(多边形法则),(减法),(向量的标量乘积(scalar multiplication)),(向量的线性运算),线性组合(linear combination),线性表示,线性相关(linearly dependent),线性无关(linearly independent),(原点(origin)),(位置向量(position vector)),(线性流形(linear manifold)),(线性子空间(linear subspace));基(basis),仿射坐标(affine coordinates),仿射标架(affine frame),仿射坐标系(affine coordinate system),(坐标轴(coordinate axis)),(坐标平面),(卦限(octant)),(右手系),(左手系),(定比分点);(线性方程组(system of linear equations)),(齐次线性方程组(system of homogeneous linear equations)),(行列式(determinant));维向量,向量的分量(component),向量的相等,和向量,零向量,负向量,标量乘积, 维向量空间(vector space),自然基,(行向量(row vector)),(列向量(column vector));单位向量(unit vector),直角坐标系(rectangular coordinate system),直角坐标(rectangular coordinates),射影(projection),向量在某方向上的分量,(正交分解),(向量的夹角),内积(inner product),标量积(scalar product),(数量积),(方向的方向角),(方向的方向余弦);外积(exterior product),向量积(cross product),(二重外积);混合积(mixed product,scalar triple product)
行列式
(映射(mapping)),(象(image)),(一个原象(preimage)),(定义域(domain)),(值域(range)),(变换(transformation)),(单射(injection)),(象集),(满射(surjection)),(一一映射,双射(bijection)),(原象),(映射的复合,映射的乘积),(恒同映射,恒同变换(identity mapping)),(逆映射(inverse mapping));(置换(permutation)),( 阶对称群(symmetric group)),(对换(transposition)),(逆序对),(逆序数),(置换的符号(sign)),(偶置换(even permutation)),(奇置换(odd permutation));行列式(determinant),矩阵(matrix),矩阵的元(entry),(方阵(square matrix)),(零矩阵(zero matrix)),(对角元),(上三角形矩阵(upper triangular matrix)),(下三角形矩阵(lower triangular matrix)),(对角矩阵(diagonal matrix)),(单位矩阵(identity matrix)),转置矩阵(transpose matrix),初等行变换(elementary row transformation),初等列变换(elementary column transformation);(反称矩阵(skew-symmetric matrix));子矩阵(submatrix),子式(minor),余子式(cofactor),代数余子式(algebraic cofactor),(范德蒙德行列式(Vandermonde determinant));(未知量),(方程的系数(coefficient)),(常数项(constant)),(线性方程组的解(solution)),(系数矩阵),(增广矩阵(augmented matrix)),(零解);子式的余子式,子式的代数余子式
线性方程组与线性子空间
(阶梯形方程组),(方程组的初等变换),行阶梯矩阵(row echelon matrix),主元,简化行阶梯矩阵(reduced row echelon matrix),(高斯消元法(Gauss elimination)),(解向量),(同解),(自反性(reflexivity)),(对称性(symmetry)),(传递性(transitivity)),(等价关系(equivalence));(主变量),(自由位置量),(一般解),(齐次线性方程组的秩(rank));向量组线性相关,向量组线性无关,线性组合,线性表示,线性组合的系数,(向量组的延伸组);线性子空间,由向量组张成的线性子空间;基,坐标,(自然基),线性子空间的维数(dimension),向量组的秩;(解空间),齐次线性方程组的基础解系(fundamental system of solutions);(导出组),线性流形,(方向子空间),(线性流形的维数),(方程组的特解);(方程组的零点),(方程组的图象),(平面的一般方程),(平面的三点式方程),(平面的截距式方程),(平面的参数方程),(参数),(方向向量);(直线的方向向量),(直线的参数方程),(直线的标准方程),(直线的方向系数),(直线的两点式方程),(直线的一般方程);(平面束(pencil of planes))
矩阵的秩与矩阵的运算
线性表示,线性等价,极大线性无关组;(行空间,列空间),行秩(row rank),列秩(column rank),秩,满秩矩阵,行满秩矩阵,列满秩矩阵;线性映射(linear mapping),线性变换(linear transformation),线性函数(linear function);(零映射),(负映射),(矩阵的和),(负矩阵),(线性映射的标量乘积),(矩阵的标量乘积),(矩阵的乘积),(零因子),(标量矩阵(scalar matrix)),(矩阵的多项式);(退化的(degenerate)方阵),(非退化的(non-degenerate)方阵),(退化的线性变换),(非退化的线性变换),(逆矩阵(inverse matrix)),(可逆的(invertible),(伴随矩阵(adjoint matrix));(分块矩阵(block matrix)),(分块对角矩阵(block diagonal matrix));初等矩阵(elementary matrix),等价(equivalent);(象空间),(核空间(kernel)),(线性映射的秩),(零化度(nullity))
Tuesday, April 29, 2008
总结一些我不会打的粤语字的拼音打法……
其实以前都不是很在意,觉得看得懂就行;不过为了能更好地融入"生活",还是总结一下...
吖 : a 或者 ya
嗌 : ai 嗌救命
拗 : ao 拗口
嘈 : cao 不是"吵"
� : che 不是"扯"
� : dang ��转菊花圆
� : di 不是"你地"
� : di 不是"d"
� : chi 不是"痴线"
呃 : e 呃人
戆 : gang 戆居 而不是 憨(han)
� : gua 不是"唔��"
嗟 : jie 不是"姐"
� : kai 不是"既"
� : hou 不是"旧" (打不出来....)
叻 : le 叻仔
� : luo 不是"罗"...
乜 : mie 乜都�
嬲 : nao 好 嬲你
� : sai �饭倒晒!(表示全部)
� : sai �左 (表示浪费)
谂 : shen 谂野 而不是 "林�" 或 "念�"
� : song 饭�
� : wen 不是 "稳人"
� : qian ��
� : yu �手 �脚 而不是 "郁" (搜狗打不出这个字)
� : wo 不是"沃"
� : kan �家富贵
补充:
寻日 而不是 "层日" "琴日"(虽然好似我两个都讲……)
千祈 而不是 "千其"
�贵! -- 表示 这么
�都得? -- 表示 这样
吖 : a 或者 ya
嗌 : ai 嗌救命
拗 : ao 拗口
嘈 : cao 不是"吵"
� : che 不是"扯"
� : dang ��转菊花圆
� : di 不是"你地"
� : di 不是"d"
� : chi 不是"痴线"
呃 : e 呃人
戆 : gang 戆居 而不是 憨(han)
� : gua 不是"唔��"
嗟 : jie 不是"姐"
� : kai 不是"既"
� : hou 不是"旧" (打不出来....)
叻 : le 叻仔
� : luo 不是"罗"...
乜 : mie 乜都�
嬲 : nao 好 嬲你
� : sai �饭倒晒!(表示全部)
� : sai �左 (表示浪费)
谂 : shen 谂野 而不是 "林�" 或 "念�"
� : song 饭�
� : wen 不是 "稳人"
� : qian ��
� : yu �手 �脚 而不是 "郁" (搜狗打不出这个字)
� : wo 不是"沃"
� : kan �家富贵
补充:
寻日 而不是 "层日" "琴日"(虽然好似我两个都讲……)
千祈 而不是 "千其"
�贵! -- 表示 这么
�都得? -- 表示 这样
Thursday, April 24, 2008
Web Service,XMP-RPC,SOAP,WSDL,UDDI,SOA
Web Service
根据W3C的定义,Web Service就是一个被设计来用于支持网络上机器到机器之间交互的软件系统。
简单来说,Web Service可以被看作一系列的Web API,它们可通过网络被远程调用。
比如说有一个歌词服务器提供一个API为getLyric,则我们只需要发送请求getLyric("someSongName"),则可以期待从服务器返回歌词。
摘抄网络上得到的另一个例子:
<quote>
从表面上看,Web service 就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。
这就是说,你能够用编程的方法通过Web来调用这个应用程序。
我们把调用这个 Web service 的应用程序叫做客户。
例如,你想创建一个Web service ,它的作用是返回当前的天气情况。
那么你可已建立一个ASP页面,它接受邮政编码作为查询字符串,然后返回一个由逗号隔开的字符串,包含了当前的气温和天气。
要调用这个ASP页面,客户端需要发送下面的这个HTTP GET请求:
http://host.company.com/weather.asp?zipcode=20171
返回的数据就应该是这样:
21,晴
这个ASP页面就应该可以算作是Web service 了。
因为它基于HTTP GET请求,暴露出了一个可以通过Web调用的API。
当然,Web service 还有更多的东西。
</quote>
最常见的三种Web Service风格分别是RPC,SOA和REST。
1.RPC(Remote Procedure Call)
这是最基本最原始的方法,但是往往由于其调用方法与具体语言绑定,因此被建议废弃。
2.SOA(Service-oriented architecture)
3.REST(Representational state transfer)
-------------------------------------------------------------------------------
XML-RPC
XML-RPC是一个使用XML编码其调用,并使用HTTP协议进行传输的RPC协议。
由于其非常简单易用,因此得到大量广泛的应用。
随着新功能的引入,这个标准发展成了SOAP。
然而由于其易用性,许多人仍然喜欢使用改协议
一个典型的XML-RPC调用的例子如下:
<?xml version="1.0"?>
<methodCall>
<methodName>examples.getEmployeeName</methodName>
<params>
<param>
<value><i4>40</i4></value>
</param>
</params>
</methodCall>
一个对应的XML-RPC相应如下:
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><string>John</string></value>
</param>
</params>
</methodResponse>
另外还有XML-RPC错误应答,此处略。
-------------------------------------------------------------------------------
SOAP(Simple Object Access Protocol)
简单对象访问协议(SOAP)是一种轻量的、简单的、基于 XML 的协议。
它被设计成在 WEB 上交换结构化的和固化的信息,以在应用程序间发送消息。
由于使用了标准的消息描述,它能做到平台独立和语言独立。
SOAP 可以和现存的许多因特网协议和格式结合使用,包括HTTP,SMTP,MIME等,一般使用HTTP/HTTPS。
因此人们一般认为"HTTP + XML = SOAP",与HTTP绑定时,可以使用HTTP POST或HTTP GET方法发送请求。
SOAP可以使用许多不同的消息传递风格,但最常用的是RPC。
SOAP可以看作是TCP/IP体系结构中的应用层协议。事实上它使用了现存的应用层协议作为传输消息的方法。
类似地,DCOM等也可被用于分布式对象访问,但是DCOM往往会被防火墙所过滤。
而SOAP是建立在HTTP等应用层协议上的,一般不会被过滤。
一个典型的SOAP请求如下(获得apple的price,包括HTTP头部):
POST /InStock HTTP/1.1
Host: www.example.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body>
<m:GetPrice xmlns:m="http://www.w3schools.com/prices">
<m:Item>Apples</m:Item>
</m:GetPrice>
</soap:Body>
</soap:Envelope>
对应的应答如下(包括HTTP头部):
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body>
<m:GetPriceResponse xmlns:m="http://www.w3schools.com/prices">
<m:Price>1.90</m:Price>
</m:GetPriceResponse>
</soap:Body>
</soap:Envelope>
-------------------------------------------------------------------------------
WSDL(Web Services Description Language)
Web Services Description Language的缩写,是一个用来描述Web Service和说明如何与Web Service通信的XML语言。
注意它本身使用XML语言编写,是一个XML文档,使用了XML Schema来描述网络服务。
有了SOAP后,Web Service提供商还必须向别人提供一套描述自己所提供的SOAP的规范,类似用户手册(manual)
可以把WSDL看作是Web Service的使用说明书。包括接口名称、参数类型等。
然而对于开发人员,无法方便地得到以上信息,因此有必要提供一套解决方案,
以一种统一的、机器能阅读的、人能阅读的描述文档来描述。使用相应的工具可以导入WSDL文档生成调用相应
Web Service的代码,也能根据自己提供的Web Service生成WSDL文档,以供它人使用。
它往往被用于与SOAP,XML Schema结合以在Internet上提供Web Service。
客户端可以通过读取WSDL来得到它能进行什么函数调用,以及可以使用的数据类型。
然后可以使用SOAP来调用WSDL中定义的函数。
WSDL 文档仅仅是一个简单的 XML 文档。
它包含一系列描述某个 web service 的定义。
一个简化的例子,描述了两个消息:
<message name="getTermRequest">
<part name="term" type="xs:string"/>
</message>
<message name="getTermResponse">
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<operation name="getTerm">
<input message="getTermRequest"/>
<output message="getTermResponse"/>
</operation>
</portType>
-------------------------------------------------------------------------------
UDDI(Universal Description, Discovery and Integration)
UDDI 是一种目录服务,企业可以使用它对 Web services 进行注册和搜索。
在 UDDI 之前,还不存在一种 Internet 标准,可以供企业为它们的企业和伙伴提供有关其产品和服务的信息。
也不存在一种方法,来集成到彼此的系统和进程中。
假如行业发布了一个用于航班比率检测和预订的 UDDI 标准,航空公司就可以把它们的服务注册到一个 UDDI 目录中。
然后旅行社就能够搜索这个 UDDI 目录以找到航空公司预订界面。
当此界面被找到后,旅行社就能够立即与此服务进行通信,这样由于它使用了一套定义良好的预订界面。
这一注册中心与一个电话号码簿非常类似,因为顾客可以通过注册中心查询已经注册Seb services的公司列表。
UDDI用来发布我们提供的web services,当我们写好了一个web services,并且为他建立了WSDL文件,
剩下的事情就是宣传自己,让用户能够找到我们的web services。这个过程有点像电信的"黄页服务(Yellow Paqge)",
企业为了扩展自己的业务,将电话号码登记在黄页上,电信局免费将黄页送给用户,
用户就可以在上面找到自己感兴趣企业的电话。
UDDI就像黄页,如果web services分布在不同的主机上
(比如做为客户端,我们想要的分别访问sohu提供的天气预报服务和sina提供的股票查询服务,
我们没有必要直接去 sohu或者sina的主机上去寻找服务,而是在提供UDDI服务的主机上寻找,
这样,我们的程序就不用直接关联到sohu或者sina,提高了灵活性),那么一个集中管理信息的UDDI则十分重要。
这里有一篇很详细描述UDDI的文章:
http://www.ibm.com/developerworks/cn/webservices/ws-featuddi/index.html
-------------------------------------------------------------------------------
SOA(Service-Oriented Architecture)
看了很多文章,看不懂。
唯一有点感觉的是这篇:
http://se.csai.cn/Monograph/200611141640091038.htm
这里还有很多相关文章:
http://se.csai.cn/zt/SOA/index.asp
根据W3C的定义,Web Service就是一个被设计来用于支持网络上机器到机器之间交互的软件系统。
简单来说,Web Service可以被看作一系列的Web API,它们可通过网络被远程调用。
比如说有一个歌词服务器提供一个API为getLyric,则我们只需要发送请求getLyric("someSongName"),则可以期待从服务器返回歌词。
摘抄网络上得到的另一个例子:
<quote>
从表面上看,Web service 就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。
这就是说,你能够用编程的方法通过Web来调用这个应用程序。
我们把调用这个 Web service 的应用程序叫做客户。
例如,你想创建一个Web service ,它的作用是返回当前的天气情况。
那么你可已建立一个ASP页面,它接受邮政编码作为查询字符串,然后返回一个由逗号隔开的字符串,包含了当前的气温和天气。
要调用这个ASP页面,客户端需要发送下面的这个HTTP GET请求:
http://host.company.com/weather.asp?zipcode=20171
返回的数据就应该是这样:
21,晴
这个ASP页面就应该可以算作是Web service 了。
因为它基于HTTP GET请求,暴露出了一个可以通过Web调用的API。
当然,Web service 还有更多的东西。
</quote>
最常见的三种Web Service风格分别是RPC,SOA和REST。
1.RPC(Remote Procedure Call)
这是最基本最原始的方法,但是往往由于其调用方法与具体语言绑定,因此被建议废弃。
2.SOA(Service-oriented architecture)
3.REST(Representational state transfer)
-------------------------------------------------------------------------------
XML-RPC
XML-RPC是一个使用XML编码其调用,并使用HTTP协议进行传输的RPC协议。
由于其非常简单易用,因此得到大量广泛的应用。
随着新功能的引入,这个标准发展成了SOAP。
然而由于其易用性,许多人仍然喜欢使用改协议
一个典型的XML-RPC调用的例子如下:
<?xml version="1.0"?>
<methodCall>
<methodName>examples.getEmployeeName</methodName>
<params>
<param>
<value><i4>40</i4></value>
</param>
</params>
</methodCall>
一个对应的XML-RPC相应如下:
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><string>John</string></value>
</param>
</params>
</methodResponse>
另外还有XML-RPC错误应答,此处略。
-------------------------------------------------------------------------------
SOAP(Simple Object Access Protocol)
简单对象访问协议(SOAP)是一种轻量的、简单的、基于 XML 的协议。
它被设计成在 WEB 上交换结构化的和固化的信息,以在应用程序间发送消息。
由于使用了标准的消息描述,它能做到平台独立和语言独立。
SOAP 可以和现存的许多因特网协议和格式结合使用,包括HTTP,SMTP,MIME等,一般使用HTTP/HTTPS。
因此人们一般认为"HTTP + XML = SOAP",与HTTP绑定时,可以使用HTTP POST或HTTP GET方法发送请求。
SOAP可以使用许多不同的消息传递风格,但最常用的是RPC。
SOAP可以看作是TCP/IP体系结构中的应用层协议。事实上它使用了现存的应用层协议作为传输消息的方法。
类似地,DCOM等也可被用于分布式对象访问,但是DCOM往往会被防火墙所过滤。
而SOAP是建立在HTTP等应用层协议上的,一般不会被过滤。
一个典型的SOAP请求如下(获得apple的price,包括HTTP头部):
POST /InStock HTTP/1.1
Host: www.example.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body>
<m:GetPrice xmlns:m="http://www.w3schools.com/prices">
<m:Item>Apples</m:Item>
</m:GetPrice>
</soap:Body>
</soap:Envelope>
对应的应答如下(包括HTTP头部):
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body>
<m:GetPriceResponse xmlns:m="http://www.w3schools.com/prices">
<m:Price>1.90</m:Price>
</m:GetPriceResponse>
</soap:Body>
</soap:Envelope>
-------------------------------------------------------------------------------
WSDL(Web Services Description Language)
Web Services Description Language的缩写,是一个用来描述Web Service和说明如何与Web Service通信的XML语言。
注意它本身使用XML语言编写,是一个XML文档,使用了XML Schema来描述网络服务。
有了SOAP后,Web Service提供商还必须向别人提供一套描述自己所提供的SOAP的规范,类似用户手册(manual)
可以把WSDL看作是Web Service的使用说明书。包括接口名称、参数类型等。
然而对于开发人员,无法方便地得到以上信息,因此有必要提供一套解决方案,
以一种统一的、机器能阅读的、人能阅读的描述文档来描述。使用相应的工具可以导入WSDL文档生成调用相应
Web Service的代码,也能根据自己提供的Web Service生成WSDL文档,以供它人使用。
它往往被用于与SOAP,XML Schema结合以在Internet上提供Web Service。
客户端可以通过读取WSDL来得到它能进行什么函数调用,以及可以使用的数据类型。
然后可以使用SOAP来调用WSDL中定义的函数。
WSDL 文档仅仅是一个简单的 XML 文档。
它包含一系列描述某个 web service 的定义。
一个简化的例子,描述了两个消息:
<message name="getTermRequest">
<part name="term" type="xs:string"/>
</message>
<message name="getTermResponse">
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<operation name="getTerm">
<input message="getTermRequest"/>
<output message="getTermResponse"/>
</operation>
</portType>
-------------------------------------------------------------------------------
UDDI(Universal Description, Discovery and Integration)
UDDI 是一种目录服务,企业可以使用它对 Web services 进行注册和搜索。
在 UDDI 之前,还不存在一种 Internet 标准,可以供企业为它们的企业和伙伴提供有关其产品和服务的信息。
也不存在一种方法,来集成到彼此的系统和进程中。
假如行业发布了一个用于航班比率检测和预订的 UDDI 标准,航空公司就可以把它们的服务注册到一个 UDDI 目录中。
然后旅行社就能够搜索这个 UDDI 目录以找到航空公司预订界面。
当此界面被找到后,旅行社就能够立即与此服务进行通信,这样由于它使用了一套定义良好的预订界面。
这一注册中心与一个电话号码簿非常类似,因为顾客可以通过注册中心查询已经注册Seb services的公司列表。
UDDI用来发布我们提供的web services,当我们写好了一个web services,并且为他建立了WSDL文件,
剩下的事情就是宣传自己,让用户能够找到我们的web services。这个过程有点像电信的"黄页服务(Yellow Paqge)",
企业为了扩展自己的业务,将电话号码登记在黄页上,电信局免费将黄页送给用户,
用户就可以在上面找到自己感兴趣企业的电话。
UDDI就像黄页,如果web services分布在不同的主机上
(比如做为客户端,我们想要的分别访问sohu提供的天气预报服务和sina提供的股票查询服务,
我们没有必要直接去 sohu或者sina的主机上去寻找服务,而是在提供UDDI服务的主机上寻找,
这样,我们的程序就不用直接关联到sohu或者sina,提高了灵活性),那么一个集中管理信息的UDDI则十分重要。
这里有一篇很详细描述UDDI的文章:
http://www.ibm.com/developerworks/cn/webservices/ws-featuddi/index.html
-------------------------------------------------------------------------------
SOA(Service-Oriented Architecture)
看了很多文章,看不懂。
唯一有点感觉的是这篇:
http://se.csai.cn/Monograph/200611141640091038.htm
这里还有很多相关文章:
http://se.csai.cn/zt/SOA/index.asp
Tuesday, April 22, 2008
Cloud Computing,Grid Computing,Utility Computing
Cloud Computing: 云计算
google与ibm提出的概念。把计算的概念伸展。
形象来理解就是,把计算能力也作为一种商品出售。
传统的工作模式是,每个用户使用一台PC进行计算
而云计算模型则通过使计算分布在大量的计算机上,而非本地机器,这使得企业能够根据整体情况实现负载均衡。
看起来,用户只需携带一个终端并且连接到internet上,就能获得非凡的计算能力。
google某工程师给的一个很好的比方就是,在旧时代,每个人都要用电,则必须自己携带发电机(PC),
而在云计算时代,每个人不必拥有发电机,而是直接从服务提供商获得电力(计算能力)。
Grid Computing : 网格计算/晶格计算
从电网中延伸过来的概念。因为电网是通过发电厂以及输电线路之间建立起来的一个动态供电系统,其部署类似一个个的网格。
而网格计算中的网格则是计算机组成。在整个大的网格中,一部计算机加入就可以很方便地成为计算节点,也可以很方便地退出网格。
一个很好的例子就是BOINC。使用中心服务器分发任务+分布在全球的计算机系统组成了计算网格,其计算能力已经达到了某个天文数字。
而用户可以自由地决定是否提供自己的计算资源(因此也被叫做志愿计算,volunteer computing)
云计算与网格计算: 云计算总是使用网格计算的管理资源方法来管理节点,而网格计算的技术并不局限于云计算技术之中。
Utility Computing : 实用计算
一种提供服务的模型。IT企业通过创建一个虚拟的计算中心,把内存、I/O设备等利用起来成为一个虚拟的服务池来提供服务,是云计算的一种应用。
google与ibm提出的概念。把计算的概念伸展。
形象来理解就是,把计算能力也作为一种商品出售。
传统的工作模式是,每个用户使用一台PC进行计算
而云计算模型则通过使计算分布在大量的计算机上,而非本地机器,这使得企业能够根据整体情况实现负载均衡。
看起来,用户只需携带一个终端并且连接到internet上,就能获得非凡的计算能力。
google某工程师给的一个很好的比方就是,在旧时代,每个人都要用电,则必须自己携带发电机(PC),
而在云计算时代,每个人不必拥有发电机,而是直接从服务提供商获得电力(计算能力)。
Grid Computing : 网格计算/晶格计算
从电网中延伸过来的概念。因为电网是通过发电厂以及输电线路之间建立起来的一个动态供电系统,其部署类似一个个的网格。
而网格计算中的网格则是计算机组成。在整个大的网格中,一部计算机加入就可以很方便地成为计算节点,也可以很方便地退出网格。
一个很好的例子就是BOINC。使用中心服务器分发任务+分布在全球的计算机系统组成了计算网格,其计算能力已经达到了某个天文数字。
而用户可以自由地决定是否提供自己的计算资源(因此也被叫做志愿计算,volunteer computing)
云计算与网格计算: 云计算总是使用网格计算的管理资源方法来管理节点,而网格计算的技术并不局限于云计算技术之中。
Utility Computing : 实用计算
一种提供服务的模型。IT企业通过创建一个虚拟的计算中心,把内存、I/O设备等利用起来成为一个虚拟的服务池来提供服务,是云计算的一种应用。
Subscribe to:
Posts (Atom)