互联网的快速发展使人们的生活更加便利,传统门户网已经无法满足人们的需求,而对高业务量的互联网服务需求与日俱增。随着计算机存储信息及硬件设备、数据库建设及维护等方面的相对成本逐渐上升,利用新的平台及调度机制以进行高效的数据处理显得尤为重要。近多年来,云计算成为国际上业界学者进行相关研究的热潮,是信息产业较大的一项创新。云计算是基于互联网的一种动态的能够伸缩虚拟化的新型计算模式,为用户提供了包括计算能力、存储能力、交互能力等多种计算资源的服务。云计算不同于传统方式下采用桌面计算资源的模式,其新型的资源管理模式使计算资源成为提供大众服务的一项社会基础设施。随着云计算的不断发展和深入,更多的应用逐步迁移到云计算。不过,云计算在发展过程中也存在着一些非常关键的问题,最突出的莫过于数据的安全性问题,这也是限制云计算发展的首要因素。只有对云计算所存在的众多问题进行全面正确的分析,才能够使其在众多组织、企业中被普遍的应用,将自身的数据资源安心的存放到云计算所提供的服务中以便进行企业的管理。因此,提出一种能够安全可靠的进行数据访问的方案对用户来说至关重要。
1 云计算的基本概念
云计算逐渐的被大众认可,其概念与相关技术也被普遍的提及并得到大量的研究,但是并没有出台世界范围内认可的标准。根据我国云计算网所给出的定义,云计算在分布式计算(Distributed Computing)、并行计算(Parallel Computing)及网格计算(Grid Comouting)的基础上发展而来,是较为新型的一种商业性计算模型。云计算的基本特性有分布式计算、存储特性、较高的扩展性以及良好的管理等。该技术的特征:云计算系统提供服务的实现机制是透明的,不需要用户作具体的了解便可方便的获取所需服务;云计算系统利用软件即数据冗余及分布式存储的方式降低系统的出错率,确保数据可靠;云计算具有海量存储及高效的计算性能而为用户提供更好的服务,具有较高的可用性;云计算系统采用高层次的编程模型方便用户根据自身的数据特点编写满足自身需求的云计算程序;服务多样且具有良好的经济性。
2 基于云计算平台的软件架构
2.1 云计算的软件架构层
通过对现有的关于云计算产品及其系统架构的分析和总结,可以将云计算的架构分为三层,它们分别是核心服务层、服务管理层和用户访问接口层。核心服务层作为架构层的主体,其主要作用是将系统的硬件基础设施、软件运行环境及应用程序整合成面向用户的,具有高可靠性、多样化及适应能力强的应用服务。而服务管理层则主要是对核心服务层的活动进行管理和控制,以确保其始终安全稳定的提供面向用户的服务。用户访问接口层的作用是为用户端与云系统之间提供访问和交流的通道。
2.1.1 核心服务层
一般来说,云计算的核心服务层又可以分为3个子层:基础设施即服务层(IaaS)、平台即服务层(PaaS)和软件即服务层(SaaS)。其中IaaS主要是为用户按需提供实体或虚拟的计算、存储和网络资源等基础设施部署服务。在这个过程中,用户需要向供应商提供相关的配置信息及个人数据。而PaaS是为云计算应用程序部署及其管理提供服务。通过基于该层的软件工具和开发语言,软件开发者可以绕过底层网络、系统和存储的限制,很方便的使用云计算平台进行软件架构。SaaS是一种基于云计算基础平台所开发的应用程序。对于企业来说,通过该层可以建立自己的电子邮件服务系统。而对于普通用户来说,SaaS可以实现对云系统应用程序的泛在访问。
2.1.2 服务管理层
服务管理层主要是面向核心服务层,它能为核心服务层的安全稳定及可靠运行提供保障。其服务内容包括服务质量保障和安全管理等。由于云计算系统结构庞大、服务繁杂,用户很难直接找到自己所需的资源。因此,通过服务质量保障协议,云计算服务提供商就能根据用户的具体需求,提供相应的服务,保障其面向每一个用户的服务质量。而用户在获取云数据和云服务时,确保信息交流的安全性是非常重要的。通过安全管理协议,可以对云系统采取数据隔离、隐私保护和访问控制等安全保护措施,确保核心服务层的安全稳定运行。
2.1.3 用户访问接口层
用户访问接口层能够实现用户对云系统程序的泛在访问。其表现形式一般包括命令行、Web服务和Web门户等。其中命令行和Web服务作为一种直接的访问云系统的工具,能够实现多种服务方式的组合。而Web门户则是将用户端与云系统连接起来的通道和平台。通过它,用户可以将本地的应用程序转移到云系统中。这样用户只要能连接到云系统服务器,就可以随时随地的访问其本地的数据和程序。这显然可以极大的释放本地服务器的压力,提高用户的办公效率。
2.2 云计算软件架构关键技术
云计算是以数据为中心的一种数据密集型的超级计算方式。在数据的存储、管理及编程模式方面都采用特有的多种先进技术,其中主要的关键性技术包括海量数据存储与处理、编程模型及虚拟化技术。
2.2.1 海量数据存储与处理技术
云计算系统以数据冗余和分布式方式进行大数据集的分析、处理以保证高可用性和经济性。为及时满足海量用户的不同需求,并行提供各种服务,云计算所采用的数据存储技术必然具备高传输率、高吞吐率的能力。未来的发展方向会集中于高效的数据定位及超大规模的数据存储、加密、安全可靠性和持续提高I/O速率等方面。
2.2.2 编程模型
为了让用户可以利用编程模型根据自身需要编写简单的程序而更加轻松的获得云计算带来的服务,所采用的编程模型须非常简单。同时要保证后台的并行执行及任务调度对用户及编程人员的透明化。改进现有的编程模式以便程序员可以方便的进行紧耦合程序的编写,实现运行过程中的高效调度和任务的执行,是将来MapReduce发展的主要方向。
2.2.3 虚拟化技术
虚拟化的实质是将整合之后的资源用和物理量没有关联的方式进行调用,是一种由物理资源转变为服务形态的过程。虚拟化的应用使硬件的容量增大同时使软件的管理维护过程得到简化,提高了资源的灵活性和使用率,实现了物理资源的复用,是未来实现资源的自动协调和配置的基础。虚拟化技术把操作系统和物理硬件相隔离,允许多个操作系统不相同的虚拟机在一个
物理机上独立运行。不管所采用的物理硬件是否相同,操作系统均把它们看作是一致的标准化硬件。
2.3 云计算的软件架构应用
软件系统框架有架构元件、联结器及任务流三个元素,为提高软件的安全可靠性及扩展能力需要对软件架构进行设计。三层架构设计是软件框架设计的一种重要结构,它将系统在应用逻辑上分成数据服务层、业务逻辑层及表示层。表示层主要用于用户与系统的交互,通常指的是系统的操作界面。业务逻辑层的功能是数据的格式及其是否有效进行验证,用户的合法性验证等以保证系统能够健壮的运行。数据服务层专用于数据库的交互并执行数据的修改、增删、显示等操作。目前的软件系统大都采用基于C/S技术的三层架构,数据的存储一般采用DBMS或者XML文档的方式易使服务器发生不可修复的错误后产生数据丢失的可能。
软件的设计开发随着云计算技术的迅猛发展而面临挑战,三层架构模式能够完全迁移至云计算中的SaaS服务模式中。不过SaaS服务模式也存在一些较为突出的问题,包括与云计算服务供应商之间的信任,以及软件对云计算服务过于依赖的问题。此外,在云计算服务正常时,网络状况也会对软件的使用产生影响。基于云计算技术目前的发展情况,为降低软件对云计算和网络性能的依赖程度,下面提出一种较为可行的基于云计算平台的软件架构模式
与传统的三层架构模式相比,基于云计算平台的软件架构在表示层及业务逻辑层并不发生变化,只是在数据服务层提供包括本地数据及云数据的两种数据服务。本地数据服务不需安装DBMS软件而只采用XML文档存储数据,从而使服务器的性能得到提升。不论是选择本地服务器的XML文档或是云计算服务中的数据服务,软件均能够一次读取数据到内存中,在完成数据处理以后再把数据处理结果传回数据服务并长久储存,有效的提高了系统的工作效率。
基于云计算平台的软件架构新增了同步服务层,它不仅使本地服务器XML文档与云计算服务中的数据实现同步,也能够监测数据服务的运行状态。在软件系统将数据信息一次读入内存之后,用户在内存中进行各种数据操作。数据同步服务可以利用时间控件在用户不使用软件系统的时间终止业务逻辑层的相关服务,同时把放入内存的数据更新到本地服务器的XML文档及云计算服务中,完成同步操作以后就可以重新进行业务逻辑层的服务,提高了网络宽带的使用率。同步服务监测软件可以保证在发现数据服务问题后立刻启动新的数据服务,使其不再依赖云计算。
在基于云计算平台的软件架构中,系统中的数据同时备份在本地服务器的XML文档及云计算服务中的数据服务中。即使出现云计算服务障碍,软件依旧保存相对应的数据备份。在本地服务器发生故障而导致数据的丢失时,云计算服务保留数据备份,从而使软件系统中的数据具有双重备份而得到保障。此外,这种软件架构模式具有不产生孤岛信息、不需涉及数据迁移等优点。
从软件架构的数据流图中能够看到本地数据及云数据是通过数据缓存实现同步的。在用户需要获取系统中的数据信息时,会把被访问的数据表存入到缓存区域以方便用户能够进行再次访问。用户进行数据的再次访问时不需反复的读取数据库而只是从内存中对系统的数据进行操作。这样就在很大程度上缩短了系统响应的时间,从而有效的提升了运行的效率。
3 结束语
上述基于云计算平台的软件架构模型提高了云计算条件下数据的安全可靠性。随着云计算的广泛应用,为提高系统的运行效率,系统架构的升级有待进一步的研究。
参考文献:
[1]李刚健.基于虚拟化技术的云计算平台架构研究[J].吉林建筑工程学院学报,2011(01).
[2]程国江.云计算简介及应用前景[J].中国新技术新产品,2011(08).
[3]李晓辉.云计算技术研究与应用综述[J].电子测量技术,2011(07).
[4]韩金华.云计算综述[J].企业技术开发,2010(15).
作者简介:邱海斌(1980.10-),男,辽宁人,硕士,讲师,研究方向:软件架构、软件设计。