安全的用户专有应用程序版本的制作方法

文档序号:6447294阅读:141来源:国知局
专利名称:安全的用户专有应用程序版本的制作方法
技术领域
本专利申请总体上涉及数字计算机的处理以及,更具体的说,涉及安全的提供软件应用程序的版本。
背景技术
软件应用程序(或简称“应用程序”)经常以不同的版本存在。例如,能更新应用程序以提供新功能,或有意识的设计应用程序以便为不同的用户提供不同的功能或特点(例如,演示版、家庭版、和专业版)。
每个版本有不同的价钱。用户购买提供最适合用户需求的功能的应用程序版本。此外,当新特点和升级被设计完成并可用时,给予用户获得(如,下载/购买)更新的应用程序版本的机会。
用户一般要购买使用应用程序的许可(license)。许可会提供用于激活与应用程序相关的功能的密钥。然而,应用程序和/或它的安全特性会受到损害,从而在没有密钥情况下可激活应用程序的功能。因为它为未被许可的用户提供了访问应用程序的机会,因此该情况是有问题的。

发明内容
总的来说,在一方面,公开了一种提供对软件应用程序的访问的方法,该软件应用程序包括应用程序核心和版本专有功能。该方法包括启动(enabling)对应于用程序核心的访问,确定软件应用程序的版本,以及提供对应于该版本的模块链接。该模块链接可以是启动对版本专有功能的访问的软件接口。该方面包括一个或多个下列特点。
应用程序核心包括在多个应用程序版本中所共有的软件,而版本专有功能包括软件应用程序版本专有的功能。在提供模块链接之前,会对其加密。可使用对应于软件应用程序的用户的公钥加密模块链接。该方法包括接收公钥。
模块链接能通过参考版本专有功能来启动对版本专有功能的访问。模块链接可以通过下载版本专有功能并将版本专有模块并入应用程序核心来启动对版本专有功能的访问。模块链接可以包括应用程序核心的配置设置。
上述方法包括接收对应于软件应用程序用户的标识信息。可以使用标识信息来确定软件应用程序的版本。软件应用程序可以是电子学习系统中的内容播放器,并且版本专有功能对应于在线内容播放器、编辑环境内容播放器和离线内容播放器中的至少一种。
总的来说,在另一方面,公开了一种电子学习系统。该电子学习系统包括提供课程内容的第一系统,提供展示(present)课程内容的内容播放器的第二系统,和识别展示课程内容的内容播放器版本并提供与内容播放器一起使用的模块链接的第三系统。模块链接用于访问与展示课程内容的内容播放器版本相关的功能。本方面包括一个或多个下列特点。
内容播放器可包括应用程序核心,该应用程序核心包括在不同内容播放器版本中所共有的功能。应用程序与模块链接访问的功能一起运行以用于展示课程内容。
第一系统包括存储课程内容的主存储库(repository)。内容播放器访问主存储库中的内容。可将内容播放器提供到本地计算机上。本地计算机可对(例如,在远程或本地服务器或系统上的)课程内容的本地存储库进行访问。内容播放器可以访问来自本地存储库的内容。第三系统在提供模块链接前加密模块链接。第三系统用对应于软件应用程序用户的公钥加密模块链接。
通过说明书,附图和权利要求,将清楚其它特点和优点。


图1和2是提供用户专有应用程序版本的示例性网络的框图。
图3是用户专有应用程序的示例性实施例。
图4是提供安全的用户专有应用程序的示例性处理的流程图。
图5是在电子学习系统中的内容集合(aggregation)模型。
图6是电子学习知识类型本体(ontology)的示例。
图7是电子学习课程图表的示例。
图8是电子学习子课程图表的示例。
图9是电子学习学习单元图表的示例。
图10是电子学习系统的体系结构框图。
在不同附图中相同的附图标记表示相同的组件。
具体实施例方式
如图1所示,通信系统100包括能在一个或多个客户设备120间通信的数个网络(如,主网络110、内部网130、和互联网135)。使用网络提供的通信路径140,客户设备120可以直接连接到主网络110,或它们可以通过内部网130或互联网135间接连接。
使用建立局域网(LAN)、广域网(WAN)、转换网络、无线电网络、电缆网络、卫星网络、或多个这些网络的组合的任何数量的组件和/或网络设备(例如,网络集线器、路由器、转换器、服务器、转发器、存储设备、通信接口、处理器、和各种通信媒体)实现主网络110。主网络110包括一个或多个提供到网络的访问和/或提供在线服务的主设备,例如服务器。上述服务器提供软件应用程序和/或应用程序版本的访问,如下面的详细描述。
客户设备120由一个或多个用户操作以与主网络110通信。客户设备120的一个示例是能以固定形式响应并执行指令的通用计算机。客户设备120包括,但不限制于专用计算机、个人计算机(“PC”)、工作站、服务器、膝上型电脑、网络(Web-enabled)电话、网络个人数字助理(“PDA”)、交互式电视机、机顶盒、机载(也就是,安装在车辆上)计算机、或能响应、产生、和/或执行指令的一个或多个这些设备的组合。客户设备120包括任何数量的其它设备、组件、和/或外围设备,例如存储器/存储器设备、输入设备、输出设备、用户接口、和/或通信接口。
客户设备120使用通信路径140与主网络通信。可以配置通信路径140用于发送和接收传送或携带表示各种类型的模拟和/或数字内容的数据流的信号(例如,电子的、电磁的、或光学的)。例如,可以使用各种通信媒体和包括一个或多个网络设备(例如,服务器、路由器、转换器、网络集线器、转发器、和存储设备)的一个或多个网络实现通信路径140。该一个或多个网络包括,但不限制于WAN、LAN、简易老式电话业务(plain oldtelephone service,POTS)线网络、宽带网络、数字用户线(DSL)网络、综合业务数字网络(ISDN)、和同步光学网络(SONNET)、或一个或多个这些网络的组合。此外,通信路径140包括一个或多个发射和接收传送信息的电磁信号的无线链路。该无线链路的示例包括,但不限制于无线电、红外线、和微波信号。
如图2所示,客户设备120a包括用于执行一个或多个应用程序(例如,应用程序220,如操作系统、浏览器、或商业应用程序、和JAVA虚拟机(JVM)225)的处理器210。应用程序可以包括计算机程序、一段代码、指令、或它们的组合,以便独立或联合指示客户设备120a以指定形式交互或操作,在能向客户设备120a提供指令的任何类型的机器、组件、物理或虚拟设备,存储媒体、或传播信号或波中永久或暂时物化(embodied)应用程序。将应用程序存储在客户设备120a和/或处理器210可读的存储媒体或设备227(例如,只读存储器(ROM)、随机存取存储器(RAM)、易失/非易失存储器、磁盘、或传播信号),从而如果客户设备120a读取存储媒体或设备,则执行指定的步骤或指令。
客户设备120a包括一个或多个通信接口229,该通信接口允许客户设备使用通信路径140发送和接收信息。客户设备120a可以使用通信接口229建立到主网络的连接(通过通信路径140)。一旦建立了与主网络110的通信,客户设备120a可以直接或间接地将数据传送到主网络服务器230,以及访问来自主网络服务器230的服务。例如,客户设备120a建立与服务器230的连接以访问存储在存储媒体/媒体240中的不同应用程序版本242(ver.C)、246(ver.B)、和/或248(ver.A)。服务器230提供接口(例如,结合在客户设备上运行的浏览器)用于观察和/或确定服务器230提供的是那个应用程序。
不同的应用程序版本(例如,ver.A、ver.B、ver.C)可以提供不同的功能。例如,“演示”版包括用于(例如,对潜在的购买者或应用程序的用户)演示应用程序各种特点和功能的有限功能。“家庭用户”版本提供更多的功能(适合于大多数应用程序用户的典型功能)。“专业”版本提供专用于、或尤其更适合于工作相关的使用的、对家庭用户版补充的或与家庭用户版不同的功能。“豪华”版包括应用程序能提供的所有功能。每个版本具有不同的价钱(例如,演示版是免费的,家庭用户版较便宜,而专业/豪华版较贵)。
能以不同形式实现应用程序。在一个实现中,应用程序包括实现应用程序基本功能,也就是,所有应用程序版本共同所具有的功能的应用程序核心。应用程序也包括一个或多个版本专有应用程序模块(或,更一般的说,版本专有功能)。每个应用程序模块包括特定应用程序版本所独有的一组操作或功能,并且该组操作或功能并不包括在应用程序核心中。一个或多个上述的应用程序模块与应用程序核心结合(如,安装在其中,从中引用等)以实现一个应用程序版本,如下所述。
在应用程序核心和版本专有模块之间提供软件接口(“模块链接”)。模块链接允许应用程序核心访问版本专有模块的功能,而不需要知道如何实现每个模块的功能。可以以任何编程语言实现模块链接。例如,可使用C/C++中具有对应于头文件的库、Microsoft Windows的Win32应用程序接口(API),C++或Java中的标准模板库实现模块链接。
在Java中,接口是允许程序员抽象描述功能或一组函数的集成语言构造。例如,可以使用单独的类来实现抽象接口。在基于Java的实现中,实现应用程序核心的JVM搜索不同源以便发现提供模块链接的特定实现的特别类的字节代码。各种源包括文件系统中的目录、ZIP或Jar文件、和/或网络地址(例如,由统一资源定位符(“URL”)指定的)。
模块链接可以是包括应用程序配置设置的一个或多个文件,而不使用实际软件接口。在这种情况下,应用程序核心以上述形式接收配置设置并且从而配置其自身以获得所需的功能(模块)。
提供用户专有应用程序版本如上所述,当用户“购买”应用程序时,用户一般接收使用应用程序的有限许可。虽然应用程序包括许多不同的安全特性以用于防止未经许可的使用,但是许多这些安全特性会遭到破解或损坏。为防止未授权的使用,提供为每个用户特定的应用程序。如下所述,通过为每个用户提供只有他或她能使用的应用程序版本来实现用户专有应用程序。
能以许多形式提供用户专有版本应用程序。在如图3所示的一个实施例中,用户可以购买应用程序300,该应用程序包括应用程序核心301和为应用程序300提供完整功能的所有版本专有模块的一组模块305。可以在固定媒体,例如磁盘上为用户提供应用程序300。客户设备120a可以访问固定媒体(图2)。也可通过将应用程序(例如,从主网络110上的服务器230)下载到客户设备120a来提供应用程序300。
在接收应用程序300以后,将模块链接315提供给应用程序核心。模块链接315作为应用程序核心301和模块305所提供的功能之间的接口。通过只提供对由模块305提供的特定功能(例如,与特定版本相符合的功能)的访问,模块链接315可以限制对应于用程序版本的访问。使用上面给出的示例,“演示”版模块链接只提供到有限模块的访问;“家庭用户”模块链接提供到更多模块的访问,以及“豪华”模块链接提供到所有模块的访问。
在另一个实施例中,用户通过指定所需的功能购买定制的应用程序版本。在这种情况下,定制模块链接315用于提供只访问所需功能的应用程序核心。而在另一个实施例中,只提供启动对应于所购买的应用程序版本功能的那些模块305。
通过加密模块链接可以保护(也就是说,提供防止未授权使用的安全)应用程序版本。例如,可以使用用户的公钥加密模块链接,然后使用用户的私钥解密。这种加密策略降低了未授权用户能访问应用程序的机会。此外,可以添加一段代码到加密的模块链接,然后应用程序核心解密该加密的模块链接用于证实模块链接是授权的。上述代码的一个示例是电子(或数字)签名,可以验证其以核实模块链接。
图4示出可用于获得应用程序的安全用户专有版本的处理400。根据处理400,用户例如,通过下载应用程序的拷贝来获得(例如,购买)(401)应用程序的拷贝。为了激活应用程序,用户提供(410)给应用程序提供者唯一的标识符。例如,用户访问应用程序提供者的服务器,并提供用户的公钥(例如,Verisign公钥)。此外,还可以提供其它的标识,例如信用卡号、帐户号、和/或产品序列号。
使用上述信息,服务器确定(415)应用程序的哪个版本已被许可或已由用户购买。在确定版本以后,服务器提供(420)(对应于所需版本的)模块链接或者建立接口(例如,如果提供了用户定制版本)。服务器使用用户的公钥加密(425)模块链接。将加密的模块链接提供给用户(430)并安装在应用程序中或由应用程序访问。使用用户的私钥解密模块链接(440)。然后,因为应用程序版本已被许可或已由用户购买,应用程序核心可以使用模块链接访问提供期望功能所需的版本专有模块。对应于该功能的版本专有模块可以在任何地点,例如应用程序提供者的服务器、应用程序提供者的网站、或第三方站点或服务器。通过简单的引用它们或下载它们并且将它们合并入应用程序核心来访问版本专有模块。
很难损坏或“截获(hack)”公/私钥解密,因此使应用程序不易受未授权使用的影响。此外,因为需要用户将用户的唯一标识或私钥提供给他人,因此用户将未授权拷贝提供给其它个人的可能性减少了。
可以在许多环境中实现上述的处理,并且在电子学习(“e-learning”)环境中具有特别的适用性。电子学习是指能使学习者以电子形式,例如,通过网络,如互联网,而不需要中间物,例如老师或辅导教师而访问内容的基于计算机的训练系统。下面提供其中实现处理的电子学习系统的简要描述,从提供的课程的内容和结构开始。
课程的内容和结构这里所述的电子学习系统(“ELS”)构造课程材料(也就是,内容)如此使内容可以再使用并且是灵活的。例如,内容结构允许课程设计人再使用现存的内容以产生新的或另外的课程。另外,内容结构提供灵活的适于不同用户学习风格的内容发送,藉此提供个人化的学习体验。
可以使用大量安排在不同集合层次的学习对象来集合ELS中的电子学习内容。每个较高层次的学习对象可以引用较低层的任何学习对象。在最低层,学习对象对应于内容并且不能被进一步分割。在图5所示的ELS的一个实现中,课程材料510包括4种学习对象课程511、子课程512、学习单元513、以及知识项514。
从最低层开始,知识项514是其它知识对象的基础,并且是课程内容结构的构造块。每个知识项514包括演示、解释、实践、或测试主题领域或主题一方面的内容。知识项514一般尺寸较小(也就是,持续时间短,例如,大概5分钟或更少)。
可以使用属性描述知识项514,诸如,例如,名字、媒体类型、以及知识类型。ELS可以使用名字识别和定位与知识项514相关的内容。媒体类型描述与知识项514相关的内容形式。例如,媒体类型包括演示类型、通信类型以及交互类型。演示媒体类型包括文本、表格、插图、图形、图像、动画、音频剪辑,和/或视频剪辑。通信媒体类型包括聊天会话、组(例如,新闻组、群、类、和对等组)、电子邮件、短信服务(SMS)、以及即时消息。交互媒体类型包括基于计算机的训练工具、模拟以及测试。
知识项514也可以通过知识类型属性来描述。例如,知识类型包括知识定位、知识活动、知识解释、以及知识源/参考(参见图6)。知识类型在学习目的和内容上有所不同。例如,知识定位提供到用户的参考点,以及,因此,提供关于互连学习对象结构的更好理解的一般知识。
可使用宽范围的技术产生知识项514。在一个实现中,浏览器(包括插件应用程序)解释和显示与每个知识项相关的合适文件格式。例如,可以使用标记语言(诸如超文本标记语言(HTML)、标准通用标记语言(SGML)、动态HTML(DHTML)、或扩展标记语言(XML))、JavaScript(客户端脚本语言)、和/或Flash来产生知识项514。
可以使用HTML来描述逻辑组件和文档表示,例如,文本、标题、段落、列表、表格或图像引用。Flash可以用作为Flash电影的文件格式以及用作在浏览器中播放Flash文件的插件。例如,可以使用运用矢量和位形、动画、幻灯片、渐变段、MP3音频文件、输入形式和交互的Flash电影。此外,Flash允许图形元素的像素精确定位以产生用于向用户展示课程材料的交互式应用程序。
可以使用一个或多个知识项514来聚集(assemble)学习单元513以展示,例如,清楚的、主题连贯的单元。因此,可以认为学习单元513是相同普通主题知识项514的容器。学习单元513尽管比知识项514大,但也具有相对小的尺寸(也就是说,持续时间短)。
可以使用其它子课程512、学习单元513、和/或知识项514来聚集子课程512。子课程512可用于将广泛课程分裂为几个较小的从属课程。通过引用其它子课程512子课程512可用于建立任意深度的嵌套结构。
可以由包括子课程512、学习单元513、和知识项514的所有从属学习对象聚集课程。为促进最大限度的再使用,所有的学习对象是自我包含(self-contained)并且环境自由(context free)的。
可以用元数据加标签于(tag)学习对象,用于支持与学习对象相关的内容的适合的发送、再使用、以及搜索/检索。例如,可将由IEEE“学习对象元数据工作组(Learning Object Metadata Wording Group)”定义的学习目标元数据(LOM)关联到单个学习对象。学习目标是要由电子课程,或其子集向参加电子课程的用户传授的信息。上述的学习目标元数据代表对应于学习目标的数字标识符。根据用户是否达到与组成课程的学习对象相关的学习目标而将元数据用于配置电子课程。
如图6所示,可以使用包括定位知识517、活动知识519、解释知识520、和资源知识521的知识类型516的教学本体515对学习对象分类。定位知识517帮助用户设法进入主题(find the way through a topic)而不以主题特定形式活动并且可被称为“知道是什么(know what)”。活动知识519帮助用户获得主题相关的技能并可被称为“知道如何进行(know how)”。解释知识520为用户提供某事为什么是那样的解释并可被称为“知道为什么(knowwhy)”。资源知识521教导用户在哪里找到特定主题的其他知识并可被称为“知道在哪里(know where)”。
如图6所示,该四种知识类型(定位、活动、解释、和资源)可以进一步划分为更精细的本体。定位知识517涉及包括历史、剧情、事实、概观和综述的(知识的)子类型522。活动知识519涉及包括策略、过程、规则、原则、命令、定律、对定律的注释、清单的子类型524。解释知识520涉及包括示例、意图、映象、为什么或什么的解释、以及论证的子类型525。资源知识521涉及包括参考、文档参考和档案参考的子类型526。
可以由学习对象中的元数据来描述学习对象之间的依赖关系。可使用关系来描述学习对象之间的自然的、主题分类关系。关系可以是有方向或无方向的。有方向的关系表示学习对象之间的关系只在一个方向是真的。应该遵循有方向的关系。可将关系分成两类主题分类(subject-taxonomic)和非主题分类(non-subject taxonomic)。
可将主题分类关系分成层次关系和关联关系。层次关系可用于表示具有从属或上级关系的学习对象之间的关系。例如,如果B是A的一部分,则存在知识项A和B之间的层次关系。可将层次关系分成两类部分/整体关系(也就是,“具有部分”)和抽象关系(也就是,“概括”)。例如,部分/整体关系“A具有部分B(A has part B)”描述了B是A的一部分。抽象关系“A概括B(A generalizes B)”暗示B是A的一个特定类型(例如,飞行器概括喷气式飞机或喷气式飞机是飞行器的一个特定类型)。
关联关系可用于指在两个学习对象之间的一种相关关系。关联关系可帮助用户获得与学习对象相关的事实的更好理解。关联关系描述两个学习对象之间的多种关系,并主要是有方向的(也就是,学习对象之间的关系只在一个方向为真)。如下所述,关联关系的示例包括“确定(determines)”,“并排(side-by-side)”,“可替代的(alternative to)”,“相反于(opposite to)”,“在先于(precedes)”,“上下文(context of)”,“过程(process of)”,“值(values)”,“意义(means of)”,和“亲合性(affinity)”。
“确定”关系描述A和B之间的确定性的相关性(例如,B有原因地依赖A)。可从空间的、概念的、理论的、或本体角度来观察“并排”关系(例如,如果两个知识对象都是上级整体的一部分,则A与B并排是有效的)。“并排”关系可以细分为诸如“相似于”、“取代于”和“类似于”的关系。“相反于”关系暗示两个学习对象关于至少一个品质是相反的。“在先于”关系描述连续的时间关系(例如,A在早于B的时间之前发生(而不是A是B的先决条件))。“上下文”关系基于可以导出相关学习对象的哪一个来描述实际关系和环境关系。学习对象之间的“亲合性”表示在学习对象之间存在紧密的功能相关性(例如,在书和阅读动作之间有亲合性,因为阅读是书的主要功能。)非主题分类关系包括关系“先决条件(prerequisite of)”和“属于(belongs to)”。“先决条件”和“属于”关系不是指要传授的知识的主题分类互连关系。相反,这些关系指在学习环境中的课程进展(例如,当用户遍历(traverse)课程时)。“先决条件”关系是方向性的而“属于”关系是非方向性的。可以将两种关系用于不能进一步细分的知识项514。例如,如果屏幕的尺寸太小而不能在一页显示整个内容,则可将显示内容的页分成由关系“先决条件”连接的两页。
另一种元数据类型定义能力(competency)。可将能力分配到学习对象,诸如,例如,子课程512或学习单元513。可以将能力用于指示和评价用户遍历课程材料时用户的成绩。可将能力分类为认知技能、情绪技能、感觉运动(sensory motor)技能、或社交技能。
与课程相关的内容结构可表示为一组图表。学习对象可表示为图表中的节点。节点属性用于传送与相应学习对象相关联的元数据(例如,名字、知识类型、版本号、能力和/或媒体类型)。两个学习对象之间的关系可表示为一条边。
通过示例,图7表示课程的图表520。将课程分为四个学习对象或节点(531、532、533、534)三个子课程(例如,知识结构、学习环境、以及工具)和一个学习单元(例如,基本概念)。在括号中表示每个节点的节点属性535(例如,标有“基本概念”的节点534具有识别它为学习单元的参考的属性)。此外,已关于每个子课程为学习单元指定表示关系“上下文”的边538。结果,在学习单元中解释的基本概念提供了在三个子课程中所覆盖的概念的上下文。
图8表示图7的子课程“知识结构”531的图表540。在该示例中,将子课程“知识结构”进一步划分为三个节点(541、542和543)学习单元(例如,关于关系的)和两个子课程(例如,覆盖方法主题和知识对象的)。在两个学习对象之间提供表示关系“确定”的边544(例如,子课程“方法”确定子课程“知识对象”和学习单元“关系”)。此外,在括号中示出每个节点的属性545(例如,节点“方法”和“知识对象”具有识别它们为其它子课程的参考的属性;节点“关系”具有作为学习单元的参考的属性)。
图9表示图8所示的学习单元“关系”541的图表546。学习单元包括6个节点(547、549、550、551、552、和553)六个知识项(也就是,“关联关系(1)”,“关联关系(2)”,“关系测试”,“层次关系”,“非主题分类关系”,和“不同关系”)。在知识项“关联关系(1)”和“关联关系(2)”之间提供表示关系“先决条件”的边554。此外,在每个括号中表示每个节点的属性555(例如,节点551“层次关系”包括属性555“示例”和“图片”)。
电子学习策略上述的内容集合和与课程相关的结构并不自动强制执行用户遍历与课程相关的内容的任何顺序。结果,可将不同的顺序规则应用到相同的课程结构以便提供通过课程的不同途径。应用到课程知识结构的顺序规则构成学习策略。当用户进行课程时,学习策略可用于挑取要向用户建议的特定学习对象。在参加课程时,用户可以从多个不同的学习策略中选择。而所选择的学习策略不仅考虑到课程结构的需求而且考虑到用户的偏好。
在传统的教室中,老师确定用于学习课程材料的学习策略。例如,在该环境中,学习进展开始于课程定位,之后是解释(带有示例)、活动、和实践。使用ELS,用户可以在一个或多个学习策略中选择以确定在电子课程中采取哪条路径。结果,不同用户在课程中的进程是不同的。
课程配置课程结构由学习对象的图表组成。可以通过将所选择的学习策略应用到图表而从图表中确定导航树。导航树可用于为用户导航通过课程的途径。根据用户在课程中的位置,在学习入口只向用户显示部分导航树。
将学习策略应用到包括学习对象(节点)、元数据(属性)、和关系(边)的静态课程结构。当(例如,由课程作者)确定了课程结构时产生上述数据。一旦产生课程结构,ELS内容播放器(下述)使用将材料展示给学习入口的用户的策略处理课程结构。可以在展示材料前或展示材料过程中,根据用户需求定制课程。
体系结构如图10所示,在其上实现ELS的体系结构556包括学习站557和学习系统559。用户可使用学习站557(例如,学习入口)访问课程材料。可使用工作站、计算机、便携计算设备、或能够执行指令并连接到网络的任何智能设备实现学习站557。
学习站557可包括有利于访问和使用课程材料的任何数量的设备和/或外围设备(例如,显示器、存储器/存储设备、输入设备、接口、打印机、通信卡和扬声器)。可由学习站557访问的存储器(例如,在本地或远程服务器上)包括本地存储库。本地存储库存储学习对象的“本地”版本,该版本可由用户访问,但不是可由整个ELS访问。下面描述在ELS中使用本地存储库。
学习站557可执行任何数量的软件应用程序,包括被配置以访问用户、向用户解释及向用户展示课程和相关信息的应用程序。可以使用浏览器来实现软件,诸如,例如,Netscape communicator、Microsoft’s Internetexplorer、或可以用于解释和处理诸如HTML、SGML、DHTML、或XML的标记语言的任何其它软件应用程序。浏览器也可以包括允许浏览器解释、处理、和展示不同类型信息的一个或多个软件插件程序。浏览器可以包括任何数量的应用程序工具,诸如,例如,Java、Active X、JavaScript、和Flash.
浏览器可用于实现允许用户访问学习系统559的学习入口。可以配置在学习站557和学习系统559之间以及学习系统559的不同元素中的链接560以发送和接收信号(例如,电子的、电磁的、或光学的)。此外,链接可以是使用电磁信号(例如,无线电、红外线、到微波)的无线链接以在学习站和学习系统之间传送信息。
ELS可包括一个或多个服务器。如图10所示,学习系统559包括学习管理系统564、内容管理系统565、和执行管理系统566。可使用一个或多个服务器、处理器、或智能网络设备/机器来实现这些系统。
可以使用服务器,诸如,例如SAP R/34.6C+LSO Add-On实现执行管理系统566。执行管理系统566可包括用户账号和课程信息数据库,包括对于用户的ELS配置信息。例如,用户账号可以包括包含关于用户的人口统计数据(如,姓名、年龄、性别、地址、公司、学校、账号、和帐单)以及他/她在课程材料中的进展(如,访问地点、完成的测试、获得的技能、获取的知识、以及使用材料的能力)的简档(profile)。执行管理系统566也可以提供关于课程的其它信息,诸如提供的课程、课程作者/辅导员、以及最受欢迎的课程。
内容管理系统565可包括学习内容服务器。可使用WebDAV服务器来实现学习内容服务器。学习内容服务器可以包括主内容库。主内容库,这里也称为主存储库,存储上述的用于向学习站557的用户展示课程学习对象。主存储库存储在整个ELS有效的对象。更确切的说,虽然可将对象的不同版本存储在各种本地存储库中,但只有存储在主存储库的对象可以被ELS的任何用户访问。只要用户不需要移动对象版本到主存储库/从主存储库移动对象版本,那么用户可以在本地存储库工作,而不连接到主存储库。该工作模式称为“离线情景”。在本地存储库工作,同时连接到主存储库被称为“在线情景”。
可通过称为存储库资源管理器的计算机程序来管理主存储库和本地存储库。存储库资源管理器可以在学习站上运行,并可与本地存储库和主存储库两者通信。可使用合适的网络连接来实现通信。
学习管理系统564可包括内容播放器570。可使用在诸如,SAP J2EE引擎的服务器上运行的软件来实现内容播放器570。内容播放器可在学习管理系统564上运行或者下载到用户计算机并在该计算机上本地运行。
内容播放器570从本地和/或主存储库获得课程材料(也就是,学习对象),并向用户展示这些对象的内容。内容播放器570还将学习策略应用到获得的课程材料中以为用户产生导航树。导航树用于为用户建议在课程材料中的路径,并根据用户选择的学习策略为用户产生课程材料的展示。学习管理系统564还可以包括用于与执行管理系统566交换信息的接口。例如,当用户进行课程材料时内容播放器570通过到执行管理系统566的接口更新用户相关信息。
内容播放器570在不同版本中是可用的。内容播放器的每个版本都包括与一个或多个版本专有模块耦合的应用程序核心。如上所述,应用程序核心包含内容播放器的所有版本共同的核心功能。版本专有模块包含内容播放器的特定版本特有的功能,也就是说,不是内容播放器的所有版本共同的。
在这个实现中,内容播放器570在标准版本是可用的。当用户在线工作时,也就是与主存储库连接时,可以使用标准版本。内容播放器570的这个版本包含到主存储库的引用,该引用使内容播放器能够在主存储库中检索和播放内容。内容播放器在编辑环境版本也是可用的。在开发电子学习内容时使用该版本。编辑环境版本在创作者计算机上预览新产生的内容,因此,使创作者可以“调试”内容。内容播放器570在离线版本中也是可用的。内容播放器的该版本从用户本地存储库检索和播放内容。
参见图4,可以使用处理400获得适合用户需求的内容播放器版本。更确切的说,按照处理400,用户获得对来自,例如学习管理系统564的内容播放器的访问。如所述的,内容播放器570可以从学习管理系统564运行,或者可以下载到用户计算机,并从用户计算机运行。为了激活内容播放器,用户提供(410)一个唯一标识符到,例如,执行管理系统566。执行管理系统566确定(415)内容播放器的哪个版本已被许可或已由用户购买。
在确定版本后,执行管理系统566向用户提供(420)用于与内容播放器一起使用的模块链接。执行管理系统566用用户的公钥来加密(425)模块链接。将加密的模块链接安装在内容播放器内,或可由内容播放器访问(430)。用用户的私有标识符解密(440)模块链接。然后,内容播放器的应用程序核心使用模块链接以获得内容播放器需要的版本专有模块,例如,从内容管理系统565或任何其它地点例如ELS的网站。
其它实现上述的处理并不限于用于这里描述的硬件和软件;会发现它们在任何计算或处理环境以及能运行机器可读指令的任何类型机器都是可用的。
可以在数字电子电路、或在计算机硬件、固件、软件、或它们的组合中实现该处理。该处理可实现为计算机程序产品,也就是可触摸地物化在信息载体上的计算机程序,信息载体例如是在机器可读存储设备中或在传播信号中,用于由例如可编程处理器、计算机或多个计算机的数据处理设备执行或控制该数据处理设备的操作。能以任何形式的编程语言编写计算机程序,包括编译或解释语言,并且可以以任何形式,包括以单机程序或以模块、组件、子例程、或其它适合在计算环境中使用的单元配置该计算机程序。可以配置计算机程序以在一台计算机上或在一个站点的多台计算机上执行或分布在多个站点并由通信网络互连。
可以由执行计算机程序的一个或多个可编程处理器执行这里描述的处理的方法步骤以执行上述功能。专用目的逻辑电路例如,FPGA(现场可编程门阵列)或ASIC(特定应用集成电路)也可以执行方法步骤,并且ELS的部分可以实现为专用目的逻辑电路。
适合于执行计算机程序的处理器包括例如,通用和专用目的微处理器,以及任何种类数字计算机的任何一个或多个处理器。一般来说,处理器接收来自只读存储器或随机存取存储器或两者的指令和数据。计算机的组件包括执行指令的处理器以及存储指令和数据的一个或多个存储设备。一般来说,计算机还包括例如,磁盘、磁光盘或光盘的用于存储数据的一个或多个大容量存储设备,或可操作地被耦合以从该大容量存储设备接收数据或传送数据到该大容量存储设备,或者这两者。适合用于物化计算机程序指令和数据的信息载体包括所有形式的非易失存储器,包括作为示例的半导体存储设备,例如,EPROM、EEPROM、以及闪存存储设备;磁盘,例如,内部硬盘或可移出盘;磁光盘;以及CD-ROM和DVD-ROM盘。可以由专用逻辑电路补充处理器和存储器,或该处理器和存储器可以并入到专用逻辑电路中。
可以在计算机系统中实现这里描述的处理,该计算机系统包括例如作为数据服务器的后端组件,或包括例如应用服务器的中间件,或包括例如客户计算机的前端组件,该客户计算机具有图形用户界面或网络浏览器,通过该图形用户界面或网络浏览器用户可以与记录提取器(extractor)的实现相交互,或该计算机系统包括这些后端、中间件、或前端组件的任何组合。可以通过任何形式或数字数据通信的媒体,例如通信网络互连系统的组件。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”),例如互联网。
该计算系统可以包括客户机和服务器。客户机和服务器一般相隔遥远并典型地通过通信网络交互。依靠在各自计算机上运行并互相具有客户机-服务器关系的计算机程序而发生客户机和服务器的关系。
已经描述了许多实施例。然而,应该明白可以做出各种更改。例如,如果以不同顺序执行所公开技术的步骤和/或以不同形式结合和/或由其它组件代替或补充在所公开的系统、体系结构、设备或电路中的组件,则会获得有利的结果。
其它实施例也在下面权利要求的范围中。
权利要求
1.一种提供对软件应用程序的访问的方法,该软件应用程序包括应用程序核心和版本专有功能,该方法包括启动对应于用程序核心的访问;确定软件应用程序的版本;和提供对应于该版本的模块链接,该模块链接用于启动对版本专有功能的访问。
2.如权利要求1所述的方法,其中应用程序核心包括应用程序的多个版本共有的软件,以及版本专有功能包括对软件应用程序的版本特定的的功能。
3.如权利要求1所述的方法,进一步包括在提供模块链接之前加密模块链接。
4.如权利要求3所述的方法,其中用对应于软件应用程序的用户的公钥加密模块链接。
5.如权利要求4所述的方法,进一步包括接收用于加密模块链接的公钥。
6.如权利要求1所述的方法,其中模块链接通过引用版本专有功能来启动对版本专有功能的访问。
7.如权利要求1所述的方法,其中模块链接通过下载版本专有功能以及将版本专有模块并入应用程序核心来启动对版本专有功能的访问。
8.如权利要求1所述的方法,其中模块链接包括应用程序核心的配置设置。
9.如权利要求1所述的方法,进一步包括接收对应于软件应用程序的用户的标识信息;其中使用该标识信息来确定软件应用程序的版本。
10.如权利要求1所述的方法,其中软件应用程序包括在电子学习系统中的内容播放器,以及版本专有功能对应于在线内容播放器、编辑环境内容播放器、以及离线内容播放器中的至少一个。
11.一种计算机程序产品,用于提供对包括应用程序核心和版本专有功能的软件应用程序的访问,该计算机程序产品可触摸地物化在信息载体中,该计算机程序产品可操作以使机器启动对应于用程序核心的访问;确定软件应用程序的版本;和提供对应于该版本的模块链接,该模块链接用于启动对版本专有功能的访问。
12.如权利要求11所述的计算机程序产品,其中应用程序核心包括应用程序的多个版本共有的软件,以及版本专有功能包括对于软件应用程序的版本特定的功能。
13.如权利要求11所述的计算机程序产品,其中该计算机程序产品可操作以使机器在提供模块链接之前加密模块链接。
14.如权利要求13所述的计算机程序产品,其中用对应于软件应用程序的用户的公钥加密模块链接。
15.如权利要求14所述的计算机程序产品,其中该计算机程序产品可操作以使机器接收用于加密模块链接的公钥。
16.如权利要求11所述的计算机程序产品,其中所述模块链接通过引用版本专有功能来启动对版本专有功能的访问。
17.如权利要求11所述的计算机程序产品,其中所述模块链接通过下载版本专有功能以及将版本专有模块并入应用程序核心来启动对版本专有功能的访问。
18.如权利要求11的计算机程序产品,其中所述模块链接包括应用程序核心的配置设置。
19.如权利要求11所述的计算机程序产品,其中该计算机程序产品可操作以使机器接收对应于软件应用程序的用户的标识信息;以及其中使用该标识信息来确定软件应用程序的版本。
20.如权利要求11所述的计算机程序产品,其中该软件应用程序包括在电子学习系统中的内容播放器,以及版本专有功能对应于在线内容播放器、编辑环境内容播放器、以及离线内容播放器中的至少一个。
21.一种电子学习系统,包括提供课程内容的第一系统;提供展示课程内容的内容播放器的第二系统;以及第三系统,用于识别展示课程内容的内容播放器的版本,并提供与内容播放器一起使用的模块链接,该模块链接用于访问与展示课程内容的内容播放器的版本相关的功能。
22.如权利要求21所述的电子学习系统,其中所述内容播放器包括应用程序核心,该应用程序核心包含在内容播放器的不同版本中所共有的功能,应用程序核心与由模块链接访问的功能一起操作以展示课程内容。
23.如权利要求21所述的电子学习系统,其中所述第一系统包括存储课程内容的主存储库。
24.如权利要求23所述的电子学习系统,其中所述内容播放器访问来自主存储库的内容。
25.如权利要求21所述的电子学习系统,其中将所述内容播放器提供给本地计算机,该本地计算机访问课程内容的本地存储库。
26.如权利要求25所述的电子学习系统,其中所述内容播放器访问来自本地存储库的内容。
27.如权利要求21所述的电子学习系统,其中所述第三系统在提供模块链接之前,加密模块链接。
28.如权利要求21所述的电子学习系统,其中所述第三系统用对应于软件应用程序的用户的公钥来加密模块链接。
全文摘要
本方法提供对包括应用程序核心和版本专有功能的软件应用程序的访问。该方法包括启动对应于用程序核心的访问,确定软件应用程序的版本,以及提供对应于该版本的模块链接。该模块链接可以是启动对版本专有功能的访问的软件接口。
文档编号G06F21/00GK1619458SQ20041010385
公开日2005年5月25日 申请日期2004年11月1日 优先权日2003年10月31日
发明者迈克尔·奥尔滕霍芬 申请人:Sap股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1