应用程序范文

时间:2023-03-11 12:21:12

应用程序

应用程序范文第1篇

关键词: .NET; J2EE; 系统集成; Webservice; ESB

中图分类号:TP391 文献标志码:A 文章编号:1006-8228(2013)05-37-02

Integration of .NET and J2EE application

Liu Zhiqing1, Yang Shuo2, Chen Jinyuan2

(1. Hangzhou Dianzi University, Hangzhou, Zhejiang 310018, China; 2. Zhejiang Topcheer Information Technology Co.,Ltd)

Abstract: The key problems in integration of .NET application and J2EE application in enterprise have been analyzed. The shortcomings of WebService integreation are discussed. On this basis the integrated solution is introduced based on ESB. The integrated solution can guarantee reliable delivery of messages, provide a flexible message routing, enhance manageability of services, and supply protocol conversion functions.

Key words: .NET; J2EE; system integration; WebService; ESB

0 引言

随着时代的发展,企业的信息化程度越来越高,信息化在给企业带来便利和机遇的同时,也给企业带来了新的困惑和挑战。由于企业中的信息系统往往是由不同的公司、团队和技术实施的,这些系统缺少相应的接口标准和规范,各系统只能独立运行,成为了一个个的信息孤岛(如图1所示)。如何用更基于标准的和互操作性更好的方式来实现企业应用程序的集成,是我们重点要探讨的。

[CRM系统] [数据库] [ERP系统] [数据库] [库存管理

系统] [数据库]

图1 企业中的各类信息系统

1 J2EE与.NET平台

在企业应用中,J2EE技术的应用比较广泛。随着.NET框架的逐步推广,使用.NET开发的企业应用也在增长。目前,这两个平台在企业级应用中占据着重要地位,两个平台之间的互操作存在大量的现实需求[1]。

在企业级应用中J2EE与.NET一般均采用三层架构:表示层、业务层和数据层,不同平台采用不同组件来实现不同层的功能,.NET与J2EE各层组件的比较如表1所示。

表1 J2EE与.NET平台各层组件的比较

[服务\&J2EE\&.NET\&表示层\&客户GUI\&AWT/SWING\&Windows Forms\&Web GUI\&JSP\&\&Web Scripting\&Servlet,Filter\&ISAPI,HttpHandler,HttpModule\&业务层\&业务逻辑组件\&EJB\&.NET服务组件类或COM+\&数据层\&数据访问\&JDBC\&\&消息\&JMS\&MSMQ\&其他\&目录访问\&JNDI\&ADSI\&远程调用\&RMI-IIOP\&.NET Remoting\&事务处理\&JTA\&COM+/DTC\&虚拟机\&JRE\&CLR\&开发语言\&Java\&C#,C++,,J#\&]

J2EE应用程序与.NET应用程序的集成,主要有以下三种集成方式:①表示层的集成;②业务层的集成;③数据层的集成。

2 集成的关键问题

解决不同平台功能单元的通信或传输问题,首先要去除平台之间的差异。在互操作的过程中最重要的差异是数据类型的差异,构件之间的交互是通过特定的通信协议来传输特定的数据,两个平台的数据类型可能是不一致的,在数据传输时所使用的通信协议的不一致也相当于数据类型的不一致。因此,集成的关键是要解决数据格式的转换问题。

集成时的数据交换,需要主要解决以下三个问题:①基本数据类型的映射;②如何提供一方不具备的数据类型;③如何转换复杂的数据类型。

3 目前系统集成的解决方案

目前.NET项目与J2EE项目集成主要采用Web服务集成方案[2]。Web服务的整个技术体系都是基于XML的。Web服务的三个角色之间的通信所传输的信息流都是XML格式的。这些信息流的解释需要更高层次的协议规范,包括WSDL(Web服务描述语言)、SOAP(简单对象访问协议)和UDDI(统一描述、发现和集成)共同组成WebService的关键技术体系。

SOAP(Simple Object Access Protocol):在通信的最低级别,系统需要使用同一语言。特别是作为通信双方的应用程序需要遵守同一套通信规则:如何标识不同的数据类型,以及如何标识命令(即:需要对数据进行何种操作)。另外,在必要的时候应用程序还需要对该语言适当的扩展。简单对象访问协议(SOAP)是XML的实施工具,它提供了一套公共规则集,该规则集说明了如何标识并扩展数据和命令。

WSDL(WebService描述语言):双方应用程序在得到了如何表示数据类型和命令的规则后,需要对所接受的特定数据和命令进行有效的描述,仅仅说明已接收到某种类型的数据是不够的,还应当说明对接收到的数据应该进行哪些操作。WebService描述语言(WSDL)是一种XML语法,开发人员和开发工具可使用它来表述Web服务的具体功能。

UDDI协议:一旦部署了Web服务,潜在用户就必须能够发现它在什么地方,以及如何工作。统一描述、发现和集成(UDDI)是一种行业内的规范,它定义了一项基于SOAP的协议,用于更新和查询Web服务信息库。UDDI可以并实现Web服务,最大限度地访问站点并获得最终的成功。

Web服务已经被广泛作为一种标准服务,它提供了一个通用的、跨平台的服务协议。J2EE和.NET框架都支持标准的Web服务,通过把应用程序的内部功能暴露为Web服务,J2EE与.NET程序就可以实现互操作。Web服务的集成方案如图2所示。

[应用A\&WebService访问接口\&][应用B\&WebService访问接口\&] [WebService调用][WebService访问接口\&应用C\&] [WebService调用][WebService访问接口\&应用D\&] [WebService调用] [WebService调用]

图2 Web服务集成方案

WebService使用XML语言,这样就提供了平台和语言无关性。WebService提供了标准的访问接口,使得Web服务之间的访问和调用标准化,易于集成。WebService使用标准的互联网协议HTTP协议进行通信,可以轻松的穿越防火墙。

采用WebService技术进行应用集成,就是对应用系统做简单的连接通信,它适用于整合应用系统不多的情况,系统柔性差,无法保证可靠性,可管理性差,并且不能应用到较复杂的应用系统整合。Web服务集成方案存在诸多不足,因此,提出了基于ESB的.NET应用程序与J2EE应用程序的集成方案。

4 基于ESB的.NET应用程序与J2EE应用程序的集成方案

企业服务总线ESB(Enterprise Service Bus)是SOA架构的实现之一,是目前实现服务集成最有效的手段[3]。ESB采用总线式架构,作为中枢神经枢纽,对所有需集成的服务和应用实行集中管理,负责消息的转换、路由、映射。使需要集成的异构系统可以相互通信,同时保持它们之间的松耦合关系,基于ESB的集成方案如图3所示。

[Enterprise Service Bus] [J2EE应

用程序][.NET应

用程序][.NET应

用程序][.NET应

用程序][J2EE应

用程序][J2EE应

用程序] [SOAP/HTTP] [JMS][SOAP/HTTP][SOAP/HTTP][JMS] [SOAP/HTTP]

图3 基于ESB的集成方案

如图3所示,J2EE应用程序通过JMS消息或SOAP协议与ESB进行通信;.NET程序主要通过SOAP与ESB进行通信,在ESB内部可以实现消息的格式转化以及服务的管理。

使用企业服务总线实现应用集成,可以带来以下优势。

⑴ 可靠消息传递:在企业服务集成中,涉及到多个服务使用者与服务提供者。企业服务总线负责实现参与者不同消息格式之间的适配转换。同时提供可靠性传输机制,保证消息安全、可靠传输。

⑵ 灵活的消息路由:企业服务总线负责服务使用者与服务提供者间的消息转发,并提供多种路由模式,可以满足复杂的集成交互流程。

⑶ 服务的可管理性:ESB平台中存储了接入ESB系统的所有服务描述信息,这样就可以做到服务的部署/卸载,服务的查询,服务的信息同步,服务的生命周期管理,还有服务质量管理,服务的安全可靠性管理等等。

⑷ 协议的转换:ESB可以采用不同的通信协议与不同应用进行交互,这样便可以使不同的平台应用很方便地接入ESB中。

5 结束语

本文提出了一种.NET应用程序与J2EE应用程序的集成方案,该方案采用了企业服务总线ESB方式来集成运行在异构环境中的.NET应用程序与J2EE应用程序,是易于实现和有效的。相对于传统的WebService集成方案,该方案具有保证消息可靠传递、提供灵活的消息路由、协议的转化,以及服务的可管理性等诸多优点,使得集成的系统能够稳定、高效地运行。

该方案还存在一些问题有待我们进一步去解决,例如:如何提高消息转换的效率,如何实现高效的动态路由等。

参考文献:

[1] 雷军程. .NET与J2EE平台互用性研究[D].中南大学,2008.

[2] 苗青,陈钢.基于WebService的高校应用集成[J].计算机技术与发展,

2008.18(3).

[3] 王铭.基于ESB的企业应用集成框架的研究与应用[D].上海交通大

应用程序范文第2篇

这正是已经为iPhone、iPod Touch和iPad开发了iOS应用程序的许多开发人员现在所希望的――通过Mac应用程序商店来销售自己的程序,以获得丰厚的经济回报。这些经过改写的程序可以在Mac笔记本电脑和台式机上运行,笔记软件Evernote的开发人员表示,自Mac应用程序商店开张以来,他们发现使用其应用程序的新用户数量大幅增长。由于Evernote注册免费,这种变化并没有直接影响该公司的利润,但显而易见,那些新用户中有一部分会订购Evernote的高级收费服务。

苹果并不是第一个将应用程序商店模式搬到笔记本电脑和台式机上的厂商,英特尔早在2010年年初就推出了AppUp商店,主要面向在英特尔凌动处理器上运行的Windows上网本,但它也可用于运行Windows 7或XP(但不是Vista)系统的台式机和笔记本电脑。

最近,谷歌也推出了Chrome网络商店,拥有诸多面向Chrome浏览器的应用程序、主题和扩展件;电脑制造商宏也宣布了Acer Alive软件,除了多媒体内容外,用户还可以在这个平台上查找和购买Windows软件,这款软件将预先安装在宏电脑上,但还没有出现在美国市场。

是什么让这些厂商新开设的应用程序商店有别于传统的软件下载网站?首先,虽然新的应用程序商店的确提供了一批第三方软件,但许多是由知名硬件或软件厂商而不是独立软件开发商开设的。因此,虽然一些PC应用程序商店提供功能完备的应用程序,但现有的产品大多数是执行专门任务的迷你应用程序。

此外,许多应用程序商店本身就是可以在用户电脑上安装和运行的应用程序,拥有漂亮的外观,用户只需要注册并选择支付方式,就能购买、下载和安装应用程序。因此,访问软件下载网站让人觉得有点像是逛图书馆,而打开应用程序商店就如同逛精品店。

IDC的分析师AI Hilwa说:“这是个成熟的想法。”用户会看到更多品牌的应用程序商店销售可以在笔记本电脑和台式机上运行的软件。

源于移动计算

尽管Mac应用程序商店中的Evernote程序取得了成功,但其他服务于Windows用户的应用程序商店的下载量和销售量目前还是太少,无法确定应用程序商店会不会成为软件分销领域的重要角色。

NPD Group的分析师Stephen Baker表示,他认为应用程序商店不会成为主导性的软件销售渠道。他指出,应用程序商店最初的吸引力和成功与移动计算密切相关,使用智能手机访问网站查找和安装软件会很麻烦,这有几个原因:移动互联网连接的速度受到限制,智能手机的屏幕很小,而且许多手机没有实体键盘。而应用程序商店为智能手机用户搜寻、选购、下载和安装软件提供了比在网站上搜索更方便的途径。

电脑用户则没有这些障碍,Baker认为,应用程序商店想作为面向笔记本电脑和台式机市场的软件销售方式而流行起来会很难。他说:“面向电脑的应用程序商店在网上直接搜索产品方面肯定具有明显的优势,但由于电脑提供了比平板电脑或智能手机更开放的生态系统,所以绕过应用程序商店、直接下载应用程序轻而易举。”

此外,面向智能手机和平板电脑的许多应用程序是专门为充分利用移动设备而设计的,比如地图或增强现实软件。Baker说:“应用程序商店之所以获得了成功,是因为它们提供的产品让消费者可以更容易地在智能手机上完成具体的任务。”

这样一来,笔记本电脑或台式机的用户从应用程序商店下载和购买软件还有什么意义呢?

电脑用户的好处

AllMyApps的首席执行官Thibauld Favre认为,他能回答这个问题。他说:“查找和管理Windows上的应用程序仍是让最终用户觉得最沮丧的事情之一。”AllMyApps目前处于测试阶段,它以应用程序商店的方式来提供Windows软件。

Favre表示,传统的软件下载网站侧重于交易――以支付信息换取下载链接和许可证密钥。他说:“应用程序商店的范围广泛得多:这个完整的环境让人们易于查找、购买、安装、更新和重新安装应用程序,无论应用程序是付费的还是免费的。对最终用户来说如此诱人的正是服务级别。”

应用程序商店还提供软件自动更新,如果你通过应用程序商店下载或购买的任何程序有所更新,应用程序商店就会通知你并提供一键更新服务;此外,许多应用程序还会自动检查网上有没有更新。

面向电脑的应用程序商店的另一个卖点是:它让客户对自己购买的软件有信任感和安全感,知名公司的应用程序商店更是如此。IDC公司的Hilwa说:“你不知道该不该信任开发安全或备份软件的小厂商,让平台所有者或值得信任的第三方提供软件并进行验证,可以打消这一顾虑。”

当然,这假设电脑应用程序商店都仿照苹果的模式,即出现在商店中的所有应用程序都必须经过审批,满足某些标准才可通过。在现实中,不同应用程序商店的政策各不相同。比如说,英特尔的AppUp先测试应用程序,评定它们是否适合相关要求,然后提供给用户;谷歌则表示自己“没有义务监督产品或产品的内容”,但保留了审查产品及从Chrome网络商店清除产品的权利――如果发现某应用程序有缺陷、是恶意程序,或者违反或侵犯了别人的知识产权,就会被清除。

应用程序开发人员Tacconi补充说,应用程序还必须适合用户的硬件。他表示,商店应该保证应用程序可以在用户的笔记本电脑或台式机上运行。Tacconi说:“电脑有多种多样的配置,使用不同的处理器、显卡,内存大小也各有不同。商店能否确保应用程序符合用户电脑的最低要求,这点很重要。”

从传统商店到在线商店

应用程序商店的经营模式是“三方共赢”,IDC公司的Hilwa说,英特尔、苹果和宏等硬件厂商能赢,是因为开设的应用程序商店可以推广和培育其平台和品牌;开发人员能赢,是因为有了一个宣传、销售和赚钱的地方;用户能赢,是因为他们有了可以信任的一站式商店。

不过,批评这种经营模式的人士担心,要求应用程序符合某些标准才能进入应用程序商店,这意味着商店经营者对用户能看到哪些应用程序拥有太大的话语权。有人甚至担心,“未通过审批”的应用程序最终可能会完全消失。

Hilwa表示,批评人士不无道理。他说:“这类商店的规则大多数涉及隐私、安全及其他保护措施。但是毫无疑问,对于商店里应出现哪些面向自身平台的工具和实用程序、哪些不应出现,平台厂商多少带有偏见。这对开发人员来说是把双刃剑。”

但NPD Group的Bkaer认为这不是问题。他说:“电脑操作系统不是一个封闭系统,消费者总有机会购买商店里没有的程序。”

AllMyApps的Favre则认为,与其说应用程序商店是屏障,不如说是座桥梁。“应用程序商店是开发人员与消费者之间的‘缺失环节’,有望促进面向电脑的迷你应用程序的分销。”他说:“有12亿部电脑在运行Windows,这对应用程序开发人员来说是个新的商机。”

他将应用程序销售与音乐销售做了比较。他说:“人们最初购买音乐CD,后来在Napster上下载MP3,最后在iTunes上购买音乐。软件同样如此:最初购买盒装软件,然后下载安装文件,最后购买应用程序。预计几年后,传统的下载模式会销声匿迹。”

应用程序开发人员和正在开设或准备开设应用程序商店的公司显然认定,面向所有电脑设备的软件有很大一部分将通过应用程序商店来销售。Hilwa说:“随着时间的推移,应用程序商店会成为大多数软件的分销渠道。”

连持怀疑态度的Baker也认为,未来应用程序商店模式会占有一席之地。但他同时指出:“应用程序商店只是消费者查找和购买电脑应用程序的多个途径中的一个,而不会像在平板电脑或手机上那样成为首要途径。”

以应用程序之名

“app”与“application”之间有什么区别?

不久前,“app”主要是用做“application”的俚语,而“小应用程序”和“窗口组件”等术语用于执行专门功能的各种类型的迷你应用程序。不过,许多消费者把这类小程序看做“apps”,无论它们是用在移动设备上,还是用在电脑上;“applications”则是较庞大、较复杂的程序,比如文字处理系统或音乐编辑软件。

开发Pocket Yoga应用程序的Sergio Tacconi表示,人们怎么叫应用程序并不重要。从开发的角度来看,它们没什么区别,都是在电脑上运行的软件――无论是台式机、笔记本电脑还是手机,它们都是电脑设备。在线商店使用“app”和“App Store”术语“充其量只是苹果的营销手法”。

电脑应用程序商店荟萃

Acer Alive:需要预先安装到宏电脑,不但能提供应用程序,还能提供包括音乐和电影在内的娱乐媒体。Alive目前在欧洲测试,计划今年晚些时候向美国推出。

AllMyApps:尚在测试阶段,外观类似iTunes,提供众多Windows软件工具。其应用程序大多是免费的,但AllMyApps计划另外销售收费程序。

Chrome网络商店:谷歌的应用程序商店,不但提供免费和收费的应用程序,还提供Chrome浏览器扩展件和主题。

英特尔AppUp:面向使用英特尔凌动处理器的Windows上网本,与运行Windows XP或Windows 7的笔记本电脑和台式机兼容,可以下载和安装到电脑上,提供免费或收费的迷你程序。

应用程序范文第3篇

论文摘要:正确配置安全设置,以保护您的ASP应用程序不被未授权的用户访问和篡改。该文提供了多种维护ASP应用程序的方法。

ASP是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式Web服务器应用程序。ASP使用的ActiveX技术基于开放设计环境,用户可以自己定义和制作组件加入其中,使自己的动态网页几乎具有无限的扩充能力。ASP还可利用ADO方便快捷地访问数据库,从而使得开发基于WWW的应用系统成为可能。但是,千万不要轻视正确配置安全设置的重要性。如果不正确配置安全设置,不但会使您的ASP应用程序遭受不必要的篡改,而且会妨碍正当用户访问您的asp文件。Web服务器提供了各种方法,保护您的ASP应用程序不被未授权的用户访问和篡改。

1NTFS权限

您可以通过单独的文件和目录应用NTFS访问权限来保护ASP应用程序文件。NTFS权限是Web服务器安全性的基础,它定义了一个或一组用户访问文件和目录的不同级别。当拥有WindowsNT有效帐号的用户试图访问一个有权限限制的文件时,计算机将检查文件的访问控制表。该表定义了不同用户和用户组所被赋予的权限。如果用户的帐号具有打开文件的权限,计算机则允许该用户访问文件。

2维护Globalasa的安全

为了充分保护ASP应用程序,一定要在应用程序的Globalasa文件上为适当的用户或用户组设置NTFS文件权限。如果Globalasa包含向浏览器返回信息的命令而您没有保护Globalasa文件,则信息将被返回给浏览器,即便应用程序的其他文件被保护。而且,一定要对应用程序的文件应用统一的NTFS权限。

3Web服务器权限

可以通过配置的Web服务器的权限来限制所有用户查看、运行和操作的ASP页的方式。不同于NTFS权限提供的控制特定用户对应用程序文件和目录的访问方式,Web服务器权限应用于所有用户,并且不区分用户帐号的类型。对于要运行您的ASP应用程序的用户,在设置Web服务器权限时,必须遵循下列原则:

对包含asp文件的虚拟目录允许“读”或“脚本”权限;对asp文件和其他包含脚本的文件所在的虚目录允许“读”或“脚本”权限;对包含asp文件和其他需要“执行”权限才能运行的文件的虚目录允许“读”和“执行”权限。

4脚本映射文件

应用程序的脚本映射保证了Web服务器不会意外地下载asp文件的源代码。例如,即使您为包含了某个asp文件的目录设置了“读”权限,只要该asp文件隶属于某个脚本映射应用程序,那么您的Web服务器就不会将该文件的源代码返回给用户。

5Cookie安全性

ASP使用SessionIDcookie跟踪应用程序访问或会话期间特定的Web浏览器的信息。这就是说,带有相应的cookie的HTTP请求被认为是来自同一Web浏览器。Web服务器可以使用SessionIDcookies配置带有用户特定会话信息的ASP应用程序。

5.1SessionID能否被黑客猜中

为了防止计算机黑客猜中SessionIDcookie并获得对合法用户的会话变量的访问,Web服务器为每个SessionID指派一个随机生成号码。

每当用户的Web浏览器返回一个SessionIDcookie时,服务器取出SessionID和被赋予的数字,接着检查是否与存储在服务器上的生成号码一致。若两个号码一致,将允许用户访问会话变量。这一技术的有效性在于被赋予的数字的长度(64位),此长度使计算机黑客猜中SessionID从而窃取用户的活动会话的可能性几乎为0。

5.2加密重要的SessionIDCookie

截获了用户sessionIDcookie的计算机黑客可以使用此cookie假冒该用户。如果ASP应用程序包含私人信息,信用卡或银行帐户号码,拥有窃取的cookie的计算机黑客就可以在应用程序中开始一个活动会话并获取这些信息。您可以通过对您的Web服务器和用户的浏览器间的通讯链路加密来防止SessionIDcookie被截获。6使用身份验证机制保护被限制的ASP内容

您可以要求每个试图访问被限制的ASP内容的用户必须要有有效的WindowsNT帐号的用户名和密码。每当用户试图访问被限制的内容时,Web服务器将进行身份验证,即确认用户身份,以检查用户是否拥有有效的WindowsNT帐号。Web服务器支持以下几种身份验证方式:

6.1基本身份验证提示用户输入用户名和密码

WindowsNT请求/响应式身份验证从用户的Web浏览器通过加密方式获取用户身份信息。然而,Web服务器仅当禁止匿名访问或WindowsNT文件系统的权限限制匿名访问时才验证用户身份。

6.2保护元数据库

访问元数据库的ASP脚本需要Web服务器所运行的计算机的管理员权限。在从远程计算机上运行这些脚本时,须经已通过身份验证的连接,如使用WindowsNT请求/响应验证方式进行连接。应该为管理级asp文件创建一个服务器或目录并将其目录安全验证方式设置为WindowsNT请求/响应式身份验证。目前,仅MicrosoftInternetExplorerversion20或更高版本支持WindowsNT请求/响应式身份验证。

7使用SSL维护应用程序的安全

SSL协议作为Web服务器安全特性,提供了一种安全的虚拟透明方式来建立与用户的加密通讯连接。SSL保证了Web内容的验证,并能可靠地确认访问被限制的Web站点的用户的身份。

7.1通过SSL可以被限制的程序

(1)通过SSL,您可以要求试图访问被限制的ASP应用程序的用户与您的服务器建立一个加密连接;以防用户与应用程序间交换的重要信息被截取。

7.2维护包含文件的安全

如果您从位于没有保护的虚拟根目录中的asp文件中包含了位于启用了SSL的目录中的文件,则SSL将不被应用于被包含文件。因此,为了保证应用SSL,应确保包含及被包含的文件都位于启用了SSL的目录中。

7.3客户资格认证

控制对您的ASP应用程序访问的一种十分安全的方法是要求用户使用客户资格登录。客户资格是包含用户身份信息的数字身份证。用户通常从委托的第三方组织获得客户资格,第三方组织在发放资格证之前确认用户的身份信息。每当用户试图登录到需要资格验证的应用程序时,用户的Web浏览器会自动向服务器发送用户资格。如果Web服务器的SSL资格映射特性配置正确,那么服务器就可以在许可用户对ASP应用程序访问之前对其身份进行确认。

8创建事务性脚本

应用程序范文第4篇

在Windows 8之前,应用程序方面的情况仍然秘而不宣。我们对于Windows商店到时会有什么样的应用程序所知甚少。

我们只晓得这一点:许多大牌软件开发商在为这个新界面作准备,但会根据Windows 8的交付日期:10月26日,适时信息。无论规模大小,无论关注移动设备还是台式机,其他软件开发商在采取观望态度。比如说,赛门铁克表示其下一个诺顿反病毒软件包到时不会有面向Windows 8版本的“应用程序”,但是会推出可在Windows 8上桌面模式下运行的软件。

不管怎样,面向新Windows 8界面的应用程序将只可以通过Windows商店来下载。一旦买下来,就能够将某个应用程序安装在最多五个Windows 8设备上(如平板电脑和台式机)。这后一点也许会是Windows 8的秘密武器。举例来说,对于拥有运行Windows 8的多款设备的那些人而言,“购买一次,就可以安装在多个设备上”这个概念颇有吸引力。此外,这意味着你在理论上只要学会一款应用软件,就可以在平板电脑、笔记本电脑或台式机上使用同一款软件。

借助Smartglass玩游戏

Smartglass是一款Windows 8应用程序——可以从微软商店免费下载,它让你能够把PC连接至Xbox 360。你可以管理Xbox 360的所有内容,在高清电视上显示内容,更改设置,并运行游戏。可以通过该控制台,把视频转移到Xbox 360、查看额外内容,甚至浏览互联网。Smartglass还让你可以把平板电脑或笔记本电脑用作游戏配件。大多数平板电脑都有方向感应器之类的传感器,那样可以由平板电脑控制游戏,辅以视觉线索。微软为成为微软合作伙伴的广大开发者提供了一款免费的软件开发工具包(SDK),所以说视频和游戏可能仅仅开了个头。

Netflix

这项广受欢迎的流媒体服务在Windows 8中改头换面,充分利用了Windows 8的分屏显示Snap View功能。该应用程序还支持新操作系统的“Semantic Zoom”(语义缩放)功能(见下图),以便只要放大或缩小页面,就可以在内容缩略图之间快速浏览。

Box

Windows 8版Box应用程序旨在简化将文件和文件夹作为链接来共享的操作。它充分利用了Windows 8的共享和搜索功能;有活动平铺窗格,那样你就能在开始屏幕上看到文件的最新信息;还支持语义缩放捏拉缩放(pinch-and-zoom),便于浏览庞大的文件目录。

CyberLink PowerDirector

应用程序范文第5篇

资源管理器(explorer.exe)在Windows系统中担任Shell(外壳)一职,他每天监视着主人(电脑用户)的一举一动,对主人发出的各种指令做出解释,然后通知操作系统来完成操作。这天,资源管理器正想打个盹,忽然发现主人用鼠标双击了一个名为FirstVC.exe的程序(本文最后提供了这一程序的创建过程,并在博墅.cn上提供这一程序及完整源代码的查询下载),他知道自己又有得忙了。

1Windows通过Shell调用程序

资源管理器首先调用CreateProcess函数激活FirstVC.exe,为它生成一个进程,并为这一进程划出一块专门的活动场地(一个4GB地址空间)。接着通过加载器把FirstVC.exe所需要的程序代码、数据、动态链接函数库(DLL)等程序运行必备“物资”都装载到这个专用空间中。注意,进程只是一个活动空间,系统还需要为这个进程创建一个主线程,才能被CPU调用。

2调用入口函数WinMain

万事俱备,接着系统通过启动代码开始调用FirstVC.exe的WinMain(_tWinMain)函数。各位注意了,这个WinMain可是所有普通Windows程序的门户(入口函数),它类似于C/C++程序中的Main函数。

3注册窗口类

WinMain做的第一件事是找到Windows:Windows先生,我是FirstVC.exe,要在您这登记一下。Windows给了他一张表格,FirstVC.exe开始认真填写起来:

ATOM MyRegisterClass(HINSTANCE hInstance)

{ //通过填写WNDCLASSEX结构,给定程序窗口的大小、菜单、图标,关联调用的过程函数等等。

...... }

4创建窗口实例

Windows登记完这些信息,马上就调用CreateWindow函数为FirstVC.exe创建了一个临时档案,接着又通过ShowWindow函数显示出FirstVC.exe主窗口。

BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)

{

hWnd = CreateWindow(...);

ShowWindow(hWnd, nCmdShow);

UpdateWindow(hWnd);

}

5创建窗口消息循环

FirstVC.exe看到自己的主窗口终于显示在桌面上,激动得不知做什么好了。见多不怪的Windows慢条斯理地说:小伙子,我已经给你配了一个程序专用邮箱,别忘了收信哦。FirstVC.exe赶紧又雇了两个函数日夜巡视邮箱,这就是所谓的“消息循环”:

while (GetMessage(&msg, NULL, 0, 0))

{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

FirstVC.exe是个新手,所以工作起来兢兢业业,认真对待每一条收到的消息,有的是电脑主人(用户)通过键盘发送的,有的是按鼠标发送的,还有的是系统内部(如定时器)发送来的。它把这些消息分门别类传给后台WindowProc进行处理。

6窗口过程函数的实现

WindowProc每收到一条消息,就会与自己预先定义的消息类型进行比较。比如,电脑主人用鼠标调整主窗口大小的时候,发出的是WM_SIZE消息,就把这一消息发到“case WM_SIZE:”分支中处理;如果电脑主人在窗口内写写画画,则发出的是WM_PAINT消息,发到“case WM_PAINT:”分支中处理。一般来说,我们程序员要做的事情,就是在这个窗口过程中处理来自用户、系统发出的各种消息而已。

7退出应用程序

FirstVC.exe正忙得不亦乐乎,电脑主人突然单击窗口上的关闭按钮,一个WM-QUIT消息随后而至。FirstVC.exe极不情愿地做了一些后续处理,依依不舍地关掉窗口休息去了。

Just Do It!

创建你的第一个Windows程序

启动Visual Studio 2005,单击“FileNewProject”(文件新建项目),在打开的新建项目窗口左侧,展开“Visual C++”,点选其下的“Win32”,再在右侧选择“Win32 Project(Win32项目)”,接着在下面的Name(名称)、Location(位置)中为项目取一个名称以及保存位置,比如取名为FirstVC,保存到“E:\CFan\FirstVC”下。单击OK,将打开程序创建向导,单击Next(下一步),接下来对应用程序进行简单设置,这里选择Application type(应用程序类型)为Windows application(Windows应用程序),单击Finish(完成),一个程序框架就完成了,它已经包含了上面我们说到的所有内容,你只需要在WindowProc()中添加你自己的处理代码即可。最后点击“BuildBuild FirstVC”(创建创建FirstVC,FirstVC会随着你自定义的程序名称而改变),再按F5键运行,就可以看到你创建的第一个Windows程序了。

应用程序范文第6篇

计算机业界对基准测试的迷恋几乎到了无以复加的地步。许多项目通常会分配相当大一部分的时间用于对厂商的软硬件(应用服务器、JDK和IDE)来一次“选美大赛”

由于目前并行化硬件数量激增,基准测试再次成了热门话题。本文会探讨如何评测这种硬件的实现效果有多好。这个过程困难重重――基准测试本身更多时候因无法测试或者测试不准确而备受诟病,却很少因测试公正性而备受好评。本文的这个基准测试同样摆脱不了这种命运。不过读完了本文后,读者会明白我们是如何设计及实现框架的、它可以评测什么(不能评测什么)及其可能的应用。

在深入探讨之前,我想先定义一下什么是基准测试:基准测试是一种测试,可以通过可重复、客观、透明的一种方式,对针对同一目的的多种实现彼此进行比较。

给出了这个定义之后,我们认为,任何基准测试都有两个逻辑部分,因而,这些不同目标在现有的基准测试中没有分开来。这两个部分是:一是成功执行基准测试所需的基础架构:二是测试本身,这总是针对特定的应用。这一假定是下文的关键所在。

基准测试框架

在介绍本文构建的基准测试框架之前,先看一下有哪些现有的框架可供使用。简而言之,没有一个框架是适合的。现有的框架存在的问题可以归纳如下:过时或未得到维护; 成了厂商相互竞争的地盘,因而靠不住;往往关注科学或工程应用(譬如浮点运算性能);往往关注JVM方面的基准测试;针对性非常强(譬如Volano基准测试的对象是聊天服务器――如果在构建聊天服务器,这很好,不然,这种基准测试并不适用)。

这些框架也无法区别基准测试和测试本身。换句话说,基准测试的潜在对象是整个Java开发社区。不可能设计出能适用于各部分对象的基准测试。但如果我们能够把基准测试运行的东西与基准测试的基本内容本身分开来,那么框架在扩展后就具有适用性了。

如图1所示,我们特意让框架力求简单,想让框架易于理解及扩展,另外也想尽量减少测试目标硬件和软件平台时产生的隐性开销。

通过使用Java平台、Standard Edtion 6.0及更高版本的特性,尤其是添加并发API,大大简化了这个基准测试。没有用到针对特定平台的任何特性。不过,如果扩展了框架,就可以随意使用这些特性,把目标平台推向极限。该框架应该可以在所有平台上直接运行,具体来讲是Windows、Unix和Linux这些平台。

框架的工作方式

以下代码片段详细表明了这个框架有多简单。一旦读者明白了这种主要方法,基本上就可以理解框架本身了。

public static void main(String[] args) throws Exception {

LoadTestEngine te = new LoadTestEngine();

//保存与我们想如何执行加载测试有关的所有数据

LoadTestMetaData ltmd = new LoadTestMetaData();

//分析加载测试输出的对象

Analyser ra = new LinpackRunAnalyser();

ltmd.setAnalyser(ra);

//弄清楚我们想运行多少个线程

//使用声称的内核数量并加1个

int numThreads = Runtime.getRuntime().availableProcessors() + 1;

ltmd.setNumThreads(numThreads);

//ltmd.setTaskClass(LinpackTask.class);

//现在设置我们想构成每一个任务基础的类

ltmd.setTaskClass(SimpleTask.class);

//我们希望任务执行多少次

ltmd.setNumIterations(1000);

//我们需要未完成的任何任务能够继续完成,

//于是我们设定了截止点,过了这个点,我们就不再等任务完成

ltmd.setTaskTimeout(10000);

te.setLoadTestMetaData(ltmd);

long startTime = System.currentTimeMillis();

RunResult rr = te.runLoadTest();

long endTime = System.currentTimeMillis() - startTime;

System.out.println(rr);

System.out.println("Engine output BEGIN");

System.out.println("Total elapsed time (ms): " + endTime);

System.out.println("Engine output END");

te.stop();

}

但实际工作是由LoadTestEngine.java完成的,具体是这段代码:

//首先,启动任务

for(int i = 0; i < numTasks;i++){

try {

Task t = (Task) ltmd.getTaskClass().newInstance();

//让fw扩展器返回TaksResult的子类型

Future< ? extends TaskResult> f = pool.submit(t);

futures[i] = f;

} catch (InstantiationException e1) {

throw new LoadTestException(e1);

} catch (IllegalAccessException e) {

throw new LoadTestException(e);

}

}

// 现在整理结果

for(int i = 0; i< numTasks;i++){

try {

TaskResult tr = futures[i].get(ltmd.getTaskTimeout(),

TimeUnit.MILLISECONDS);

ra.addTaskResult(tr);

} catch (TimeoutException e) {

e.printStackTrace();

} catch (ExecutionException e) {

e.printStackTrace();

} catch (InterruptedException e) {

e.printStackTrace();

}

}

return ra.analyse();

该代码使用由ExecutorService管理的一组线程来执行我所定义的工作负载,然后通过Future.get()方法收集结果,以便最终分析。

框架的优缺点

框架非常简单,简而言之,用不了十分钟,应当能够了解框架的运作方式,直至代码。框架可以扩展,默认状态下,该框架旨在让用户可以进行扩展。因此,如果想测试Spring和Struts/WebWork,那么这个框架能够进行客观地测试。框架可以在多线程环境下测试应用程序的正确性。一旦扩展后,框架就可以集成到持续集成环境中,用来确保开发中的应用程序可以继续满足稳定性、扩展性和性能等方面的标准。

但是,框架过于简单。如果任务是了解某个版本的特定框架(譬如Spring R1.2)是如何运作的,那么这个框架充其量只是供你使用的外壳。默认状态下,该框架评测的只是我们让它来评测的内容。虽然这听上去很显然,但有一点很清楚:魔鬼存在于细节中。两个基准测试可能是测试某个应用程序在运行特定硬件配置的多线程Java环境中进行扩展的功能,但实际上它们测试的可能是某个系统中完全不同的方面。换句话说,这两个基准测试是微观基准测试,而在孤立状态下进行的微观基准测试获得的结果总是具有误导性。

链接:主流处理器厂商产品特点

英特尔

英特尔的硬件一度就是超线程概念的同义词,但现在它更成熟了,包括真正支持多核的功能――譬如说,现在双核CPU就出现在新款Apple MacBook里面。最初,英特尔实现的超线程复制了CPU架构的一些部分,而架构的其他部分只保留了一份,从而在某些情况下会造成瓶颈。这种实现手段最多只能看成是权宜之计,目的在于在真正的多核支持(一开始是双核)渐渐投入生产的同时,可以取悦市场。英特尔今年已经为服务器市场了四核CPU。

AMD

AMD提供双核CPU。此外,它使用直接连接(Direct Connect)和超传输总线(HyperTransport)等技术把这些CPU连接起来,从而形成更庞大的CPU集群。

Sun

Sun真正拥护服务器上采用并行计算的强大功能,目前的T1(Niagara)系列及规划中的T2(Rock)系统就表明了这一点。当然,早在基于T1的系列问世之前,Sun就一直在制造高端服务器,但T1真正才开始兑现并行硬件作为大路货的承诺。

遗憾的是,T1有一个缺点,只有T2才能解决它――支持并行浮点操作的功能很差,所以如果需要这项特性,那么T1不适合你。但如果想在典型的Web服务器环境中使用T1,它就很理想。除了这个弱点外,T1使用八核CPU、每个内核都能够处理四个不同的活动线程上下文,从而最多可以提供32个真正独立的线程。

IBM

在本文探讨的所有硬件厂商中,IBM的Cell处理器(IBM联合索尼和东芝开发而成)恐怕是功能最强大的产品之一,它为索尼PlayStation 3即PS3提供了多核芯片。Cell处理器实际上是POWER5 CPU,借助显示视频游戏所需的数量众多的向量和浮点操作,另外增加了八个处理器来处理任务。

应用程序范文第7篇

关键词:设备驱动程序;应用模块;探究应用;分析总结

1 设备驱动程序应用环节的分析

为了确保操作系统的整体安全性及其稳定性的提升,我们要进行应用程序可移植性的剖析,这就是进行与之对应的设备驱动程序的应用,这是因为受到 Windows操作系统的程序应用限制,这些硬件资源的调动需要操作者运作设备驱动程序。通过对设备驱动程序的应用,可以实现硬件的有效操作,实现应用程序与设备驱动程序之间的良好通信,确保程序控制底层硬件设备应用效率的优化。这需要我们进行相关具体应用模块的分析。

在该模式应用过程中,需要通过对应用程序的应用,进行设备驱动程序与应用程序的协调应用。同时我们也要确保设备驱动程序与应用程序的协调。在上述环节的应用过程中,为了达到我们的应用需要,需要进行相关函数的设置,从而确保设备驱动程序的正常应用,在该模块中,我们可以利用好Win32函数进行有效应用,实现设备驱动程序与应用程序之间的良好协调,提升其通信的质量效率。在应用过程中,我们也要为其创造一个良好的应用条件,确保其不同应用环节的正常效能的发挥。在设备驱动程序进行相关数据采集工作之后,我们需要进行相关应用程序的应用,保证这些数据的积极处理,以满足当下工作的需要,提升其应用效率。

为了更好的进行设备驱动程序应用程序的优化,我们也要进行相关工作模块的协调,积极做好异步过程调用程序、事件应用程序、消息应用程序等的协调,通过对不同应用模式的协调,实现其现实工作模块的正常开展。在异步过程调用模块中,Win32应用程序需要应用到特殊的函数动态模式,进行设备驱动程序的积极加载,从而实现回调函数的积极定义,这需要我们进行回调函数的具体地址的参考,确保设备驱动程序的综合应用效益的提升。在设备驱动程序获得回调函数的相关地址后,在进行全局变量的保存。

为了更好的进行上述工作环节的优化,我们也要运用函数进行应用程序线程句柄的保存。当具备一定的条件时,我们就可以进行设备驱动程序的调用,确保Win32应用程序的有效应用。该函数带需要满足具体的参数需要。通过对参数的设置进行回调函数地址的应用。在第二个参数应用过程中,要确保回调函数信息的良好应用。

鉴于设备驱动程序通知应用程序的重要性,本人结合一些经验,对它进行了总结,归纳出5种方法摘要:异步过程调用、事件方式、消息方式、异步I/O方式和事件方式(WDM)。下面分别说明这几种方式的原理,并给出实现的部分源代码。

为了满足当下工作的开展,进行事件方式的优化是非常必要的,这需要我们通过Win32应用程序的应用,进行事件的句柄的确立。在通过虚拟设备驱动程序的应用,进行该事件句柄的创建。做好上述应用环节中,在利用一些函数进行未公开的动态链接库的加载,确保其动态链接库的句柄的获得,这需要我们利用好函数的相关特点,进行动态链接库位置的选择,从而实现对该事件的句柄的有效转换,确保Win32应用程序的有效应用。假如加载成功,则调用DeviceIoControl()函数将Ring0事件句柄传给VxD;同时,创建一个辅助线程等待信号变成有信号状态,本身则可去干其它的事情。当条件成熟时,VxD置Ring0事件为有信号状态,调用_VWIN32_SetWin

32Event()函数,这马上触发对应的Ring3事件为有信号状态。一旦Ring3事件句柄为有信号状态,Win32应用程序的辅助线程就对这个消息进行相应的处理。

在消息方式运作模式中,我们要进行Win32应用程序的积极调用,从而确保虚拟设备驱动程序的积极加载,提升其加载的效益。在完成该环节中,我们要进行窗体句柄的积极传送,确保窗体的相关消息的发出,在利用好相关的函数进行Win32应用程序消息的发送,确保该函数的应用成功。在利用一些手段进行消息模块的积极定义,以满足现实工作的需要。要在消息循环中使用ON_MESSAGE()来定义消息对应的消息处理函数,以便消息产生时,能够调用消息处理函数。SHELL_PostMessage()函数的第一个参数为Win32窗体句柄,第二个参数为消息ID号,第三、四个参数为发送给消息处理函数的参数,第五、六个参数为回调函数和传给它的参数。Win32应用程序收到消息后,对消息进行处理。

2 关于异步I/O方式及其事件应用模式的分析

在日常工作过程中,为了保证 Win32加载设备驱动应用程序的正常开展,我们需要做好相关函数的调用工作,确保各个参数之间的良好设置,以满足现实工作的需要。进行文件的重叠I/O操作控制,确保设备驱动程序文件的有效应用。在初始态的创建过程中,要进行手动复位模式的应用,进行相关类型数据结构的积极传送,确保该模块中,参数与函数的不同模块的传送。在该设备驱动应用模块中,其会将其设置为挂起状态,在该模块中,如果IRP队列为空,就可以将IRP放到IRP队列中去,从而确保设备驱动程序的正常工作。在Win32应用程序工作中,其与待IRP处理模块并不能完全实现同步化,这就需要确保gia模块的设备驱动程序结构的优化。

在返回值的判定过程中,我们也要进行IRP处理环节的优化,实现IRP工作程序的优化,为了满足该环节工作,要进行主程序与其他应用程序的协调,确保该模块中各个函数的信号状态的保持,进行设备驱动程序的综合利用效率的提升,从而实现IRP程序的有效开展,确保其处理效益的提升。这需要我们进行函数的应用,保证Overlapped事件中信号状态的保持,从而确保Win32应用程序的正常相应,以满足现实工作的开展,确保事件复位的无信号状态的保持,利用一些函数来满足我们的应用需要。函数获取IRP的处理结果。

在事件应用模块中,我们可以利用Win32应用程序进行事件的创建,将事件句柄进行设备驱动程序的传送,确保辅助线程的积极创建。当然,在该模块应用过程中,要进行等待事件的信号状态的保持。这样方便下序设备驱动程序应用过程中的事件句柄的转换,以方便后续程序应用的开展。

3 结束语

Windows操作系统运作环节中,通过对设备驱动程序的应用,可以实现操纵硬件的最底层软件接口模块的优化。从而进行I/O、硬件中断、DMA和内存访问等操作。通过对上述模块的应用,将应用程序和硬件细节屏蔽开来,使软件不依靠于硬件并且可在多个不同的平台之间移植,以满足现实工作条件的需要。

参考文献

[1]韩海力,郭云峰. 用DDK开发win2000/xp下USB设备驱动程序[J].微型电脑应用,2005.

[2]向丽萍,熊文龙.Windows环境下USB驱动程序的开发[J].交通与计算机,2006.

应用程序范文第8篇

对于“珊瑚湾”而言,相当于一个小的iOS应用商店了,不同于苹果商店那么复杂众多的分类,“珊瑚湾”专注于生活领域,比如服装饰品、美容美妆、医疗健康、旅游度假、美食餐饮、生活服务等,以更简单而清新的风格为用户推荐APP应用程序。

具体来看,“珊瑚湾”的功能包括分类查看生活应用、根据品牌查看、推荐APP、排行榜等。分类查看比较容易理解,对所有的iOS应用进行了全新分类,以人们的生活需求为出发点,具体包括服装饰品、旅游度假、美容美妆、医疗健康、生活服务、美食餐饮、休闲地带、家电数码分类,覆盖了酒店、美妆、医疗、折扣、烟 酒、景点、服装、数码、娱乐、护肤、保健、家居、餐厅、航空、配饰、商场、票务、健身、房产、美食、地图、运势、装修、母婴、汽车、宠物等28个子类。够详细吧!

如果这个分类你觉得OK的话,那么“珊瑚湾”所做的“品牌专区”就更让人感觉到商业气息了,从宝马、香奈儿等国际一线品牌,到如家、屈臣氏等家喻户晓的大众品牌,“珊瑚湾”在品牌专区囊括了各个企业及品牌所推出的APP,除了基本信息外,了解这些品牌的最新产品、活动、超值优惠信息则是另外一块营销内容了。“珊瑚湾”支持用户来直接订阅这些品牌应用及信息等。

当生活应用如此之多、并且贴近人们的时候,“珊瑚湾”再来做个精品推荐、排行榜也就容易理解了。此外,“珊瑚湾”还设定了一些好玩的功能,比如摇一摇手机、碰出好玩的应用,算是一种新的推荐方式了。

整体看下来,“珊瑚湾”本身产品做得很棒,而且也提供了一种新的应用推荐(or 应用商店)方式,毕竟如此众多的APP世界,用户是有需求通过一些引导来找到需要的APP应用程序的;而对于“珊瑚湾”之类的产品而言,又有天然的商业价值,比如作为应用分发渠道、推广渠道,要知道这块业务可是相比APP应用程序本身能更快获得收入和利益的。好吧,说不定,接下来以“珊瑚湾”为模板、将APP应用程序进一步细分的应用也将出现了,比如所有的购物应用?等等。

腾讯科技

遥感降水降尺度研究获进展

相对于其它遥感降雨产品而言,TRMM降雨产品由于其较高的准确性,已在全球多个区域得到广泛运用。然而,当运用到区域尺度时,由于其空间分辨率较低(0.25°×0.25°),往往无法满足流域尺度水文水资源研究的需要。空间降解是解决上述问题的有效办法。

中科院地理科学与资源研究所贾绍凤研究团队以柴达木盆地降雨与地形、植被等其他环境因子的密切关系为基础,在四个不同的空间尺度上建立了TRMM降雨数据与SRTM DEM和SPOT VEGETATION两个高分辨率遥感数据的回归关系,最终得到了柴达木盆地高空间分辨率(1km×1km)的年降雨数据,并利用研究区内的6个降雨站点数据进行了验证。结果表明,研究人员建立的空间统计降解模型能够有效地反映研究区的降雨量的年变化趋势,取得了较好的效果。

研究成果发表在期刊Remote Sensing of Environment上Jia Shaofeng , Zhu Wenbin, L? Aifeng* , Yan Tingting. A statistical spatial downscaling algorithm of TRMM precipitation based on NDVI and DEM in the Qaidam Basin of China. Remote Sensing of Environment, 2011.

应用程序范文第9篇

关键词:计算机应用程序;编程模型;发展

计算机的运行主要是通过计算机硬件和应用程序相互协调来实现的,从这两个部分可以看出,任何部分都不能缺少,然而应用程序这一方面是计算机的心脏,决定着计算机的运行和计算,计算机开始运行时,先是把对应的信息和数据录入计算机,这时计算机的储存器会对这些信息进行识别和储存,然后计算机会启动计算功能对数据进行计算,最后把所得结果运用用户可以查看的方法保存在硬盘中,这样有助于用户对其查看和计算,对于应用程序的结构,一般包括数据保存、逻辑和桌面操作等,然而不同部分的性能相比较也是不同的,所以,必须根据相关程序来运行计算机。

1单层模型

计算机经过了很长时间的发展,自从计算机诞生以来的很长时间里,计算机都包括两个硬件板块,其中一个板块是计算机的主机系统,另外一个板块是次要部分,计算机应用程序和以及硬件系统储存在主机部分,这就是单层应用模型,然而这种类型道德计算机性能不高,不能满足用户使用计算机的各种需要,所以,在接下来的发展过程中这种类型的计算机慢慢被淘汰了。

2双层模型

在计算机应用程序前进历程中,因为单层模型性能不高,不能满足用户的需要,所以,出现了使用双层模型的计算机,这种模型的基本原理其实就是对计算机进行创新,把主机板块划分为两个部分,其中一个结构是服务器, 另一个结构是客户端。对于服务器,其功能主要是搜集和处理数据和信息,并展示在计算机服务器上面,对于信息和数据的反映在计算机桌面,需要借助客户端来实现。双层模型相比较单层应用模型,双层模型有很多优点,在形式方面有着一定的相同,计算机的处理形式相比更完善,工作效率得到了较大的提高,达到了计算机正常运行的目的。然而双层模型在使用的时候,也会出现一些问题,这说明其存在一些不足有待完善,所以,继续完善是一种正常的趋势。

3多层模型

多层模型是基于双层模型的发展而出现的,通过较长时间的研究和分析,创新性的把双层模型的优点完美加入到了多层模型中,还依靠现论和科学技术来完善计算机的运行方式和计算机性能,多层模型主要解决了双层模型存在的问题,这些问题包括不稳定和不安全,让计算机实现了快速运行,运行起来非常灵活,此外,还弥补了操作方面的不足,通过多层模型可以看出,该模型使用的是模块分开方式,这使得计算机使用和维护起来非常方便,而且存储器与事务之间的交流越来越频繁,可以进行信息和数据的交换,能够实现不利用其他渠道来得到需要的信息和数据,这种模型的优点使得其在计算机应用中稳固了地位,不但没有被淘汰还得到了人们的认可,但是,随着科学技术的进步,人们的生活水平得到了快速提升,因此,这种模型必然会随着时间的推移而被再次创新或者直接淘汰。

4分布式模型

通过观察计算机应用程序多层模型的使用情况,我们可以知道,这种模型的基本原理中的上层为下层提供服务,还有上层控制和调节下层,这一方式有可能会缩短计算机的使用寿命,所以,相关技术人员非常重视这个问题,如果想提升计算机的性能和运行效率,在完善的时候,应该依据有关规则和程序分解应用程序的代码,接下来遵循着计算机工作规律准确确定应用程序代码的功能,在保持现存计算机功能的情况下,又增添了新功能,然而需要借助分解对象才可以实现。

5基于万维网的多层模型

随着万维网的快速发展,因特网也得到了快速发展,因特网具有的功能表现出较大的复杂性,包括数据和信号的方式等,具体的说,万维网应用程序具备的特征比较显眼,一般可以通过以下几方面来说明:(1)通过万维网创建的计算机编程模型的使用桌面比较简化,可以使用便捷的搜索系统完成搜索工作,快速发现软件所在的位置和使用的操作模式,而且,因特网在其中起着非常显著的作用。(2)这个基于万维网的多层模型的使用使得管理人员的工作更加简单,管理人员可以把一些操作系统安装在系统中实现搜索,不用依靠其他系统来开展搜索工作,这样,使得花费在系统维护上面的费用大幅度被减少,而且工作效率也获得了快速提高。(3)研究人员可以借助万维网技术来有效做好发明工作,在制作网页的时候,只需要借助有关的工具就可以开展工作,不会使得工作变得很复杂,关于应用开发,旧式的使用单独的软件包方式出现的部分应用程序慢慢的被应用到了互联网中,采用出租服务的形式为用户提供服务,这不但提升了研发效率,还使得研发工作不再那么繁琐。

6结论

伴随着计算机的快速发展和信息技术的不断进步,我们发现无论是在生活中还是在工作上都有计算机的参与,人们对计算机具备的功能提出了越来越高的要求,这样引起了应用程序编程模型向着更高方向发展,本文以计算机应用程序编程模型的发展探讨为题,对其所有的发展环节进行了细致的研究,发展环节包括单层模型、双层模型、多层模型、分布式模型以及以万维网为视角的多层模型,由于人们对计算机越来越依赖,未来计算机应用程序编程模型会继续发展下去。

参考文献:

[1]李红岩.计算机应用程序编程模型的发展探讨[J].电子制作,2014(20):71.

[2]高书豪.计算机应用程序编程模型的发展探讨[J].硅谷,2014(07):157-158.

[3]谭曦.论计算机应用程序编程模型的发展[J].电脑与信息技术,2001(02):51-53.

[4]罗新建.计算机应用程序编辑模型的发展[J].数字技术与应用,2013(08):89.

[5]王执源.计算机应用程序编程模型发展方向探析[J].信息与电脑(理论版),2016(17):55-56.

[6]余娅梅.探讨计算机应用程序编程模型的发展方向[J].电脑编程技巧与维护,2015(16):16-17+25.

应用程序范文第10篇

关键词:HTML5;Flex;AIR

中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)01-0059-03

Create Flex Offline Application with HTML5 Technology

KANG Jing

(Anhui University of Science & Technology, Huainan 232038, China)

Abstract: HTML5 and Flex technologies are currently more popular RIA solutions, combining the two can be used to enhance Web application, and to improve the user experience. The important feature of offline storage, HTML5 use localstorage feature to support. In off-line storage, Flex doesn’t have standard implementation, so we can create RIA application of offline through the integration of HT? ML5 and Flex. This paper will first briefly introduce the localstorage feature of HTML5, then use the example to introduce the integration of method to use the HTML5 technology to create Flex offline application.

Key words: HTML5; Flex; AIR

互联网的普及使得,基于浏览器服务器(B/S Browser/Server)的瘦客户端模式应用程序开始占据主流位置,Web的流行解决了C/ S应用程序部署和更新的困难。基于浏览器的瘦客户端应用程序是在Web服务器上部署和更新的,因此消除了将应用程序的任何部分显式部署到客户计算机并加以管理的必要性。但同时瘦客户端应用程序的缺点也比较明显:

1)由于采用了HTML页面形式的用户界面,由于受到网络速度的影响,所以客户端的数据处理能力较C/S应用程序有所下降,用户体验也相对较差,无法像C/S那样快速的响应用户请求以及使用丰富的效果来展示数据。

2)浏览器必须总是具有网络连接,这意味着用户在断开连接时将无法访问应用程序,当再次连接后,必须重新输入数据,这就增加了应用程序的使用的复杂度。

RIA技术的使用使得在数据处理方面,客户端和服务器端能够进行更好的平衡,共同分担数据处理的压力,同时RIA使用相对健壮的客户端描述引擎,能够提供响应速度快和图形丰富的用户界面。本文研究基于HTML5和Flex技术的离线存储,通过在客户端直接存储数据,可加速Web应用程序的响应。

1 HTML5离线存储

HTML标准自1999年12月的HTML 4.01后,后继的HTML 5和其它标准被束之高阁,为了推动web标准化运动的发展,一些公司联合起来,成立了一个叫做Web Hypertext Application Technology Working Group(Web超文本应用技术工作组- WHATWG)的组织,HTML5草案的前身名为Web Applications 1.0,於2004年被WHATWG提出,於2007年被W3C接纳,并成立了新的HTML工作团队。HTML 5的第一份正式草案已于2008年1月22日公布。HTML 5有两大特点:

新的布局元素,包括日历控件、地址卡、标尺和进度条,以及视频、音频的支持,强化了Web网页的表现性能。

Web存储,提供在客户端存储数据的新方法

HTML5提供了两种在客户端存储数据的新方法:

localStorage――没有时间限制的数据存储,这是HTML5新增的功能。

sessionStorage――针对一个session的数据存储

HTML5存储为Web站点提供了在本地计算机上存储和提取数据的方法,之前这些都是由Cookie机制完成的,但是Cookie只适应小数据量的数据存储,因为它们由每个对服务器的请求来传递,这使得Cookie速度很慢而且效率不高。在HTML5中,数据不是由每个服务器请求传递的,而是只有在请求时使用数据。它使在不影响网站性能的情况下存储大量数据成为可能。对于不同的 网站,数据存储于不同的区域,并且一个网站只能访问其自身的数据。HTML5使用JavaScript来存储和访问数据。

首先要检测浏览器是否支持HTML5存储,所以在使用HTML5时首先要检测使用的浏览器是否对HTML5支持,目前各主流浏览器对HTML5支持的情况如表1所示:

HTML5本地存储是基于键值对的,以键保存和提取数据,键Key是String类型的,而对应的存储数据可以是JavaScript支持的类型,但是真正存储时还是使用string的形式存储,所以在提取数据时要进行必要的强制类型转换,比如:parseInt(),parseFloat()等。虽然HTML5的存储空间变大,但是还是有大小限制,它的最大存储空间为5M,但是这对于以字符串存储的数据来说已经是不小的空间。

HTML5针对localStorage提供了必要的API接口,包括查找key对应的键值,以及添加删除键值对内容。

2 Flex技术

Flex采用ActionScript 3编程语言。ActionScript 3是一种强大的面向对象的编程语言,基于ECMAScript Language Speci6cation,Third Edition[1]。它是一个可构建具有表现力的移动、网络和桌面应用程序并且高效、免费的开放源框架。Flex允许您构建共享一个公共代码库的网络和移动应用程序,从而减少了应用程序创建的时间和成本以及长期维护[2]。目前比较成熟的几种RIA客户端开发技术包括Adobe Flash/Flex,JavaScript,Dojo,Microsoft的Avalon。

Adobe Flex是为满足希望开发RIA的企业级需求而推出的表示服务器和应用程序框架,它可以运行于J2EE、.NET、PHP和ColdFusion平台。Flex程序设计基于Flex UI组件库及基于XML的MXML来定义丰富的用户界面,利用面向对象的脚本语言(Ac? tionScript)来处理程序逻辑,由Flex服务器翻译成SWF格式的客户端应用程序,在Flash Player中运行。Flex提供了音频、视频和实时对话的综合通信技术使RIA具有前所未有的网上用户体验,具有高度互动性和丰富的用户体验。

Adobe AIR是Adobe针对网络与桌面应用的结合而开发出来的技术,可以不必经由浏览器而对网络上的云端程序做控制,也由于这是Adobe所开发的技术,因此能很顺利的与Adobe旗下的Flex、Flash等应用程序来进行开发[3]。Flex结合AIR也可以实现数据的离线存储功能,但是AIR需要安装,对于目前浏览器的普及程度来说,意义不是很大。AIR程序可以检测到网络的连接情况,当网络连接时AIR会把web服务器上的最新数据down下来保存在本地,可以是XML格式或者存储在本地数据库sqlLite中,一旦AIR程序检测到网络断开连接,AIR程序就开始使用本地的数据,以达到离线运行的功能。

3实例应用

前面介绍了HTML5的localStorage和Flex结合AIR技术在离线存储中的特点,下面我们选择把Flex和HTML5结合起来来展示一下离线存储的功能,把HTML5和Flex的优点结合起来。选择Flex作为表现层来展现我们的示例程序,再结合HTML5离线存储中localStorage功能,实现可离线运行的富互联网程序。Flex和HTML交互通过JavasCript来实现,这里只是简单的使用Flex的Ac? tionScript来调用JavasCript来实现该程序。

首先,在Flex端的ActionScript中通过ExternalInterface接口调用JavaScript代码来实现HTML页面登陆会员的信息保存。Flex的ExternalInterface.call()方法调用JavaScript函数,本例中就是JavaScript的login方法。

Public function callLogin():void {

if (ExternalInterface.available) {

var wrapperFunction:String = "login";

ExternalInterface.call(wrapperFunction,key.text,val.text);

} else {

trace("Wrapper not available");

}

}

其中wrapperFunction为JavaScript中的函数名称,可以传递也可以不传递参数给名字functionName对应的方法。在本例中log? in方法有两个参数,分别传递用户名和密码,JavaScript端的login函数如下所示:

function login(name,password)

{

//首先判断浏览器是否支持HTML5的localStorage

if(typeof(localStorage) == ’undefined’)

{

alert(’Your browser does not support HTML5 localStorage’);

}else {

try {

//将键值对存储于localStorage中localStorage.setItem(name, password);

if(localStorage.getItem(a)!=null){

//从localStorage中提取数据,用于修改页面标题

window.document.title = localStorage.getItem(a);

alert("Page Title has been changed");

}

}

catch(e){

if(e == QUOTA_EXCEEDED_ERR) {

alert(’Quota exeeded!’);

}

}

}

这样把Flex生成的flash文件通过object标签嵌入到HTML中,Flex接受服务器端的数据然后保存到HTML5中的localStorage中,这样在网络中断后就可以使用flash调用HTML5的localStorage存储的数据来显示内容,实现数据的离线显示。

4结束语

该文介绍了Flex结合AIR的离线存储以及HTML5的localStorage离线存储的特点,提出利用Flex技术和HTML5结合在一起,以Flex作为表现层提供很好的交互性,再利用HTML5的localStorage功能,实现真正意义上的离线运行的web程序。其中涉及到Flex对JavaScript方法的调用,对于大规模应用的开发尚需深入研究,但是通过本文相关技术的介绍,可以为离线web程序的开发提供解决思路,开发出更能满足各种需求的web程序。

参考文献:

[1] Adobe Flex.构建具有表现力的跨平台移动、网络和桌面应用程序[EB/OL]. www.省略/cn/products/flex/.2009.

[2] Adobe. Adobe Labs[EB/OL].labs.省略/wiki/index.php/ActionScript_3. 2001.

上一篇:c语言程序范文 下一篇:程序性知识范文