联想集团董事长杨元庆表示,与EMC的合作将有利于提升联想在后台设备市场的能力,并建立起服务器和存储业务的坚实基础。他预计未来几年里双方整体合作的销售规模将达到数十亿美元的量级。
对联想来说,云环境的搭建是实现旗下PC、智能手机、平板电脑和智能电视四大终端相互融合的关键,但联想打造云环境基础设备的能力却略显薄弱。尽管2012年第二季度,联想的全球PC市场份额达到146%,有望超越惠普成为全球最大的PC厂商,但在服务器以及存储业务上,联想与惠普、戴尔有着较大差距。
在杨元庆看来,与EMC合作显然有助于补强联想在后台设备方面的短板,从而完善PC+战略(以“四屏一云”——PC、智能手机、平板电脑、智能电视、云计算——为核心),以使联想得以进入利润更高的企业级市场;而EMC则可以透过联想的渠道和客户资源深入中国的企业级用户。
根据合作协议,合资双方还将共同研发X86标准服务器,由联想推向市场并逐步嵌入到EMC特定的存储解决方案中。此外,联想将负责销售EMC的存储产品,并把其网络存储解决方案介绍给自己的客户。
“预计未来5年,X86服务器全球市场规模将由现在的380亿美元增长到460亿美元,在新兴市场增长会更快。在全球存储市场复合增长率将会达到25%,这对联想来说是难得的机遇。”杨元庆说。
目标赶超戴尔
据联想集团高级副总裁、大中华区总裁陈旭东介绍,上个季度,联想在中国国内服务器市场的份额已经达到历史新高15%。而在今年6月联想发布ThinkServer品牌的全线服务器产品时,陈旭东曾表示,联想的目标是在2015年拿下国内服务器市场20%的份额,并力争将全球市场份额提升至10%以上,进入全球前三。
根据IDC发布的数据,以营收计算,2012年第一季度,在全球服务器市场排在前五位的分别是惠普、IBM、戴尔、甲骨文、富士通,各自的市场份额分别为293%、273%、156%、61%、52%。以此推论,联想若想挤进全球前三,至少需要超越戴尔。不过,目前联想在全球服务器市场的占有率仅为3%,还存在不小的差距。陈旭东认为,造成这种局面的原因是未能及早进入欧美主战场。
EMC是全球最大的数据存储服务公司,其战略主要是云技术、大数据。调查数据显示,在今年一季度存储市场54亿美元的硬件销售总额中,EMC以18亿美元的销售额占据了1/3的市场份额,排名第一。
有观点就指出,如此高调地设立三年内超越戴尔成为服务器市场TOP 3的目标,可见陈旭东对与EMC合作的前景很有信心。值得一提的是,在联想之前,EMC曾与戴尔有过长达10年的合作。
2001年10月,戴尔与EMC宣布达成为期5年的战略合作关系,戴尔以联合品牌转销EMC的终端存储系统。
不过在2007年,戴尔出资14亿美元收购存储厂商EqualLogic,意图打造自己的储存产品线,两家公司的合作关系随之出现裂痕。2011年10月,戴尔终止与EMC的转销合作关系,两家正式分道扬镳。资深IT评论人士曲晓东认为,与EMC的合作帮助戴尔发展成存储市场上一支不可忽视的力量。
戴尔成功借力EMC的效果正是联想所期待的,而EMC也希望找到新的合作伙伴,拓展自己的客户关系。EMC公司COO基辛格透露,与联想的洽谈早在一年前便已开始。EMC董事会主席兼CEO乔·图斯则表示,他坚信和联想的合作将更持久,而且比与戴尔的合作关系更强大。
不过也有业内分析认为,EMC旗下的Iomega公司有着“高端用户不够用,低端用户用不好”的问题,销量并不出彩,想利用好Iomega的资源,联想必须探索出合适的市场方案。此外,联想与EMC的合作能维持多久,也是业内人士所关心的问题。
即使如此,杨元庆对这次合作仍给予了高度评价,“EMC是帮助我们充分把握PC+时代机遇的最佳合作伙伴。”曲晓东也认为,不管联想最终和EMC能合作多久,在合作期间双方将实现双赢。
坚持海外并购
陈旭东曾表示,联想的第一波战略是要在PC领域获得领导地位,第二波战略则是要在PC+领域,在中国市场率先取得成功,然后逐步向海外拓展。“第三波战略,则是在企业级市场获得突破。而在实现这些战略的过程中,海外并购都是一个重要的手段。”陈旭东说。
海外并购已经成为联想做大做强战略中的关键步骤,其中最让人印象深刻的莫过于2004年联想收购IBM全球PC业务。通过并购,联想获得了IBM在个人电脑领域的全部知识产权,遍布全球160多个国家的销售网络、10000名员工,以及在5年内使用IBM品牌的权利。
此后,联想以该项并购为契机,开始双品牌战略运作,并在IBM品牌5年使用期结束后,成功打造了Lenovo品牌的知名度。
对于该项并购,杨元庆总结认为,“并购让联想从一个单一的本土市场公司成长为全球运营的公司。”而这8年间,联想在全球PC市场的占有率也从24%一举跃升到146%。
对IBM全球PC业务的并购成功让联想更加坚定通过并购进行海外布局的战略。2009年1月29日,联想收购了总部位于西雅图的美国消费者技术公司Switchbox Labs。
随着近几年日本电子消费企业集体陷入巨额亏损,联想又将目光瞄向日本市场。2011年1月27日,联想与日本最大的PC公司NEC达成战略合作,成立NEC联想日本集团,并持股51%。合资后的第一个季度,NEC联想日本公司便获得日本国内264%的市场份额,超过此前双方合计的25%。
与IBM和NEC的合作帮助联想在第一、二波战略中取得了进展,那么,此次与EMC联合即是联想实现第三波战略的具体体现,这有助于实现其在全球企业级市场的布局。
尽管有评论认为,联想的海外并购是以资本换技术,但它们在联想实现全球市场布局中的作用却不容忽视。对此,已脱身联想集团转型为投资人的柳传志表示,“如果有必要,他将继续支持推进新的海外并购。”
适用版本: Kubernetes v122 [stable]
一个完整描述的目标并不是一个完整的对象,仅包括能体现用户意图的字段和值。 该目标(intent)可以用来创建一个新对象, 也可以通过服务器来实现与现有对象的合并。
系统支持多个应用者(appliers)在同一个对象上开展协作。
“字段管理(field management)”机制追踪对象字段的变化。 当一个字段值改变时,其所有权从当前管理器(manager)转移到施加变更的管理器。 当尝试将新配置应用到一个对象时,如果字段有不同的值,且由其他管理器管理, 将会引发冲突。 冲突引发警告信号:此 *** 作可能抹掉其他协作者的修改。 冲突可以被刻意忽略,这种情况下,值将会被改写,所有权也会发生转移。
当你从配置文件中删除一个字段,然后应用这个配置文件, 这将触发服务端应用检查此字段是否还被其他字段管理器拥有。 如果没有,那就从活动对象中删除该字段;如果有,那就重置为默认值。 该规则同样适用于 list 或 map 项目。
服务器端应用既是原有 kubectl apply 的替代品, 也是控制器发布自身变化的一个简化机制。
如果你启用了服务器端应用,控制平面就会跟踪被所有新创建对象管理的字段。
用户管理字段这件事,在服务器端应用的场景中,意味着用户依赖并期望字段的值不要改变。 最后一次对字段值做出断言的用户将被记录到当前字段管理器。 这可以通过发送 POST、 PUT、 或非应用(non-apply)方式的 PATCH 等命令来修改字段值的方式实现, 或通过把字段放在配置文件中,然后发送到服务器端应用的服务端点的方式实现。 当使用服务器端应用,尝试着去改变一个被其他人管理的字段, 会导致请求被拒绝(在没有设置强制执行时,参见冲突)。
如果两个或以上的应用者均把同一个字段设置为相同值,他们将共享此字段的所有权。 后续任何改变共享字段值的尝试,不管由那个应用者发起,都会导致冲突。 共享字段的所有者可以放弃字段的所有权,这只需从配置文件中删除该字段即可。
字段管理的信息存储在 managedFields 字段中,该字段是对象的 metadata 中的一部分。
服务器端应用创建对象的简单示例如下:
上述对象在 metadatamanagedFields 中包含了唯一的管理器。 管理器由管理实体自身的基本信息组成,比如 *** 作类型、API 版本、以及它管理的字段。
Note: 该字段由 API 服务器管理,用户不应该改动它。
不过,执行 Update *** 作修改 metadatamanagedFields 也是可实现的。 强烈不鼓励这么做,但当发生如下情况时, 比如 managedFields 进入不一致的状态(显然不应该发生这种情况), 这么做也是一个合理的尝试。
managedFields 的格式在 API 文档中描述。
管理器识别出正在修改对象的工作流程(在冲突时尤其有用), 管理器可以通过修改请求的参数 fieldManager 指定。 虽然 kubectl 默认发往 kubectl 服务端点,但它则请求到应用的服务端点(apply endpoint)。 对于其他的更新,它默认的是从用户代理计算得来。
此特性涉及两类 *** 作,分别是 Apply (内容类型为 application/apply-patch+yaml 的 PATCH 请求) 和 Update (所有修改对象的其他 *** 作)。 这两类 *** 作都会更新字段 managedFields,但行为表现有一点不同。
Note:
不管你提交的是 JSON 数据还是 YAML 数据, 都要使用 application/apply-patch+yaml 作为 Content-Type 的值。
所有的 JSON 文档 都是合法的 YAML。
例如,在冲突发生的时候,只有 apply *** 作失败,而 update 则不会。 此外,apply *** 作必须通过提供一个 fieldManager 查询参数来标识自身, 而此查询参数对于 update *** 作则是可选的。 最后,当使用 apply 命令时,你不能在应用中的对象中持有 managedFields。
一个包含多个管理器的对象,示例如下:
在这个例子中, 第二个 *** 作被管理器 kube-controller-manager 以 Update 的方式运行。 此 update 更改 data 字段的值, 并使得字段管理器被改为 kube-controller-manager。
如果把 update *** 作改为 Apply,那就会因为所有权冲突的原因,导致 *** 作失败。
由服务器端应用实现的合并策略,提供了一个总体更稳定的对象生命周期。 服务器端应用试图依据负责管理它们的主体来合并字段,而不是根据值来否决。 这么做是为了多个主体可以更新同一个对象,且不会引起意外的相互干扰。
当用户发送一个“完整描述的目标”对象到服务器端应用的服务端点, 服务器会将它和活动对象做一次合并,如果两者中有重复定义的值,那就以配置文件的为准。 如果配置文件中的项目集合不是此用户上一次 *** 作项目的超集, 所有缺少的、没有其他应用者管理的项目会被删除。 关于合并时用来做决策的对象规格的更多信息,参见 sigsk8sio/structured-merge-diff
Kubernetes 116 和 117 中添加了一些标记, 允许 API 开发人员描述由 list、map、和 structs 支持的合并策略。 这些标记可应用到相应类型的对象,在 Go 文件或在 CRD 的 OpenAPI 的模式中定义:
若未指定 listType,API 服务器将 patchMergeStrategy=merge 标记解释为 listType=map 并且视对应的 patchMergeKey 标记为 listMapKey 取值。
atomic 列表类型是递归的。
这些标记都是用源代码注释的方式给出的,不必作为字段标签(tag)再重复。
在极少的情况下,CRD 或者内置类型的作者可能希望更改其资源中的某个字段的 拓扑配置,同时又不提升版本号。 通过升级集群或者更新 CRD 来更改类型的拓扑信息与更新现有对象的结果不同。 变更的类型有两种:一种是将字段从 map/set/granular 更改为 atomic, 另一种是做逆向改变。
当 listType、mapType 或 structType 从 map/set/granular 改为 atomic 时,现有对象的整个列表、映射或结构的属主都会变为这些类型的 元素之一的属主。这意味着,对这些对象的进一步变更会引发冲突。
当一个列表、映射或结构从 atomic 改为 map/set/granular 之一 时,API 服务器无法推导这些字段的新的属主。因此,当对象的这些字段 再次被更新时不会引发冲突。出于这一原因,不建议将某类型从 atomic 改为 map/set/granular。
以下面的自定义资源为例:
在 specdata 从 atomic 改为 granular 之前,manager-one 是 specdata 字段及其所包含字段(key1 和 key2)的属主。 当对应的 CRD 被更改,使得 specdata 变为 granular 拓扑时, manager-one 继续拥有顶层字段 specdata(这意味着其他管理者想 删除名为 data 的映射而不引起冲突是不可能的),但不再拥有 key1 和 key2。因此,其他管理者可以在不引起冲突的情况下更改 或删除这些字段。
默认情况下,服务器端应用把自定义资源看做非结构化数据。 所有的键值(keys)就像 struct 的字段一样被处理, 所有的 list 被认为是原子性的。
如果自定义资源定义(Custom Resource Definition,CRD)定义了一个 模式, 它包含类似以前“合并策略”章节中定义过的注解, 这些注解将在合并此类型的对象时使用。
控制器的开发人员可以把服务器端应用作为简化控制器的更新逻辑的方式。 读-改-写 和/或 patch 的主要区别如下所示:
强烈推荐:设置控制器在冲突时强制执行,这是因为冲突发生时,它们没有其他解决方案或措施。
除了通过冲突解决方案提供的并发控制, 服务器端应用提供了一些协作方式来将字段所有权从用户转移到控制器。
最好通过例子来说明这一点。 让我们来看看,在使用 Horizo ntalPodAutoscaler 资源和与之配套的控制器, 且开启了 Deployment 的自动水平扩展功能之后, 怎么安全的将 replicas 字段的所有权从用户转移到控制器。
假设用户定义了 Deployment,且 replicas 字段已经设置为期望的值:
application/ssa/nginx-deploymentyaml
并且,用户使用服务器端应用,像这样创建 Deployment:
然后,为 Deployment 启用 HPA,例如:
现在,用户希望从他们的配置中删除 replicas,所以他们总是和 HPA 控制器冲突。 然而,这里存在一个竟态: 在 HPA 需要调整 replicas 之前会有一个时间窗口, 如果在 HPA 写入字段成为所有者之前,用户删除了replicas, 那 API 服务器就会把 replicas 的值设为 1, 也就是默认值。 这不是用户希望发生的事情,即使是暂时的。
这里有两个解决方案:
首先,用户新定义一个只包含 replicas 字段的配置文件:
application/ssa/nginx-deployment-replicas-onlyyaml
用户使用名为 handover-to-hpa 的字段管理器,应用此配置文件。
在此时间点,用户可以从配置文件中删除 replicas 。
application/ssa/nginx-deployment-no-replicasyaml
注意,只要 HPA 控制器为 replicas 设置了一个新值, 该临时字段管理器将不再拥有任何字段,会被自动删除。 这里不需要执行清理工作。
通过在配置文件中把一个字段设置为相同的值,用户可以在他们之间转移字段的所有权, 从而共享了字段的所有权。 当用户共享了字段的所有权,任何一个用户可以从他的配置文件中删除该字段, 并应用该变更,从而放弃所有权,并实现了所有权向其他用户的转移。
由服务器端应用实现的冲突检测和解决方案的一个结果就是, 应用者总是可以在本地状态中得到最新的字段值。 如果得不到最新值,下次执行应用 *** 作时就会发生冲突。 解决冲突三个选项的任意一个都会保证:此应用过的配置文件是服务器上对象字段的最新子集。
这和客户端应用(Client Side Apply) 不同,如果有其他用户覆盖了此值, 过期的值被留在了应用者本地的配置文件中。 除非用户更新了特定字段,此字段才会准确, 应用者没有途径去了解下一次应用 *** 作是否会覆盖其他用户的修改。
另一个区别是使用客户端应用的应用者不能改变他们正在使用的 API 版本,但服务器端应用支持这个场景。
客户端应用方式时,用户使用 kubectl apply 管理资源, 可以通过使用下面标记切换为使用服务器端应用。
默认情况下,对象的字段管理从客户端应用方式迁移到 kubectl 触发的服务器端应用时,不会发生冲突。
Caution:
保持注解 last-applied-configuration 是最新的。 从注解能推断出字段是由客户端应用管理的。 任何没有被客户端应用管理的字段将引发冲突。
举例说明,比如你在客户端应用之后, 使用 kubectl scale 去更新 replicas 字段, 可是该字段并没有被客户端应用所拥有, 在执行 kubectl apply --server-side 时就会产生冲突。
此 *** 作以 kubectl 作为字段管理器来应用到服务器端应用。 作为例外,可以指定一个不同的、非默认字段管理器停止的这种行为,如下面的例子所示。 对于 kubectl 触发的服务器端应用,默认的字段管理器是 kubectl。
如果你用 kubectl apply --server-side 管理一个资源, 可以直接用 kubectl apply 命令将其降级为客户端应用。
降级之所以可行,这是因为 kubectl server-side apply 会保存最新的 last-applied-configuration 注解。
此 *** 作以 kubectl 作为字段管理器应用到服务器端应用。 作为例外,可以指定一个不同的、非默认字段管理器停止这种行为,如下面的例子所示。 对于 kubectl 触发的服务器端应用,默认的字段管理器是 kubectl。
启用了服务器端应用特性之后, PATCH 服务端点接受额外的内容类型 application/apply-patch+yaml。 服务器端应用的用户就可以把 YAMl 格式的 部分定义对象(partially specified objects)发送到此端点。 当一个配置文件被应用时,它应该包含所有体现你意图的字段。
可以从对象中剥离所有 managedField, 实现方法是通过使用 MergePatch、 StrategicMergePatch、 JSONPatch、 Update、以及所有的非应用方式的 *** 作来覆盖它。 这可以通过用空条目覆盖 managedFields 字段的方式实现。以下是两个示例:
这一 *** 作将用只包含一个空条目的列表覆写 managedFields, 来实现从对象中整个的去除 managedFields。 注意,只把 managedFields 设置为空列表并不会重置字段。 这么做是有目的的,所以 managedFields 将永远不会被与该字段无关的客户删除。
在重置 *** 作结合 managedFields 以外其他字段更改的场景中, 将导致 managedFields 首先被重置,其他改变被押后处理。 其结果是,应用者取得了同一个请求中所有字段的所有权。
Caution: 对于不接受资源对象类型的子资源(sub-resources), 服务器端应用不能正确地跟踪其所有权。 如果你对这样的子资源使用服务器端应用,变更的字段将不会被跟踪。
参考链接:
>这个问题我遇到了。
原因是原来的已经有mpd启动了且未退出。而你改动了密码,意图想重新启动mpd。
解决方法如下:
vim /etc/mpdconf
改为原来的密码。
然后
mpdallexit
然后
vim /etc/mpdconf
改为新密码
chmod 600 mpdconf
mpdboot -n 5 -f ~/mpdhosts
成功!
可能有其他原因。但原理应该一样。就是有mpd在运行没退出。
可以mpdtrace看看
夏江 --于华科
个压缩文件下载到自己的机器上才可以欣赏的网络传输技术。目前,在这个领域中的竞争者主要有微软、RealNetworks、Apple三家公司,例如微
软新近发布了Windows Media Services 9、RealNetworks公司新近发布的Helix
Platform、Apple新近发布的Darwin streaming server 41,意图在流媒体领域大干一场。
一般来说,一个完整的流媒体服务系统需要三个部分组成:编码器、流服务器和播放器。编码器通过对内容来源(如MP3文件或者麦克风输入)进行编码,并将编
码过的内容发送到流服务器;流服务器再将它们发布到Internet,这样客户端的播放器只要连接到流服务器就可以进行在线播放了。
利用Winamp架设MP3网络电台
当我们静静地在欣赏美妙的MP3音乐时,你是否曾经考虑过将这些原本属于个人的MP3音乐通过网络在局域网内进行发布,甚至还可以通过Internet进
行发布?这样就可以让遍布世界的朋友们与你一起共享MP3音乐之旅。其实,要做到这一点并不难,你只要将本机创建为一台MP3流媒体服务器,将自己所喜爱
的MP3音乐不停播放,然后通知朋友们访问你的这台MP3服务器就可以了。
说起MP3的播放,使用最广泛的莫过于Winamp了。对于MP3流媒体服务这个领域,Winamp的开发者Nullsoft公司当然不会放弃,专门发布
了面向MP3的流服务器SHOUTcast Server。虽然它的功能没有Windows Media Server和Real
Server强大,但它不仅对硬件的要求极低,更关键的是完全免费,使用起来没有后顾之忧。另外你还需要下载一个名为SHOUTcast DSP
Plug-in的插件,只有安装了这个不起眼的插件,Winamp才能支持流媒体服务。
首先打开Winamp(请注意版本号必须在222以上),切换到“Options” | “Preferences”|
“DSP/Effect”标签页,选中“Nullsoft SHOUTcast Source DSP
v182a[dsp_scdll]”下的“Configure”按钮。打开“SHOUTcast
Source”窗口,选择“Output”标签页,如图1所示,在“Address”栏内填入本机的IP地址。如果你想在Internet上广播MP3音
乐,则必须键入本机的外部IP地址,然后就可以从程序组中运行SHOUTcast
DAAS(GUI)程序以启动SHOUTcast服务。这时系统会自动连接到服务器,接下来请返回图1窗口点击“Connect”按钮。如果连接成功,该
按钮会变为“disconnect”字样,这样我们就完成了在本机架设MP3流服务器的全部过程。
架设REAL格式的视频点播中心
如果是架设视频点播服务器,那么选择Real格式是非常明智的。因为RealProducer Plus这款功能强大的软件 *** 作相当简单,每次使用时会d出一个向导对话框进行 *** 作提示。目前最新版本是100,我们只要选择851以上的版本即可。
从“工具”菜单下选择“创建网页”命令,此时会d出一个如图2所示的向导式对话框,点击“前进”按钮选择你希望用于创建Web页面的Real多媒体文件。
随后RealProducer会询问是创建“d出式播放器”还是“嵌入式播放器”,一般建议选择后者,因为这样所需要的系统资源更低,当然启动速度也更
快。至于播放器的界面,可以选择“标准播放器”,很快就可以创建成功。
最后,RM文件对象所在的目录会增加一些文件,请将这些文件与RM对象一起上传,不过要注意保证RM文件与HTML文件在同一目录下,否则播放器可能无法找到播放对象。
架设WMP流媒体服务器
微软的手伸得很长,什么领域都要插足一下。凭借着Windows *** 作系统的影响力,Windows Media Player市场占有率越来越高,而微软的asf、wmv、wma、avi等格式也开始被越来越多的用户所接受。
架设WMP流媒体服务器,你需要安装Windows Media
Encoder才行,目前最新版本是90简体中文版。如图3所示,我们应该在这里选择“广播实况事件”,接着选择用来编码的音频和视频设备。注意请事先
将音频和视频设备与计算机正确连接,否则会无法检测到。接着你还需要指定服务和发布点,当然也可以使用现有的发布点。然后Windows Media
Encoder会自动创建服务器,并给出>云服务器,从使用的角度来说,就是一个服务器主机。
所谓的服务器,就是一台电脑,只是其配置和物理结构远优与普通家用主机。比如说,可以安装多个CPU,能插2个电源,坏了一个另外一个依旧能使电脑正常运行,可以在不关机的情况下直接更换坏掉的电源,硬盘也组建了RAID阵列,可以在坏了一块硬盘的情况下直接不关机更换硬盘,拥有容错能力的内存,更强悍的主板等等,当然这些都是一台实体服务器所具备的。
所谓的云服务器,是指在实体服务器的 *** 作系统下,利用软件,虚拟出来的服务器。这种服务器,不需要你花钱去买主机、硬盘、CPU、内存等硬件回来自己组装,它可以很快的在网页上完成创建,也可以很方便的在后期增加CPU个数、提升内存、增加硬盘容量、提高网络带宽等,这一切,不需要你像实体机一样要断电,拆开机箱进行增加,只需要暂停服务器的运行,然后在网页页面的后台管理上点点鼠标就能完成,更不用担心新增的硬件兼容性好不好,因为那一切都是虚拟的。
虚拟出来的服务器,也就是云服务器,它运行时所占用的是实体服务器的资源,只是一台实体服务器不可能只生成一个云服务器,很多个云服务器都在同一台实体服务器上运行,运行的多了,实体服务器也会卡。
除了可以方便的提高配置和性能外,云服务器还有很明显的优势:不用你来维护实体服务器、不占用自己的空间摆放实体服务器、不用担心淘汰下来的实体服务器如何处理、很多人用同一台实体服务器可以摊薄成本、很多人用同一套网络设备(如防火墙、路由器、防病毒墙等)同样也可以减少初期投入、降低投入风险,万一哪天不干了,不用发愁那些硬件设备怎么处理。
在使用上,我们大家都知道,即使是实体服务器,若不在身边,也可以通过远程工具来登录和管理,比如用远程桌面来登录,用FTP工具来传送文件。而云服务器,由于看不见摸不着,是必须通过远程来 *** 作的。
主从式架构意图提供一个可缩放 (scalable)的架构,借此网上的计算机或者处理过程是一个客户端或者服务器。服务器软件一般,但不是总是,运行在强大的专用商业计算机上。另一方面,客户端一般运行在普通个人电脑或者工作站上。 主动的角色(主)。 发送要求。 等待直到收到回应。 服务器可是有状态或者无状态的。无状态的服务器不会保留任何两个请求之间的信息,有状态服务器会记住请求之间的信息。这些信息的作用域可以是全局的或者某个事务 (session)的。静态 HTML 页面服务器是一个无状态服务器的例子,Apache Tomcat 是一个有状态服务器。
服务器端与用户端的互动经常使用循序图描述,循序图是UML中的一个标准。
Step2:浏览器与服务器建立TCP连接;
Step3:浏览器将用户的事件按照>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)