1.30天Python入门技巧大学生都来看

2.软体(按照特定顺序组织的计算机数据和指令的集合)详细资料大全

3.物联网操作系统的体系架构

系统 框架_搭建电脑系统框架

第一、什么是C/S结构。

C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系

统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。

传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。而且代价高,效率低。

第二、什么是B/S结构。

B/S(Browser/Server)结构即浏览器和服务器结构。它是随着

Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端

(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。

以目前的技术看,局域网建立B/S结构的网络应

用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地

点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服

务器数据库也很安全。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。

第三、管理软件主流技术。

管理软件技术的主流技术与管理思想一样,也经历了三个发展时期。首先,界面技术从上世纪DOS字符界面到Windows图形界面(或图形用户界面GUI),直至Browser浏览器界面三个不同的发展时期。其次,今天所有电脑的

浏览器界面,不仅直观和易于使用,更主要的是基于浏览器平台的任何应用软件其风格都是一样的,使用人对操作培训的要求不高,而且软件可操作性强,易于识

别;再者,平台体系结构也从过去单用户发展到今天的文件/服务器(F/S)体系、客户机/服务器(C/S)体系和浏览器/服务器(B/S)体系。

二、C/S和B/S之比较

C/S和B/S是当今世界开发模式技术架构的两大主流技术。C/S是美国Borland公司

最早研发,B/S是美国微软公司研发。目前,这两项技术以被世界各国所掌握,国内公司以C/S和B/S技术开发出产品也很多。这两种技术都有自己一定的市

场份额和客户群,各家企业都说自己的管理软件架构技术功能强大、先进、方便,都能举出各自的客户群体,都有一大群文人墨客为自己摇旗呐喊,广告满天飞,可

谓仁者见仁,智者见智。

1、C/S架构软件的优势与劣势

(1)、应用服务器运行数据负荷较轻。

最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与后台程序。运行数据库服务器程序的机器,也称为应用服务器。一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。

(2)、数据的储存管理功能较为透明。

在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,前台应用可以违反的规则,并且通常把那些不同的(不管是已知还是未知的)运行数据,在服务器程序中不集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的规则。所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。在C/S体系的下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理。

(3)、C/S架构的劣势是高昂的维护成本且投资大。

首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建立实时的通讯连接,保持两地的数据库服务器在线运行,网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大。

其次,传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。在JAVA这样的跨平台语言出现之后,B/S架构更是猛烈冲击C/S,并对其形成威胁和挑战。

2、B/S架构软件的优势与劣势

(1)、维护和升级方式简单。

目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。

(2)、成本降低,选择更多。

大家都知道windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统上windows并不是处于绝对的统治地位。现在的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高。所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人使用windows作为桌面操作系统电脑不受影响,这就使的最流行免费的Linux操作系统快速发展起来,Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。

比如说很多人每天上“网易”(原文为新浪)网,只要安装了浏览器就可以了,并不需要了解“网易”的服务器用的是什么操作系统,而事实上大部分网站确实没有使用windows操作系统,但用户的电脑本身安装的大部分是windows操作系统。

(3)、应用服务器运行数据负荷较重。

由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。因此,许多单位都备有数据库存储服务器,以防万一。

3,C/S与B/S区别

Client/Server是建立在局域网的基础上的,Browser/Server是建立在广域网的基础上的。

(1)、硬件环境不同:C/S一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务。

B/S建立在广域网之上的,不必是专门的网络硬件环境,例如电话上网,租用设备,信息自己管理,有比C/S更强的适应范围,一般只要有操作系统和浏览器就行。

(2)、对安全要求不同

C/S一般面向相对固定的用户群,对信息安全的控制能力很强。一般高度机密的信息系统采用C/S结构适宜,可以通过B/S发布部分可公开信息。

B/S建立在广域网之上,对安全的控制能力相对弱,面向是不可知的用户群。

(3)、对程序架构不同

C/S程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑。

B/S对安全以及访问速度的多重的考虑,建立在需要更加优化的基础之上。比C/S有更高的要求,B/S结构的程序架构是发展的趋势,从MS的.Net系列的BizTalk2000Exchange2000等,全面支持网络的构件搭建的系统。SUN和IBM推的JavaBean构件技术等,使B/S更加成熟。

(4)、软件重用不同

C/S程序可以不可避免的整体性考虑,构件的重用性不如在B/S要求下的构件的重用性好。

B/S对的多重结构,要求构件相对独立的功能。能够相对较好的重用。就如买来的餐桌可以再利用,而不是做在墙上的石头桌子。

(5)、系统维护不同

系统维护是软件生存周期中,开销大,相当重要

C/S程序由于整体性,必须整体考察,处理出现的问题以及系统升级难,可能是再做一个全新的系统。

B/S构件组成方面构件个别的更换,实现系统的无缝升级。系统维护开销减到最小,用户从网上自己下载安装就可以实现升级。

(6)、处理问题不同

C/S程序可以处理用户面固定,并且在相同区域,安全要求高的需求,与操作系统相关,应该都是相同的系统。

B/S建立在广域网上,面向不同的用户群,分散地域,这是C/S无法作到的,与操作系统平台关系最小。

(7)、用户接口不同

C/S多是建立在Window平台上,表现方法有限,对程序员普遍要求较高。

B/S建立在浏览器上,有更加丰富和生动的表现方式与用户交流,并且大部分难度减低,降低开发成本。

(8)、信息流不同

C/S程序一般是典型的中央集权的机械式处理,交互性相对低。

B/S信息流向可变化,B-B、B-C、B-G等信息流向的变化,更象交易中心.

30天Python入门技巧大学生都来看

VDI桌面虚拟化的优势在于运算集中在服务器端,因此在以下两种环境中特别合适:1、在极小的广域网带宽环境下,例如低于500Kbs的线路下,可以采用VMware等VDI产品进行部署,用户可以使用平板电脑或者手机接入,访问自己的桌面环境,实现随时随地办公;2、在新建的全千兆网络环境下,同时业务应用比较简单的环境中,用户部署VDI桌面虚拟化后可以购买100元左右的云终端作为客户机,大大减少客户机的硬件投入,拉平在服务器上的硬件投入,使得总投资更加合理。

VDI虚拟桌面基础架构

虚拟桌面基础架构(Virtual Desktop Infrastructure,简称VDI)是许多机构目前正在评估的全新模式,它是基于早期的RDP协议和瘦客户机逐步演变而来的,也是国外VMware等国外虚拟化厂家长期鼓吹的模式。VDI旨在为智能分布式计算带来出色的响应能力和定制化的用户体验,并通过基于服务器的模式提供管理和安全优势。它能够为整个桌面映像提供集中化的管理,但这一模式也存在着其固有的问题。主要表现为:因其利用硬件仿真及瘦协议,使得视频、Adobe Flash、IP 语音(VoIP)以及其它计算或图形密集型应用不适用于该模式,而且VDI 需要持久的网络连接,因此不适于要求离线移动性的场合。此外,其基于服务器的模式对服务器的配置有极高的要求,这些问题的存在不能不让众多的用户重新考虑部署VDI的实际意义及成本。

从实际应用方面来分析,VDI模式还存在诸多需要解决的问题,而与之相关的虚拟化桌面,如远程托管桌面、远程虚拟应用程序、远程托管专用虚拟桌面、本地虚拟应用程序及本地虚拟操作系统等虚拟化桌面也都存在着各种问题;另外还有对终端硬件的支持问题、对网络及服务器硬件过度依赖的问题、以及数据安全性问题等。

VOI虚拟桌面基础架构

从广义上讲Desktop并仅是Windows系统的桌面,而是终端客户机的代名词。同理对桌面的交付不仅限于感观可视的软件运行窗口,更可以是整个操作系统的数据流, VOI 即Virtual OS Infrastructure 构架的实现,从桌面应用交付提升到了OS(操作系统)的标准化与即时分发,与传统的VDI 设计不同之处在于终端对本机系统资源的充分利用不再依靠于GPU 虚拟化与CPU 虚拟化技术,而是直接在I/O 层实现对物理存储介质的数据重定向,以达到虚拟化的操作系统完全工作于本机物理硬件之上,从驱动程序、应用程序到各种设备均不存在远程端口映射关系,而是直接的内部址。

VDI虚拟桌面呈现在我们眼前的是一个图形化系统运行的显示结果,基于VDI 架构时是将远端的这个显示结果的视频帧压缩后传输到客户端后进行还原显示,这个过程会大量占用服务器的资源与网络带宽,而且在非全屏模式,用户实际面对是两个桌面,一个是自己本机的桌面,一个是远端推送过来的虚拟桌面,虚拟桌面上的运算如果需要调用本机资源与外设,都需要通过本机的底层系统进行转发和映射,降低了效率牺牲了资源可用性。 VOI 则可以让虚拟系统从引导阶段就开始接管计算机硬件平台,直接工作在本机的硬件平台之上,不再需要下层系统的支撑。要想实现这一点就必须为客户机提供一个虚拟的磁盘存储空间,将操作系统放置这个虚拟存储空间里,让客户机从这个设备完成启动。

基于VOI的虚拟终端管理系统采用了虚拟容器概念,将终端客户机的存储介质由物理转为虚拟,从分散转为集中;通过IVDP技术将操作系统内核从客户机硬件驱动依赖中分离出来,实现系统应用的跨平台交付。无论本机采用什么样的硬件平台与本地系统,都可以由信息中心按需分发、统一部署。

OSV虚拟桌面基础架构

OSV(Operating System Virtualization)智能桌面虚拟化,是基于X86标准计算机系统下实现PC桌面的集中管理、控制、存储、维护的PC桌面虚拟化技术。OSV与VDI方案最大的区别在于前者使用集中管理、分布运算机制,而后者采用的是集中管理、集中计算,显然后者对于服务器的依赖要远远超过前者。OSV不仅实现了计算机的的集中化管理,在保证本身运算速度和特性不变的前提下做到了计算环境OS&AP和PC硬件的完全脱离。桌面计算环境可以在OSV控制台随需派发并且用户可以开机自行选择桌面环境。用户桌面数据与应用数据均集中存储于OSV Server 上,实现了用户桌面数据的统一管理,统一派发,与计算机硬件分离。OSV Server 通过同步派发或者异步派发模式将桌面流数据,派发至本地计算机进行计算并显示桌面。这样可以让IT管理更加灵活,IT架构更加安全和可靠。达到了客户端随需选择应用环境(OS&AP On-Demand)的IT管理理想境界,使得客户端具备了在任何时间、任何地点都有安全稳定的计算环境,同时实现了以PC为标准的IT基础架构的完全虚拟化,IT基础架构更加的弹性和灵活,极大的增强了企业的竞争力,做到了PC应用的随需应变。 随着桌面虚拟化市场的竞争,一些用户对于各种选择的支持意见和反对意见感到困惑。下面是一些主要的桌面虚拟化方法和这些方法可能适应的各种情况。

远程托管的桌面

当人们考虑“终端服务”的时候大多数人都想到远程托管的桌面。一台服务器运行一个操作系统的镜像或者应用程序,许多客户机使用连接代理软件登录这台服务器。这个软件是客户机上的软件的一部分。客户机操作仅在显示器上显示这个用户共享的应用程序的镜像,来回传送键盘和鼠标输入的信息。

优点:成本低,对数据和应用程序有高水平的控制。

缺点:性能取决于网络连接质量;显示协议经常不能处理复杂的图形;一些为桌面设计的应用程序在共享的模式下不能在服务器上运行;对于不能本地存储数据的用户、使用大多数外设的用户或者使用优盘携带数据到处走的用户来说缺少灵活性。当断开连接的时候不能工作。

远程虚拟桌面应用程序

这是你在曾经使用过的每一个Web应用程序中得到的东西。与共享的桌面不同,这里需要的唯一的东西是一个网络浏览器和标准的Web协议(HTTP、HTTPS、SSL等等)以便创建保密的连接和传输图像和数据。根据应用程序的设计(考虑Flash下载),最终用户的机器可以处理一些应用程序的逻辑或者图形,或者仅仅点亮显示器和向服务器发送鼠标点击信息。

优点:不需要IT部门控制最终用户的硬件或者软件环境。

缺点:不允许IT部门控制最终用户的硬件或者软件环境可能会影响性能。当断开连接的时候不能工作。

远程托管的专用虚拟桌面

增加用户能力以及减少成本和保护IT的Web应用程序或者终端服务的资源。这个服务器不允许很多用户共享同一个应用程序或者操作系统的一个实例,而是托管仅允许那个用户访问的一个虚拟机中的一个完整的操作系统和一套应用程序。这个虚拟机能够在一台服务器上运行,与其它专用的虚拟机共享资源或者自己在一台刀片式PC上运行。能够远程托管或者传送。在传送的情况下,应用程序和操作系统都可以传送到客户机,根据用户的需求下载部分软件,在客户机上执行这些程序,使用其处理能力但是不使用本地存储。

远程托管:

优点:能够运行在共享模式下不能运行的应用程序;隔离每一个用户的活动以防止资源的限制。

缺点:比贡献的桌面使用更多的带宽,使用更多的服务器上的硬件。性能取决于网络连接的质量和显示协议处理图形的能力。当断开连接的时候不能工作。

传送方式:

优点:经常为用户提供更好的性能,因为需要图形或者其它操作在本地执行。

缺点:需要更强大的客户机硬件,减少了虚拟桌面成本的好处。在断开连接的时候不能工作。 考虑一些“Java”。从服务器向客户机下载应用程序并且在客户机上运行,使用本地内存和处理能力。但是,这些虚拟应用程序在一个“沙箱”中运行。这个沙箱强制执行一套规则,规定本地机器能够做什么和与什么设备进行连接。

优点:比远程托管有更多的计算资源并且有时候有更好的性能;消耗较少的带宽;能够离线使用。

虚拟机。这个虚拟机能够像一个完全独立的设备那样发挥作用,使自己与虚拟机外部的客户机上的硬件和软件隔离开来。选择2:一个管理程序在这台机器上的BIOS上运行,允许用户运行多个操作系统,完全没有“主机”操作系统。

优点:一个系统上有多个操作系统;不用担心操作系统的兼容性;能够在智能手机或者掌上电脑等非传统的虚拟机客户机上运行。

缺点:潜在的资源冲突;客户端管理程序相对不成熟没有证明安全性。

VDI并不是降低IT成本的特效药

如果您采用VDI的主要目的仅仅是为了降低成本,那么有可能进入一个误区。很多人忽视了VDI在企业应用中的真实情况,该装的本地操作系统还是得装(这还意味着IT部门要搭理本机和VDI两套系统),实现完善的VDI环境还意味着企业需要在核心基础设施上增加投入包括面向VDI的高可靠性存储、服务器和新的终端设备,VDI软件授权也是一笔费用,全部下来比传统的IT基础架构的成本只会高不会低。(一个更有价值的IT系统永远不会更便宜),企业实施VDI如果不是为了增值而是降低成本,那么很可能会失望。

存储是VDI的阿喀琉斯之踵

在传统的服务器虚拟化环境,存储系统扮演着关键角色,但内存的消耗是头号问题。在VDI环境,内存也很重要,但是存储资源的消耗成了头号问题,但需要注意的是VDI的存储问题有其特殊性。VDI的存储问题通常与存储性能表现有关,因为这会直接影响到终端用户的用户体验。

很多VDI存储性能计算器在预测用户工作时的存储性能方面表现不俗,但遗憾的是,Windows在启动和登录方面并不是一个特别有效率的操作系统。大量Windows系统的同时启动和登录对VDI系统来说将会产生所谓的“启动风暴”或“登录风暴”。

在最糟糕的情况下,虚拟桌面从启动到加载完成往往需要十几分钟甚至数小时,这对于终端用户和CIO的职业来说都是灾难性的。(这也是为什么部署VDI往往会保留终端上的本地操作系统,而IT部门不得不同时维护本地和VDI虚拟桌面两套系统)企业如果准备部署VDI,一定要确保存储系统的写入吞吐速度能经受“启动风暴”和“登录风暴”。这意味着企业需要将传统存储技术与高IOPS的固态硬盘SSD系统进行整合。另外一个解决办法是选择模块化的专业VDI解决方案,这些解决方案在每个模块中都整合了传统硬盘和固态硬盘,同时企业还能分阶段逐步替换传统桌面环境,将项目投资分散到VDI方案的整个生命周期中,而不是一次趸付。

留神VDI可能涉及的软件授权陷阱

导致VDI项目搁浅的因素很多,其中软件厂商对VDI应用的软件授权规定往往是其中之一。即使你已经拿到了软件产品的网站使用授权或者并发用户授权,在实施VDI之前也要务必搞清楚软件厂商是否提供了产品的VDI授权。很多软件授权都明文禁止在虚拟环境中使用,或者会要求你另外购买专门的虚拟化授权供VDI环境使用。

VDI软件授权方面需要格外小心的是微软公司的产品。微软有一种“虚拟桌面访问授权”(Virtual Desktop Access,VDA),可以被用来授权非Windows操作系统设备(所谓的BYOD,例如iPad等平板电脑和智能手机)通过虚拟桌面访问Windows应用。但CIO需要警惕的是:这个授权要求企业为每个移动设备都购买一份,如果企业实施VDI的目的主要是满足移动设备应用(例如医院、证券和教育等行业应用),这VDA授权可能会是一笔不菲的费用。

闲置客户机硬件性能

主流虚拟桌面软件都采用了VDI 架构,受原始设计初衷的影响虚拟桌面系统对客户机的硬件配置几乎没有限制,普通的智能手机、平板电脑、甚至十多年前的老旧PC 机都可以顺利接入的桌面流畅使用各种超出本机软硬件平台所支持的桌面与应用,各种外部接口的使用(如USB 、串口等)以及内部数据处理(CPU、GPU 等)都采用映射流完成,因此虚拟桌面的使用对本机资源的占用相当少,反之也是一种很多闲置。对于一些企业新近购入的PC 机往往拥有着强大的本机数据与图形运算能力,当某时因为工作需要在这些PC 机上接入虚拟桌面使用有关应用时,会发现自身明明备配了大容量的内存与高性能的CPU及显示卡,但是在使用图形渲染、仿真运算等应用时表现却并不好,而服务器此刻却为你背负了巨大的压力。本机大量的硬件资源未能得到充分的发挥。

另外有些企业的窗口单位的PC 上往往会使用很多的外部设备,如各种型号的打印机、扫码器、身份验证设备等数据采集设备,这些设备原本是接驳在本机接口并驱动的,在接入虚拟桌面后并无法保证全部接口都能完成映射且正常的工作,这个问题也会影响到业务的开展。

业务瘫痪风险

主流的几款VDI 产品(包括VMware View 在内)需要基本配备为:一台服务器、根据发布需要而准备N台模板机。为了方便管理有些企业会将其全部转移到虚拟服务器上工作,虚拟服务器统一管理与维护都相当方便,特别是虚拟服务器出现宕机等问题后可以快速的迁移。但是承载这些虚拟服务器或虚拟机的物理服务器一旦出现宕机,即使事前物理服务器有热备(或负载均衡)在宕机之后的重新恢复也需要较长时间,并且无法保证间隔期数据的完好。在这个过程中企业的很多业务将有可能受到影响。在全部采用物理服务器的情况下又会回到采购成本与管理成本的话题上。

1、远程托管桌面

即所谓的终端服务器模式。多台终端使用客户端软件登录到服务器,而用户在终端的显示器上获得服务器端用户的桌面图像,以及来回传送键盘和鼠标的输入信号。多用户之间共享应用程序和操作系统实例,以及磁盘空间等资源。此种方式优点在于成本低,对数据和应用程序拥有很大的控制程度。缺点则主要有:某些应用程序无法在服务器上以共享的方式运行;显示协议不能处理复杂图形;性能取决于网络连接的质量;对网络性能有依赖,网络连接情况较差或中断则无法正常工作。

远程托管桌面的主要软件产品有:思杰XenDesktop、Wyse ThinOS、微软远程桌面服务。

2、远程虚拟应用程序

你曾经使用过的每个Web应用程序就是一种远程虚拟应用。与共享桌面不同的地方是,它只需要浏览器和标准的Web协议(HTTP、HTTPS和SSL)来创建安全连接、传输图像和数据。最终用户的机器可能处理应用程序的一些逻辑或图形,也可能只打开显示器、向服务器发送鼠标点击,具体取决于应用程序的设计。这种方式的优点在于IT部门无需控制最终用户的硬件或软件环境,然而这也可以算是缺点,正因为IT部门无法控制用户的硬件或软件环境有时会影响使用性能和效果。当然,离线状态下也无法工作。

此种模式的软件产品主要有:思杰XenApps、微软远程桌面服务、VMware View和VMware ThinApps,云端软件平台,瑞友天翼,极通EWEBS等等。

3、远程托管专用虚拟桌面

与网络应用或终端服务相比,这种模式为最终用户增强了功能。用户在服务器上使用的虚拟桌面并不与其他的用户共享文件目录或应用程序,而是在该用户才能访问的虚拟桌面里面有一套独立的系统。虚拟机可以在服务器上运行,与其他专用的虚拟机共享资源;也可以在刀片PC上独自运行。既可以远程托管,也可以流式传送。

远程托管专用虚拟桌面的模式优点在于能够运行共享模式下无法顺利运行的应用程序;可以把每个用户的活动、存储全部分离开来,安全性和实用性更好;缺点在于耗用的资源要比共享桌面的方式多,同时性能仍然取决于网络连接的质量和显示协议处理图形的功能。要是连接中断,无法正常工作。

此种模式的软件产品主要有:思杰XenDesktop、Wyse ThinOS、VMware View、微软企业桌面虚拟化(MED-V),达龙业务安全桌面系统。

流式传送模式:在此模式下,应用程序和操作系统都可以传送到客户机――根据用户需求,下载部分软件,然后在客户机上执行;使用的是客户机的处理功能,而不是本地存储功能。优点是可以利用本地客户机资源,所以常常为用户提供更好的性能。缺点则是需要功能更强大的客户机硬件,减弱了虚拟桌面的成本优势。要是连接中断,无法正常工作。

流式传送模式的软件产品主要有:思杰XenDesktop/XenApp/XenProvisioning、Wyse TCX、VMware View Manager/ThinApps/Composer和微软虚拟桌面基础架构(VDI)套件。

4、本地虚拟应用程序

此种模式与JAVA的工作模式类似。应用程序从服务器下载到客户机,然后在客户机上运行,使用本地内存和处理功能。但应用程序在沙箱(sandbox)里面运行,而沙箱为本地机器可以进行什么操作、可连接至什么设备制定了一套规则。优点在于拥有比远程托管应用程序更多的计算资源,有时候性能更好;耗用的带宽比较少;可以在离线状下使用。缺点则是缺乏统一的有效的管控,桌面虚拟化在维护方面的优势没有体现出来。软件产品主要有思杰XenApp、Wyse TCX、VMware ThinApp和微软应用程序虚拟化。

5、本地虚拟操作系统

目前有两个主要版本。第一个选择:客户机端的虚拟机管理程序可以在笔记本电脑或台式机上创建一个虚拟机,虚拟机可充当一个完全独立的单元,与虚拟机之外的客户机上的软硬件隔离开来。第二个选择:虚拟机管理程序在机器的BIOS上运行,允许用户运行多个操作系统,根本没有什么主机操作系统。本地虚拟机的优点显而易见,一个系统上可以有多个操作系统;不用担心操作系统的兼容性以及潜在的资源冲突;但缺点也很明显,占用本地资源较大,无法由IT部门集中管控,客户机端的虚拟机管理程序相对不够成熟,其安全性有待验证等等。

主要软件产品有思杰Dazzle/Receiver、WysePocketCloud、TCX、VMware View Client Virtualization /Offline Desktop(测试版)和微软虚拟桌面基础架构(VDI)套件。

企业引进虚拟化几点评估建议

1、使用习惯、感受:企业大量的分散的PC采用集中式运算进行集中式的管理确实为我们企业提供了很好的解决方案。不过我们知道计算资源是不可缺少的,不过是存在的位置不同而已,我们放在终端上还是服务器上都是无法减少的。假设我们每个人桌面的计算资源相当于(cpu双核2.0 内存2G)在这种环境下我们已经习惯了的用户体验转移到服务器上,100个用户的并发那就要求服务器提供100X2X2等于400的CPU运算能力和200G的内存才可以满足用户习惯了的体验环境(冗余未计算内)。那么我们计算如果我们的企业有500个用户呢,如果是1000个用户呢。实际上我们不可能为我们的用户提供如此的计算能力的,那么也就从这个单方面就必须牺牲用户的体验了。其二在每个用户都要去服务器端下载它所用的操作系统对带宽压力是巨大的,用户越多这个因素就越明显,所以这个因素也需要企管人员重点考虑。用户的体验没以前好了,会不会对IT人员的工作推进造成影响呢?

2、设备和软件兼容性:我们习惯了即插即用的外设设备,新的系统会不会对日常的工作习惯造成影响呢,如果有了影响是如何避免的呢?我们的IT管理人员的工作量是增加了还是降低了,效率是提高了还是降低了?需要我们企管人员具体考量。

3、成本:企业花费的每一分钱都会具体考虑投入产出比,一个好的管理工具要推广,最起码它能够给企业在一个时间内带来成倍以上的收益才给与考虑的。集中式的虚拟化方案带来的投入成本主要是虚拟化软件授权费用,正版操作系统的授权,正版办公软件的授权,瘦客户机的采购费用,网络设备的换代费用,新的存储设备增加费用,服务器集群的硬件和软件采购费用,甚至有一些网络改造的费用。由于新的技术对管理人员的技术要求的提高相应的就会有技术人员的培训学习费用,新增管理人员费用。由于设备的成倍增加带来的还有机房改造电力消耗的各种费用。 考虑到各种费用的总和,计算出的单点改造成本,还要考虑到日后虚拟化平台升级费用和兼容性是否能匹配企业内部的系统升级。然后才可以制定一个完整的财务规划来应对整个项目的开支和升级。这个计划就需要整个集团公司所有部门一起参与协调。

4、多媒体和大型程序体验:在一些设计部门和跟设计关联部门,需要大型的设计程序由于显卡虚拟化的技术尚未成熟,所以在这个场景中是无法应用的。

5、软硬件架构改变:新的系统和新的应用,我们有做好准备吗来应对管理架构的改变,来应对团队组织的改变吗?最后建议我们的企管人员对于集中式计算模式的方案问一句:我们准备好了吗?

好的,假如您觉得您的企业可以承受以上提到的问题,并经过讨论打算上这个项目了,我们祝愿您项目实施成功并提供下面几点建议仅供参考:

我们依照着所有最佳策略、做了恰当的分析和设计并打算开始将用户迁移到他们全新的虚拟桌面上。但不要这么快。我们需要确保已经做好的恰当的规划,否则最终我们可能要面临应用出现缺陷、用户感到困惑、或者丢失文件,必须有一个制定好的迁移计划让用户来遵循它。

个性化同步:一个用户的传统桌面可能已经安装了大量的应用程序、升级和补丁。盲目地将这些设置搬到新环境中可能会出现无法预料的结果。有一种可选的方法是,从一个面向终端用户的“干净”环境开始,只迁移有要求的设置( 例如:outlook签名、浏览器收藏夹等) 。通过提前设置可以验证迁移流程并测试设置以确保能够兼容新系统。

数据同步:除了用户的设置之外,任何本地桌面上保存的数据都必须转移到一个可以被虚拟桌面访问的地方,这就是一个网络共享。因为用户可能会将这些数据保存在他们桌面上的任何位置,因此通过分析应该快速决定两个可能点:“我的文件”或者在本地驱动器上的文件夹。当用户准本迁移到虚拟桌面的时候,数据就被转移到网络共享中。一旦迁移完成,用户应该利基从虚拟桌面开始工作。尽管传统桌面通常是可以访问这些位置的,但是这么做往往会导致性能降低、文件访问缓慢以及潜在的保留问题。

终端用户支持:迁移过程对用户有着很大的影响,因此提前应该搭建一个恰当的支持结构。支持团队应该考虑到迁移过程中常见的一些问题,记录下常见问题并与将要进行迁移的所有用户进行交流。这些资料将有助于轻松地定位。但仅仅这些步骤是不够的。在迁移的第一个星期内将会出现大量用户问题。如果有一个完善的用户验收测试(User Acceptance Test) ,那么提前就会预期到其中一些挑战,并准备一些有价值的FAQ 材料。支持团队需要相关的工具和培训来帮助用户即时地解决问题。如果他们能够看到用户的端点设备和虚拟桌面的话,他们的效率可能会更高。这为支持团队提供了对用户挑战的完全可见性。

记住一点,迁移计划一定不能是改观。这个过程必须是灵活的,可以应对后续的不可预见的挑战。部署团队必须就这个流程的挑战进行交流和沟通。最后,一旦用户的数据/ 设置迁移了,那么他们就必须也迁移到虚拟桌面,否则物理桌面和虚拟桌面环境可能就会出现数据/ 个性化的冲突。

软体(按照特定顺序组织的计算机数据和指令的集合)详细资料大全

零基础学Python

30天系统化的课程讲解,构建清晰的python知识框架,零基础入门!

卡片式学习、新手零基础入门、内容通俗易懂。循序渐进学习Python概念与语法知识点,每天一课,碎片化学习python编程!每天解锁新的知识点、交互式学习效率翻倍,每个编程概念都有隐喻,快速了解Python语法!图文并茂讲解得非常很清晰,也不会感到无聊,题型也是有易到难循序渐进,一步一步让我对编程充满了信心!交互式练习挖空题,有答案提示,对新手友好~

完成课程呈现卡片式进度,点击任意一张卡片可以回顾对应的知识点加深记忆!不知不觉学会好多代码知识,代码卡、概念卡。支持电脑网页端同步学习,可以敲代码做题!每节课的学习重点总结,学完课程缺乏编程练习?NO!这里还有百题斩,强化巩固学习效果!终于有更多练习的机会了,姐妹们都给我冲鸭!

物联网操作系统的体系架构

软体(中国大陆及香港用语,台湾称作软体,英文:Sofare)是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软体被划分为系统软体、套用软体和介于这两者之间的中间件。软体并不只是包括可以在计算机(这里的计算机是指广义的计算机)上运行的电脑程式,与这些电脑程式相关的文档一般也被认为是软体的一部分。简单的说软体就是程式加文档的集合体。另也泛指社会结构中的管理系统、思想意识形态、思想政治觉悟、法律法规等等。

基本介绍 中文名 :软体 外文名 :Sofare 套用类别 :系统软体、套用软体等 开发语言 :Java、C/C++、Basic等 定义,特点,分类,套用类别,授权类别,相关概念,开发流程,软体工程师,法律保护,著作权归属,载体,使用许可,生命周期,软体生命周期模型,常见的软体生命周期模型,开发语言,O语言,Java语言,易语言(E语言),C/C++语言,习语言,Basic,php,Perl,Python,C#,Javascript,Ruby,Fortran,objective c,Pascal,Swift, 定义 软体,拼音为Ruǎnjiàn,国标中对软体的定义为:与计算机系统操作有关的电脑程式、规程、规则,以及可能有的档案、文档及数据。 其它定义: 1.运行时,能够提供所要求功能和性能的指令或电脑程式集合。 2.程式能够满意地处理信息的数据结构。 3.描述程式功能需求以及程式如何操作和使用所要求的文档。 以开发语言作为描述语言,可以认为:软体=程式+数据+文档 特点 1、无形的,没有物理形态,只能通过运行状况来了解功能、特性、和质量 2、软体渗透了大量的脑力劳动,人的逻辑思维、智慧型活动和技术水平是软体产品的关键 3、软体不会像硬体一样老化磨损,但存在缺陷维护和技术更新 4、软体的开发和运行必须依赖于特定的计算机系统环境,对于硬体有依赖性,为了减少依赖,开发中提出了软体的可移植性 5、软体具有可复用性,软体开发出来很容易被复制,从而形成多个副本 分类 套用类别 按套用范围划分,一般来讲软体被划分为系统软体、套用软体和介于这两者之间的中间件。 系统软体 系统软体为计算机使用提供最基本的功能,可分为作业系统和系统软体,其中作业系统是最基本的软体。 系统软体是负责管理计算机系统中各种独立的硬体,使得它们可以协调工作。系统软体使得计算机使用者和其他软体将计算机当作一个整体而不需要顾及到底层每个硬体是如何工作的。 1.作业系统是一管理计算机硬体与软体资源的程式,同时也是计算机系统的核心与基石。作业系统身负诸如管理与配置记忆体、决定系统资源供需的优先次序、控制输入与输出设备、操作网路与管理档案系统等基本事务。作业系统也提供一个让使用者与系统互动的操作接口。 2.支撑软体是支撑各种软体的开发与维护的软体,又称为软体开发环境(SDE)。它主要包括环境资料库、各种接口软体和工具组。著名的软体开发环境有IBM公司的Web Sphere,微软公司的等。 包括一系列基本的工具(比如编译器、资料库管理、存储器格式化、档案系统管理、用户身份验证、驱动管理、网路连线等方面的工具)。 套用软体 系统软体并不针对某一特定套用领域,而套用软体则相反,不同的套用软体根据用户和所服务的领域提供不同的功能。 套用软体是为了某种特定的用途而被开发的软体。它可以是一个特定的程式,比如一个图像浏览器。也可以是一组功能联系紧密,可以互相协作的程式的集合,比如微软的Office软体。也可以是一个由众多独立程式组成的庞大的软体系统,比如资料库管理系统。 如今智慧型手机得到了极大的普及,运行在手机上的套用软体简称手机软体。所谓手机软体就是可以安装在手机上的软体,完善原始系统的不足与个性化。随着科技的发展,手机的功能也越来越多,越来越强大。不是像过去的那么简单死板,发展到了可以和掌上电脑相媲美。手机软体与电脑一样,下载手机软体时还要考虑你购买这一款手机所安装的系统来决定要下相对应的软体。手机主流系统有以下:Windows Phone、Symbian、iOS、Android。 授权类别 不同的软体一般都有对应的软体授权,软体的用户必须在同意所使用软体的许可证的情况下才能够合法的使用软体。从另一方面来讲,特定软体的许可条款也不能够与法律相违背。 依据许可方式的不同,大致可将软体区分为几类: 专属软体 :此类授权通常不允许用户随意的复制、研究、修改或散布该软体。违反此类授权通常会有严重的法律责任。传统的商业软体公司会采用此类授权,例如微软的Windows和办公软体。专属软体的源码通常被公司视为私有财产而予以严密的保护。 自由软体 :此类授权正好与专属软体相反,赋予用户复制、研究、修改和散布该软体的权利,并提供源码供用户自由使用,仅给予些许的其它限制。以Linux、Firefox 和OpenOffice 可做为此类软体的代表。 共享软体 :通常可免费的取得并使用其试用版,但在功能或使用期间上受到限制。开发者会鼓励用户付费以取得功能完整的商业版本。根据共享软体作者的授权,用户可以从各种渠道免费得到它的拷贝,也可以自由传播它。 免费软体 :可免费取得和转载,但并不提供源码,也无法修改。 公共软体 :原作者已放弃权利,著作权过期,或作者已经不可考究的软体。使用上无任何限制。 相关概念 开发流程 软体开发是根据用户要求建造出软体系统或者系统中的软体部分的过程。软体开发是一项包括需求捕捉,需求分析,设计,实现和测试的系统工程。软体一般是用某种程式设计语言来实现的。通常采用软体开发工具可以进行开发。 软体开发流程 Sofare development process 。 软体设计思路和方法的一般过程,包括设计软体的功能和实现的算法和方法、软体的总体结构设计和模组设计、编程和调试、程式联调和测试以及编写、提交程式。 1 相关系统分析员和用户初步了解需求,然后列出要开发的系统的大功能模组,每个大功能模组有哪些小功能模组,对于有些需求比较明确相关的界面时,在这一步里面可以初步定义好少量的界面。 2 系统分析员深入了解和分析需求,根据自己的经验和需求做出一份文档系统的功能需求文档。这次的文档会清楚例用系统大致的大功能模组,大功能模组有哪些小功能模组,并且还例出相关的界面和界面功能。 3 系统分析员和用户再次确认需求。 4 系统分析员根据确认的需求文档所例用的界面和功能需求,用叠代的方式对每个界面或功能做系统的概要设计。 5 系统分析员把写好的概要设计文档给程式设计师,程式设计师根据所例出的功能一个一个的编写。 6 测试编写好的系统。交给用户使用,用户使用后一个一个的确认每个功能,然后验收。 软体工程师 一般指从事软体开发职业的人。软体工程师10余年来一直占据高薪职业排行榜的前列,作为高科技行业的代表,技术含量很高,职位的争夺也异常激烈。软体开发是一个系统的过程,需要经过市场需求分析、软体代码编写、软体测试、软体维护等程式。软体开发工程师在整个过程中扮演着非常重要的角色,主要从事根据需求开发项目软体工作。 法律保护 计算机软体作为一种知识产品,其要获得法律保护,必须具备以下必要条件: (一)原创性。 即软体应该是开发者独立设计、独立编制的编码组合。 (二)可感知性。 受保护的软体须固定在某种有形物体上,通过客观手段表达出来并为人们所知悉。 (三)可再现性 。即把软体转载在有形物体上的可能性。 著作权归属 根据《计算机软体保护条例》第10条的规定,计算机软体著作权归属软体开发者。因此,确定计算机著作权归属的一般原则是“谁开发谁享有著作权”。软体开发者指实际组织进行开发工作,提供工作条件完成软体开发,并对软体承担责任的法人或者非法人单位,以及依靠自己具有的条件完成软体开发,并对软体承担责任的公民。 载体 软体的载体可以是硬碟、光碟、随身碟、软碟等数据存储设备。 使用许可 不同的软体一般都有对应的软体授权,软体的使用者必须在同意所使用软体的许可证的情况下才能够合法的使用软体。 依据许可方式的不同,大致可将软体区分为几类: 专属软体、自由软体、共享软体、免费软体、公共软体。 生命周期 软体生命周期是指从软体定义、开发、使用、维护到报废为止的整个过程,一般包括问题定义、可行性分析、需求分析、总体设计、详细设计、编码、测试和维护。 问题定义就是确定开发任务到底“要解决的问题是什么”,系统分析员通过对用户的访问调查,最后得出一份双方都满意的关于问题性质、工程目标和规模的书面报告。 可行性分析就是分析上一个阶段所确定的问题到底“可行吗”,系统分析员对系统要进行更进一步的分析,更准确、更具体地确定工程规模与目标,论证在经济上和技术上是否可行,从而在理解工作范围和代价的基础上,做出软体计画。 需求分析即使对用户要求进行具体分析,明确“目标系统要做什么”,把用户对软体系统的全部要求以需求说明书的形式表达出来。 总体设计就是把软体的功能转化为所需要的体系结构,也就是决定系统的模组结构,并给出模组的相互调用关系、模组间传达的数据及每个模组的功能说明。 详细设计就是决定模组内部的算法与数据结构,也是明确“怎么样具体实现这个系统”。 编码就是选取适合的程式设计语言对每个模板进行编码,并进行模组调试。 测试就是通过各种类型的测试使软体达到预定的要求。 维护就是软体交付给用户使用后,对软体不断查错、纠错和修改,使系统持久地满足用户的需求。 软体的生命周期也可以分为3个大的阶段,分别是计画阶段、开发阶段和维护阶段。 软体生命周期模型 软体生命周期模型也称为软体过程模型,反映软体生存周期各个阶段的工作如何组织、衔接,常用的有瀑布模型、原型模型、螺旋模型、增量模型、喷泉模型,还有建造-修补模型、MSF过程模型、快速原型模型。 常见的软体生命周期模型 瀑布模型 有时也称为V模型,它是一种线型顺序模型,是项目自始至终按照一定顺序的步骤从需求分析进展到系统测试直到提交用户使用,它提供了一种结构化的、自顶向下的软体开发方法,每阶段主要工作成果从一个阶段传递到下一个阶段,必须经过严格的评审或测试,以判定是否可以开始下一阶段工作,各阶段相互独立、不重叠。瀑布模型是所有软体生命周期模型的基础。 原型+瀑布模型 原型模型本身是一个叠代的模型,是为了解决在产品开发的早期阶段存在的不确定性、二义性和不完整性等问题,通过建立原型使开发者进一步确定其应开发的产品,使开发者的想像更具体化,也更易于被客户所理解。原型只是真实系统的一部分或一个模型,完全可能不完成任何有用的事情,通常包括抛弃型和进化型两种,抛弃型指原型建立、分析之后要扔掉,整个系统重新分析和设计;进化型则是对需求的定义较清楚的情形,原型建立之后要保留,作为系逐渐增加的基础,采用进化型一定要重视软体设计的系统性和完整性,并且在质量要求方面没有捷径,因此,对于描述相同的功能,建立进化型原型比建立抛弃型原型所花的时间要多。原型建立确认需求之后采用瀑布模型的方式完成项目开发。 增量模型 与建造大厦相同,软体也是一步一步建造起来的。在增量模型中,软体被作为一系列的增量构件来设计、实现、集成和测试,每一个构件是由多种相互作用的模组所形成的提供特定功能的代码片段构成。增量模型在各个阶段并不交付一个可运行的完整产品,而是交付满足客户需求的一个子集的可运行产品。整个产品被分解成若干个构件,开发人员逐个构件地交付产品,这样做的好处是软体开发可以较好地适应变化,客户可以不断地看到所开发的软体,从而降低开发风险。 一些大型系统往往需要很多年才能完成或者客户急于实现系统,各子系统往往采用增量开发的模式,先实现核心的产品,即实现基本的需求,但很多补充的特性(其中一些是已知的,另外一些是未知的)在下一期发布。增量模型强调每一个增量均发布一个可操作产品,每个增量构建仍然遵循设计-编码-测试的瀑布模型。 叠代模型 早在20世纪50年代末期,软体领域中就出现了叠代模型。最早的叠代过程可能被描述为“分段模型”。叠代,包括产生产品发布(稳定、可执行的产品版本)的全部开发活动和要使用该发布必需的所有其他外围元素。所以,在某种程度上,开发叠代是一次完整地经过所有工作流程的过程:(至少包括)需求工作流程、分析设计工作流程、实施工作流程和测试工作流程。 实质上,它类似小型的瀑布式项目。所有的阶段(需求及其它)都可以细分为叠代。每一次的叠代都会产生一个可以发布的产品,这个产品是最终产品的一个子集。 开发语言 O语言 O语言是一款中文计算机语言(或称套装:O汇编语言、O中间语言、O高级语言) Java语言 作为跨平台的语言,可以运行在Windows和Unix/Linux下面,长期成为用户的首选。自JDK6.0以来,整体性能得到了极大的提高,市场使用率超过20%。可能已经达到了其鼎盛时期了,不知道后面能维持多长时间。 易语言(E语言) 易语言是一个自主开发,适合国情,不同层次不同专业的人员易学易用的汉语程式语言。易语言降低了广大电脑用户编程的门槛,尤其是根本不懂英文或者英文了解很少的用户,可以通过使用本语言极其快速地进入Windows程式编写的大门。 C/C++语言 以上2个作为传统的语言,一直在效率第一的领域发挥着极大的影响力。像Java这类的语言,其核心都是用C/C++写的。在高并发和实时处理,工控等领域更是首选。 习语言 习语言即中文版的C语言 Basic 美国计算机科学家约翰·凯梅尼和托马斯·库尔茨于1959年研制的一种“初学者通用符号指令代码”,简称BASIC。由于BASIC语言易学易用,它很快就成为流行的计算机语言之一。 php 同样是跨平台的脚本语言,在网站编程上成为了大家的首选,支持PHP的主机非常便宜,PHP+Linux+MySQL+Apache的组合简单有效。 Perl 脚本语言的先驱,其优秀的文本处理能力,特别是正则表达式,成为了以后许多基于网站开发语言(比如php,java,C#)的这方面的基础。 Python 是一种面向对象的解释性的电脑程式设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常套用。 这种语言具有非常简捷而清晰的语法特点,适合完成各种高层任务,几乎可以在所有的作业系统中运行。 基于这种语言的相关技术正在飞速的发展,用户数量急剧扩大,相关的资源非常多。 C# 是微软公司发布的一种面向对象的、运行于NET Framework之上的高级程式设计语言,并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejl *** erg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、界面,与Java几乎同样的语法,和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NETwindows网路框架的主角。 Javascript Javascript是一种由Netscape的LiveScript发展而来的脚本语言,主要目的是为了解决伺服器终端语言,比如Perl,遗留的速度问题。当时服务端需要对数据进行验证,由于网路速度相当缓慢,只有28.8kbps,验证步骤浪费的时间太多。于是Netscape的浏览器Navigator加入了Javascript,提供了数据验证的基本功能。 Ruby 一种为简单快捷面向对象编程(面向对象程式设计)而创的脚本语言,由日本人松本行弘(まつもとゆきひろ,英译:Yukihiro Matsumoto,外号matz)开发,遵守GPL协定和Ruby License。Ruby的作者认为Ruby > (Smalltalk + Perl) / 2,表示Ruby是一个语法像Smalltalk一样完全面向对象、脚本执行、又有Perl强大的文字处理功能的程式语言。 Fortran 在科学计算软体领域,Fortran曾经是最主要的程式语言。比较有代表性的有Fortran 77、Watcom Fortran、NDP Fortran等。 objective c 这是一种运行在苹果公司的mac os x,iOS作业系统上的语言。这两种作业系统的上层图形环境,应用程式编程框架都是使用该语言实现的。随着iPhone,iPad的流行,这种语言也开始在全世界流行。 Pascal Pascal是一种计算机通用的高级程式设计语言。Pascal的取名是为了纪念十七世纪法国著名哲学家和数学家Blaise Pascal。它由瑞士Niklaus Wirth教授于六十年代末设计并创立。Pascal语言语法严谨,层次分明,程式易写,具有很强的可读性,是第一个结构化的程式语言。 Swift Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C*共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程式。

物联网操作系统由内核、辅助外围模块(文件系统、图形用户界面、通信协议栈、各类常见设备的驱动程序等)、集成开发环境等组成,基于此,可衍生出一系列面向行业的特定应用。

物联网操作系统与传统的个人计算机操作系统和智能手机类操作系统不同,它具备物联网应用领域内的一些独特特点,现说明如下。

物联网操作系统内核的特点

1、内核尺寸伸缩性强,能够适应不同配置的硬件平台。比如,一个极端的情况下,内核尺寸必须维持在10K以内,以支撑内存和CPU性能都很受限的传感器,这时候内核具备基本的任务调度和通信功能即可。在另外一个极端的情况下,内核必须具备完善的线程调度、内存管理、本地存储、复杂的网络协议、图形用户界面等功能,以满足高配置的智能物联网终端的要求。这时候的内核尺寸,不可避免的会大大增加,可以达到几百K,甚至M级。这种内核尺寸的伸缩性,可以通过两个层面的措施来实现:重新编译和二进制模块选择加载。重新编译措施很简单,只需要根据不同的应用目标,选择所需的功能模块,然后对内核进行重新编译即可。这个措施应用于内核定制非常深入的情况下,比如要求内核的尺寸达到10K以下的场合。而二进制模块选择加载,则用在对内核定制不是很深入的情况。这时候维持一个操作系统配置文件,文件里列举了操作系统需要加载的所有二进制模块。在内核初始化完成后,会根据配置文件,加载所需的二进制模块。这需要终端设备要有外部存储器(比如硬盘、Flash等),以存储要加载的二进制模块;

2、内核的实时性必须足够强,以满足关键应用的需要。大多数的物联网设备,要作系统内核要具备实时性,因为很多的关键性动作,必须在有限的时间内完成,否则将失去意义。内核的实时性包涵很多层面的意思,首先是中断响应的实时性,一旦外部中断发生,操作系统必须在足够短的时间内响应中断并做出处理。其次是线程或任务调度的实时性,一旦任务或线程所需的资源或进一步运行的条件准备就绪,必须能够马上得到调度。显然,基于非抢占式调度方式的内核很难满足这些实时性要求;

3、内核架构可扩展性强。物联网操作系统的内核,应该设计成一个框架,这个框架定义了一些接口和规范,只要遵循这些接口和规范,就可以很容易的在操作系统内核上增加新的功能的新的硬件支持。因为物联网的应用环境具备广谱特性,要作系统必须能够扩展以适应新的应用环境。内核应该有一个基于总线或树结构的设备管理机制,可以动态加载设备驱动程序或其它核心模块。同时内核应该具备外部二进制模块或应用程序的动态加载功能,这些应用程序存储在外部介质上,这样就无需修改内核,只需要开发新的应用程序,就可满足特定的行业需求;

4、内核应足够安全和可靠。可靠性就不用说了,物联网应用环境具备自动化程度高、人为干预少的特点,这要求内核必须足够可靠,以支撑长时间的独立运行。安全对物联网来说更加关键,甚至关系到国家命脉。比如一个不安全的内核被应用到国家电网控制当中,一旦被外部侵入,造成的影响将无法估量。为了加强安全性,内核应支持内存保护(VMM等机制)、异常管理等机制,以在必要时隔离错误的代码。另外一个安全策略,就是不开放源代码,或者不开放关键部分的内核源代码。不公开源代码只是一种安全策略,并不代表不能免费适用内核;

5、节能省电,以支持足够的电源续航能力。操作系统内核应该在CPU空闲的时候,降低CPU运行频率,或干脆关闭 CPU。对于周边设备,也应该实时判断其运行状态,一旦进入空闲状态,则切换到省电模式。同时,操作系统内核应最大程度的降低中断发生频率,比如在不影响实时性的情况下,把系统的时钟频率调到最低,以最大可能的节约电源。

物联网操作系外围模块的特点

外围模块指为了适应物联网的应用特点,操作系统应该具备的一些功能特征,比如远程维护和升级等。同时也指为了扩展物联网操作系统内核的功能范围,而开发的一些功能模块,比如文件系统、网络协议栈等。物联网操作系统的外围模块(或外围功能)应该至少具备下列这些:

1、支持操作系统核心、设备驱动程序或应用程序等的远程升级。远程升级是物联网操作系统的最基本特征,这个特性可大大降低维护成本。远程升级完成后,原有的设备配置和数据能够得以继续使用。即使在升级失败的情况下,操作系统也应该能够恢复原有的运行状态。远程升级和维护是支持物联网操作系统大规模部署的主要措施之一;

2、支持常用的文件系统和外部存储。比如支持FAT32/NTFS/DCFS等文件系统,支持硬盘、USB stick、Flash、ROM等常用存储设备。在网络连接中断的情况下,外部存储功能会发挥重要作用。比如可以临时存储采集到的数据,再网络恢复后再上传到数据中心。但文件系统和存储驱动的代码,要与操作系统核心代码有效分离,能够做到非常容易的裁剪;

3、支持远程配置、远程诊断、远程管理等维护功能。这里不仅仅包涵常见的远程操作特性,比如远程修改设备参数、远程查看运行信息等。还应该包涵更深层面的远程操作,比如可以远程查看操作系统内核的状态,远程调试线程或任务,异常时的远程dump内核状态等功能。这些功能不仅仅需要外围应用的支持,更需要内核的天然支持;

4、 支持完善的网络功能。物联网操作系统必须支持完善的TCP/IP协议栈,包括对IPv4和IPv6的同时支持。这个协议栈要具备灵活的伸缩性,以适应裁剪需要。比如可以通过裁剪,使得协议栈只支持IP/UDP等协议功能,以降低代码尺寸。同时也支持丰富的IP协议族,比如Telnet/FTP/IPSec/SCTP等协议,以适用智能终端和高安全可靠的应用场合;

5、对物联网常用的无线通信功能要内置支持。比如支持GPRS/3G/HSPA/4G等公共网络的无线通信功能,同时要支持Zigbee/NFC/RFID等近场通信功能,支持WLAN/Ethernet等桌面网络接口功能。这些不同的协议之间,要能够相互转换,能够把从一种协议获取到的数据报文,转换成为另外一种协议的报文发送出去。除此之外,还应支持短信息的接收和发送、语音通信、视频通信等功能;

6、内置支持XML文件解析功能。物联网时代,不同行业之间,甚至相同行业的不同领域之间,会存在严重的信息共享壁垒。而XML格式的数据共享可以打破这个壁垒,因此XML标准在物联网领域会得到更广泛的应用。物联网操作系统要内置对XML解析的支持,所有操作系统的配置数据,统一用XML格式进行存储。同时也可对行业自行定义的XML格式进行解析,以完成行业转换功能;

7、支持完善的GUI功能。图形用户界面一般应用于物联网的智能终端中,完成用户和设备的交互。GUI应该定义一个完整的框架,以方便图形功能的扩展。同时应该实现常用的用户界面元素,比如文本框、按钮、列表等。另外,GUI模块应该与操作系统核心分离,最好支持二进制的动态加载功能,即操作系统核心根据应用程序需要,动态加载或卸载GUI模块。GUI模块的效率要足够高,从用户输入确认,到具体的动作开始执行之间的时间(可以叫做click-launch时间)要足够短,不能出现用户点击了确定、但任务的执行却等待很长时间的情况;

8、支持从外部存储介质中动态加载应用程序。物联网操作系统应提供一组API,供不同应用程序调用,而且这一组 API应该根据操作系统所加载的外围模块实时变化。比如在加载了GUI模块的情况下,需要提供GUI操作的系统调用,但是在没有GUI模块的情况下,就不应该提供GUI功能调用。同时操作系统、GUI等外围模块、应用程序模块应该二进制分离,操作系统能够动态的从外部存储介质上按需加载应用程序。这样的一种结构,就使得整个操作系统具备强大的扩展能力。操作系统内核和外围模块(GUI、网络等)提供基础支持,而各种各样的行业应用,通过应用程序来实现。最后在软件发布的时候,只发布操作系统内核、所需的外围模块、应用程序模块即可。

物联网操作系统集成开发环境的特点

集成开发环境是构筑行业应用的关键工具,物联网操作系统必须提供方便灵活的开发工具,以开发出适合行业应用的应用程序。开发环境必须足够成熟并得到广泛适用,以降低应用程序的上市时间(GTMT)。集成开发环境必须具备如下特点:

1、 物联网操作系统要提供丰富灵活的API,供程序员调用,这组API应该能够支持多种语言,比如既支持C/C++,也支持Java、Basic等程序设计语言;

2、 最好充分利用已有的集成开发环境。比如可以利用Eclipse、Visual Studio等集成开发环境,这些集成开发工具具备广泛的应用基础,可以在Internet上直接获得良好的技术支持;

3、 除配套的集成开发环境外,还应定义和实现一种紧凑的应用程序格式(类似Windows的PE格式),以适用物联网的特殊需要。通过对集成开发环境进行定制,使得集成开发环境生成的代码,可以遵循这种格式;

4、 要提供一组工具,方便应用程序的开发和调试。比如提供应用程序下载工具、远程调试工具等,支撑整个开发过程。

可以看出,上述物联网操作系统内核、外围模块、应用开发环境等,都是支撑平台,支撑更上一层的行业应用。行业应用才是最终产生生产力的软件,但是物联网操作系统是行业应用得以茁壮生长和长期有效生存的基础,只有具备了强大灵活的物联网操作系统,物联网这棵大树才能结出丰硕的果实。