Agent技术的结构,第1张

当初,人们在研究并发计算的过程中,为了刻划若干个同时处于执行过程中的计算单位,引入了"进程"的概念,并逐步形成了具有特定技术内涵的进程结构。当今,人们在研究分布计算的过程中发现,分布式系统中广泛存在着用已有的计算机概念难以准确描述的自主行为实体,于是引入了"Agent"的概念。因此研究Agent的体系结构成为分布计算领域的重要课题。

Agent的体系结构是指构造Agent的特殊方法学,它描述了组成Agent的基本成分及其作用、各成分的联系与交互机制、如何通过感知到的内外部状态确定Agent应采取的不同行动的算法,以及Agent的行为对其内部状态和外部环境的影响等等。目前,人们已提出的Agent的体系结构大致可分为以下三类。

1 审慎式体系结构(Deliberative Architecture)

该体系结构的特点是Agent中包含了显式表示的世界符号模型,Agent的决策是通过基于模板匹配和符号操作的逻辑(或准逻辑)推理作出的,如同人们通过"深思熟虑"后作出决定一样,因此被称为审慎式的体系结构。该体系结构在(分布式)人工智能领域占主导地位。我们可以认为构造经典的基于知识的系统,就是按照这种体系结构构造Agent的雏形的。因此,也可以说该体系结构的存在与现代人工智能的历史一样长。

2 反应式体系结构(Reactive Architecture)

该体系结构的特点是Agent中包含了感知内外部状态变化的感知器、一组对相关事件作出反应的过程,和一个依据感知器激活某过程执行的控制系统,Agent的活动是由于受到内外部某种"刺激"而发生的,因此被称为反应式的体系结构。该体系结构在目前主流的分布式系统中占主导地位。本文列举的分布式应用中所涉及的Agent基本上是反应式体系结构。

我们甚至可以认为一个计算机基本系统,也是一个按照这种体系结构构造的Agent的雏形。

因此,也可以说该体系结构的存在与现代计算机系统的历史一样长。

3 混合式体系结构(Hybrid Architecture)

该体系结构的特点是Agent中包含了审慎式和反应式两个子系统,通常这两个子系统是分层次的,前者建立在后者的基础之上。这种体系结构的研究与实验目前在人工智能领域较为活跃,我们认为有关成果将对分布式系统中Agent应用功能的增强产生直接影响。例如,已经有研究工作在模拟飞行员的Agent中加入基于符号表示和推理的各种规划与决策能力,以提高模拟飞行员的适应性。

目前,我们正在研究开发一种具体的反应式Agent体系结构。在该结构中,Agent由事件处理系统、方法集和内部状态集三个主要成分构成。其中,事件处理系统是Agent的行为控制系统。Agent的活性表现为它的事件处理系统,在该Agent的生命期内始终持续自主地工作着。在该结构中,事件是与Agent有特定关联的特殊状态(如外部某服务请求到达、内部某特定状态被修改或超过设定的阈值等)。事件处理系统涉及事件感知、事件适配和事件处理分发3个环节的活动。Agent的事件感知器时刻捕捉其所关注的事件状态的出现,并根据事件状态的类型启动相应的事件适配器工作;事件适配器获取相关事件信息作识别,并将识别结果提交给相应的事件处理分发器,启动有关的事件处理方法执行。Agent的方法集体现了该Agent事件处理能力的成分,描述了Agent处理相关事件的方法。方法的执行由事件处理分发器引发,在其执行过程中可能影响Agent的内部状态,从而导致新事件的发生。Agent的内部状态集是表现该Agent当前状态的成分,其中包括表征事件的状态。在Agent的行为过程中,该Agent的内部状态可能会不断发生变化。

Agent之间的消息传递机制通过消息事件的处理实现。假设Agent A具有消息事件的处理能力,其接收服务请求的典型工作过程如下:一个传递给A的服务请求导致消息事件的发生。A的(消息)事件感知器将及时检测该事件的发生,从而引发A的(消息)事件适配器接收此消息;消息事件适配器按照Agent之间的消息传递协议,分析识别该消息为服务请求类型,进而引发A的(请求)事件处理分发器,并将有关适配信息提交给该分发器;(请求)事件处理分发器则根据适配信息选择相应的服务方法执行。

Agent的事件处理机制不仅可以有效地实现客户/服务器计算中传统的客户直接请求/服务器被动服务的机制,而且为实现Agent之间以及Agent与外部环境之间更为主动灵活的交互机制奠定了基础。例如,通过定义特定的故障事件,使担负系统管理的Agent能够主动向Manager报告关键故障的发生,甚至独自处理故障;通过定义特定的时钟事件,可以实现Agent之间以及Agent与用户之间的定时服务;通过定义特定的内部状态修改事件,实现Agent之间共有信息副本的一致性维护;通过定义特定的信息查询事件,使Agent在收到与查询相关的信息后,主动向信息需求者提供信息服务等等。

Microsoft Agents 介绍

这一天终于到来了。你现在可以逐字地告诉你的计算机运行一个报告,阅读一封信或者播放一首歌曲。本文将介绍如何利用Agent的文字到语言的转换功能。你将学会如何扩展VBA使其包括ActiveX,如何编写一个调用Agent来大声朗读活动Word文档的应用程序。

与包括Microsoft Office Assistant 在内的任何前辈都不相同,Microsoft Agent 15使用多个角色--Genie, Merlin, 和 Robby(见图1)--来提供人/机接口。每个角色都经过三维处理,并具有一套独特的卡通制作。

Agent的 第一个使命:仅仅露一面

在第一个项目中,我们将编写一个测试过程来证实Agent极其组件已被正确安装。第一次,我们不要求太多的东西;仅仅需要Agent露一面说几句话即可。我们将使用Genie来测试运行。

首先启动Microsoft Word 97,通过按住AL!(或选择Tools | Macro | Visual Basic Editor)来激活Visual Basic Editor。下一步,单击Project Explorer,或按Cr。该操作将为你提供一个列表,里面包含了你已经打开的所有项目。请选中Normal项目(关于Normal的更为详细的信息,请参阅第5页的"Normal模板")。

创建表单。通过从Project Explorer或菜单中选择Insert | UserForm来插入一个表单。通过在Properties窗口中改变如下属性来修改UserFform(为了显示Properties窗口,可能需要按4键)。

Caption: Agent Control Form

Width: 100

Height: 85

在表单上放置两个CommandButtons。然后将它们的Caption属性改为Start Agent和Stop Agent,以便它们可以在图2中出现。

控制和引用。对于每个新项目,向DLL和OCX添加包含有过程、方法和你正在引用的其他代码的引用是十分重要的。选中Tools | References来激活References对话框。向下滚动,并选中Microsoft Agent Control 15。

下一步,确认Toolbox已通过单击或从View | Toolbox菜单中选中而激活。通过选中Tools | Additional Controls来激活Additional Controls对话框;找到阅读Microsoft Agent Control 15的行,并单击它的复选框。完成之后,你将看到Agent图标位于Toolbox的下半部分(见图3)。

下一步,我们要编写可以使Genie出现和消失的子程序。首先请单击顶部标签为Start Agent的按钮。你将看到Visual Basic IDE已经启动了CommandButton1_Click子程序。向顶部滚动,输入如下的语句:

Const DATAPATH = _

"C:\Program Files\Microsoft Agent\Characters\genieacs"

Dim Genie As IAgentCtlCharacter

Dim SpeakString As String

图4中列出了全部的代码。这些语句声明了必要的变量和常量。Microsoft建议在所列出的目录中安装Agent角色文件(ACS文件),但你也可以将它们放在其他地方--只要你为DATAPATH常量输入了正确的路径即可。

Option Explicit

Const DATAPATH = _

"C:\Program Files\Microsoft Agent\Characters\genieacs"

Dim Genie As IAgentCtlCharacter

Private Sub UserForm_Activate()

Agent1CharactersLoad "Genie", DATAPATH

Set Genie = Agent1Characters("Genie")

End Sub

Private Sub CommandButton1_Click()

GenieShow

GenieMoveTo 100, 100

GenieSpeak "My name is Genie Your wish is my command"

End Sub

Private Sub CommandButton2_Click()

GenieMoveTo 350, 250

GenieHide

End Sub

Private Sub UserForm_Deactivate()

Set Genie = Nothing

End Sub

图4 本代码阐述了基本的Genie控制

当UserForm被激活的时候,可以创建如下将被执行的代码:

Private Sub UserForm_Activate()

现在我们通知Agent对象将Genie 角色加载到它的Characters集合之中,这样我们就可以访问它了:

Agent1CharactersLoad "Genie", DATAPATH

下一步,使用Set语句来简化后面的代码:

Set Genie = Agent1Characters("Genie")

这不是必需的,但以后的语句需要精心编制。例如,需要如下语句来显示Agent:

Agent1Characters("Genie")Show

这样则更加直接:

GenieShow

下一行为SpeakString变量赋了一个值。在本例中,我们通知Microsoft Agent介绍它自己,然后为语音识别输入做准备(在本例中,我们不为该部分编写代码)。

SpeakString = "My name is Genie Your wish is my command"

让我们通过调用Genie并让它朗读SpeakString的值来完成代码。我们将编写CommandButton1_Click子程序来完成该项任务。Show是用来让用户可以看见Genie的命令,Speak将触发Microsoft的文字到语音转换工具朗读在它前面的文字。

Private Sub CommandButton1_Click()

GenieShow

GenieSpeak SpeakString

End Sub

CommandButton2_Click子程序将把Genie隐藏起来。

Private Sub CommandButton2_Click()

GenieHide

End Sub

最后,完成之后,我们必须通过使用如下语句来销毁Agent对象:

Private Sub UserForm_Deactivate()

Set Genie = Nothing

End Sub

现在你就可以准备启动Agent了。通过单击Run按钮,或按5键来测试一下,看看你的计算机是否已被正确设置了。该操作将激活这个表单,Agent服务器将在加载表单的时候初始化,在用户退出表单的时候销毁。当按下Start Agent按钮的时候,Genie将出现并说:"My name is Genie Your wish is my command"(如图5所示)。它将在按下Stop Agent的时候消失。

因为我们正在从模型对话框中操作Agent,所以这种实现并不是非常现实的,尽管它完全可用于示范或开发。下一步,我们将做一些更加有用的工作;我们将把Agent融入Word 97,并让Robby为我们朗读。

Agent'的第二个使命:为我朗读

目标是在Word 97中放置一个按钮,当按下它的时候,将调用将要大声朗读活动文档的Agent--这是从另一个侧面了解你的作品的好方法。

让我们从字符路径常量的声明开始:

Const ROBBYPATH = _

"C:\Program Files\Microsoft Agent\Characters\robbyacs"

用于Agent 和角色的变量为:

Dim MSAgent As Agent

Dim Char As Object

像以前一样,然后我们使用New关键字来创建一个Agent对象:

Set MSAgent = New Agent

在创建完Agent对象之后,我们必须启动Agent ActiveX服务器。为了实现这一点,我们将Agent对象的Connected属性设置为True:

MSAgentConnected = True

然后,我们加载字符并将它分配给Object变量:

MSAgentCharactersLoad "Robby", ROBBYPATH

Set Char = MSAgentCharacters("Robby")

准备工作就做完了。现在该轮到我们的Agent表现了。

He walk…

控制Agent的屏幕行为是很简单的。大部分操作可以通过使用Character对象的Play函数来实现。Play函数有一个参数--一个由Animation字符串组成的字符串。例如,如下语句将导致Robby 挥手致意:

CharPlay "Wave"

而如下语句将导致他向右移动(Robby使用一个黑色背包移动):

CharPlay "MoveRight"

图6列出了一个用于Robby的Animation字符串的小子集,而图7到11则显示了其中的几个。正如你所看到的,Robby可以做很多动作。可提供的Animation字符串随角色的不同而不同,因此你需要获得有关每个你想使用的角色的资料。例如,在用于Robby 的Microsoft Agent Animations中,Robby有94个Animation字符串。

Animation描述

Acknowledge Nods head

Alert Straightens and raises eyebrows

Announce Prints output and reads

Blink Blinks eyes

Declines Raises hands and shakes head

DontRecognise Holds hand to ear

GestureLeft Gestures to the left

GestureRight Gestures to the right

GetAttention Raises and shakes arms

GlanceLeft Looks left briefly

GlanceRight Looks right briefly

Hear_1 Turns head left

Idle2_1 Crosses arms

Idle2_2 Removes head and makes adjustment

LookLeft Looks to the left

MoveUp Flies up

Processing Presses buttons in looping animation

Reading Reads in looping animation

Sad Makes sad expression

Searching Looks through toolbox in looping animation

Think Tilts head and scratches

Wave Waves

Write Takes out clipboard, writes and looks up

图6 为Robby角色选择Animation字符串的子集:共有94个

不过,使用Play,Robby将保留在相同的屏幕位置里。为了实际上在屏幕周围移动Agent,你可以使用Character对象的MoveTo过程,该过程有两个参数--x和 y屏幕坐标。下面是一个例子:

CharMoveTo 200, 300

如果你想让角色仍然移动到屏幕之上,可以在调用Show之后使用MoveTo;在第一次引用时,如果你想让角色出现在特定的位置,可以在调用Show之前使用MoveTo来放置Agent。既然我们已经知道如何创建Agent手势以及如何移动它,那么就让我们使Robby说话吧。

He Talks

让Robby说话也是很简单的;只需使用Character对象的Speak函数即可。Speak函数有一个参数--将要朗读的文字。文字可以有几种形式,包括文字串、文本文件或URL。在我们的例子中,我们想让Agent朗读一个Word文档,因此我们使用如下的语句:

CharSpeak ActiveDocumentContent

如果你做过任何Word 97 VBA编程,那么就会明白ActiveDocumentContent指的是ActiveDocument属性的Content属性,换句话说,就是当前选定的Word文档的主体文字。这条语句将导致Robby在文字气球中显示相关的文字的同时,大声朗读文档。多棒啊!

这条独立的语句是可以工作的,但是我们可以做得更好。步骤如下:

CharPlay "Read"

CharSpeak ActiveDocumentContent

CharPlay "Readreturn"

这几条语句将导致Robby从它的胸部打印出一些输出,在完成之后释放文档,以及在实际朗读之前开始阅读。"ReadReturn" Animation将导致Robby返回,在阅读之后停在中间位置。许多动画都与"Return"动画相关联,因此可以做到动作之间的平滑转换。

现在,让我们将所学到的东西融合在一起,为Robby将要完成的一个短的动作序列编写脚本。我们将把它放在一个脚本之中,以便可以从Word 97中调用它,如图12所示。

Option Explicit

Const ROBBYPATH =

"C:\Program Files\Microsoft Agent\Characters\robbyacs"

Dim MSAgent As Agent

Dim Char As Object

Sub Speak()

Set MSAgent = New Agent

MSAgentConnected = True

MSAgentCharactersLoad "Robby", ROBBYPATH

Set Char = MSAgentCharacters("Robby")

With Char

Top = 125

Left = 185

Show

Play "Greet"

Play "GreetReturn"

MoveTo 600, 400

Play "Read"

Speak ActiveDocumentContent

Play "ReadReturn"

Play "Idle2_2"

Play "Wave"

Play "WaveReturn"

Hide

End With

End Sub

图12 VBA代码让Robby在屏幕上特定的坐标位置出现,挥手致意说喂,飞向屏幕的右下角,朗读活动的Word 97文档,完成调整,挥手致意说再见,和消失。

下一步,我们必须在Word中做一点工作。

He Crawls on His Belly Like a Reptile

为了将新的宏与自定义的工具栏关联起来,请选择View | Toolbars | Customize来显示Customize对话框。单击New按钮。为新工具栏取名为"Agent",使其可以提供给Normaldot。这个工具栏现在就可以使用了。在Customize对话框中,单击Commands页并选中Macros。 NormalNewMacrosSpeak宏现在就应该可以使用了;将它拖向工具栏,然后在I光出现之后释放它。右击该按钮,将它的名字改为"Read",如果你喜欢的话,还可以为它提供一个图标。

通过返回到Customize对话框并再次选中该对象可以从菜单中调用新宏。这次,将它拖向Tools菜单(但不让它走)。这个菜单将打开并滚向底部。当你在自己希望的位置看到I光线之后,释放按钮。可以按照与以前相同的方式改变菜单项的属性--通过右击。

结论

我们已经介绍了Microsoft Agent的基础知识,并且列出了你探索Agent的潜力所需要的软件和硬件。然后我们继续利用Agent的语音功能来实现一个有用的Word宏来大声朗读文档。

记住Agent可以作为ActiveX提供也是十分重要的。这就意味着它可以使Web站点更加充满活力。例如,你可以访问位于http://wwwargolinkcom/agent/merlinscorner/druidxiconhtml (见图13)的Argo Technologie的Web站点。你还可以从Microsoft的 Agent页(当你探索Microsoft Agents的时候,将对这个页面十分熟悉)链向它和其他启用了Agent的站点。

图13 你可以在Argo Technologies站点的Web上看到Microsoft Agent在运行

图14 了解这个站点;正在用有价值的工具和信息加载

本文仅仅涉及到了一些表面的知识。Microsoft Agent是一项主要的技术(光Programming the Microsoft Agent Control文档就有75页!),因此在熟练之前,你将需要花上一段时间。好消息是,你将体会到很多乐趣。

本文中所引用的文件可以从Informant Web站点下载,网址为:http://wwwinformantcom/mod/modnewuplhtm:文件名为 MOD9801SLZIP。

1 引 言

Authorware是Macromedia公司出品的专业进行多媒体程序设计的工具,是目前公认的功能强大的交互式多媒体软件,广泛地应用到教学、商业、影视等领域。Microsoft Agent是微软公司发布的一项代理软件开发技术,作为一种软件代理工具,Agent以其强大的交互功能、鲜明的人性特点、优美的操作界面和简便统一的编程方法,对由菜单、按钮、提示框等组成的传统人机交互方式产生了很大影响,在多媒体创作、Web应用、教育软件、软件帮助系统和辅助工具制作等方面,具有广阔的应用前景。

本文就针对Microsoft Agent技术在Authorware中的使用进行讨论。

2 Microsoft Agent介绍

MicrosoftAgent最早出现在Office的帮助中,微软称之为“Office助手”。最新版本是Agent 2.0,支持简体中文。Microsoft Agent作为一种软件代理工具,主要作用是提供一种易于理解和使用的操作界面,接受用户的指令、代替用户完成某些复杂繁琐的工作、或为用户提供帮助。Microsoft Agent发展到2.0版,比以前版本有较大的改进。主要表现在:

(1)他采用了基于COM的ActiveX控件方式,使得Microsoft Agent可以加入到普通应用程序中供本地系

统使用,也可以把他嵌入到HTML文档中供Internet/Intranet使用。Microsoft Agent支持C/C++,VisualBasic,Java,JScript和VBScript等多种编程语言。

(2)Agent中的提供了多个动画角色,每个动画角色又提供了丰富的动作,如:听、说、玩魔术、鼓掌、悲伤、再见等。另外Agent动画角色本身是一个“AlwaysOnTop”窗口,只有人物身体部分挡住背景,使得他具有更好的视觉效果。

(3)Agent更为显著的特点是结合了语音功能,Agent角色不仅能说话,而且还能听懂用户发出的命令。

3 在Authorware 6.0中使用Microsoft Agent 2.0

(1)使用Microsoft Agent 2.0所需要的基本支持文件及说明如表1所示。

(2)在Authorware 6.0中使用Microsoft Agent2.0的原理和方法

由于Microsoft Agent采用了基于COM的ActiveX控件方式,我们要使Authorware能够使用Microsoft Agent,就必须访问MicorsoftAgent组件接口。Authorware不能直接对Microsoft Agent的接口进行编程,但可通过MsAgent.u32来访问Agent。实现原理图如图1所示。

当Authorware需要使用Agent时,MsAgent.u32的函数首先通过访问Agent SCM(Service ControlManager)来激活Agent服务器程序(即AgentSvr.exe),使得客户程序(Authorware)与服务器(MsAgent)建立通信。这样Authorware就可以使用Agent组件提供的各种功能。

在实际的使用中,首先要安装MicrosoftAgent中的支持文件,然后加载MSAgent2.u32并添加其提供的对Agent角色编程的函数,这样就可以像使用系统函数一样在程序中使用MsAgent2.u32中的函数对角色进行操作了。在Authorware中对Agent角色操作的流程如图2所示。

(3)使用Msagent2.u32中的函数对Agent角色编程

①加载Agent动画角色语法:maCharsDir()

说明:该函数返回Agent角色所在的文件目录(在Windows 98/2000/Me中是C:\windows\msagent\chars,Windows NT中是C:\winnt\msagent\chars)。

语法:Id:=maLoad(“Filename”)

说明:该函数用于加载由Filename指定的Agent角色,若加载成功,返回该Agent角色的Id的值,否则返回0。

②显示Agent动画角色

语法:maShow(Id,x,y,AutoPopupMenu,HideOnIdle)

说明:该函数是在(x,y)处显示加载的Agent角色。参数AutoPopupMenu为1时,允许使用鼠标右键快捷菜单;为0时,禁止使用。参数HideOnIdle为1时,当Agent角色空闲时自动隐藏。对于*.ACS格式的Agent角色,只有Agent角色被加载后,才能使用该函数显示指定Agent角色。

例如:

例子首先加载Agent角色Merlin,Merlin位于C:\window\msagen\chars\目录下,然后在(10,30)点处显示Agent角色,当我们点击右键时,会出现快捷菜单。

当然,我们也可以在一个窗口中加载多个Agent角色(但不能是同一个角色),分别对他们操作,互不影响。如下面的例子同时把Merlin,Peedy这2个Agent角色显示出来。例:

③对指定的Agent角色进行各种动作操作语法:maAnimationNames(Id)

说明:返回指定Agent角色的动作列表。

Microsoft提供的每个Agent角色都有十几个动作,我们可以通过下面的方法显示出来,以方便我们操作。加入Display图标,设置文本格式为Scrolling text,输入:“Agent角色动作{maAnimationNames(MyAgentId)}”,这样我们就可以对Agent角色的动作一目了然。

语法:maGesture(Id,x,y)

说明:Agent角色在(x,y)处打手势

语法:maMove(Id,x,y)

说明:将Agent角色移动到(x,y)处。

语法:maPlay(Id,“Animation”)

说明:演示特定的动作Animation.

语法:maSpeak(Id,“text”,“Wavefile”)

说明:说出指定的文本或声音文件。参数“text”为说的内容,参数“Wavefile”为说的输出指定的音频文件。两个都是可选参数,但使用该函数时至少要提供一个。如果安装有语音引擎和文本-语音转化引擎(TTS),可以同时将text指定的文本转化为语音输出,此时只需提供text参数,Agent角色将在文字气球(Word Balloon)中显示text的内容的同时,播放text的语音。

例如:text:=“Hi!This is a sample!”

maSpeak(MyAgentId,text,“”)maSpeak(MyAgentId,text)

在例子中后一个maSpeak函数可以把text的内容在文字气球中显示出来,同时朗读该句话。对于中文的语音输出,由于没有相应的中文文本-语音转化引擎(TTS),只能先将text的内容由其他方式转化为声音文件,然后再使用maSpeak。如:

text:=“这个例子主要演示Agent的语音功能”

maSpeak(MyAgentId,text,“s_text.wav”)

其中:s_text.wav是设计者提供的text内容对应的声音文件。

语法:maStopAll(Id)

说明:停止Agent角色的演示动作。

④Agent角色属性的获取与设置

语法:Height:=maGetHeight(Id)

说明:若操作成功,返回Agent角色的高度。

语法:Width:=maGetWidth(Id)

说明:若操作成功,返回Agent角色的宽度。

语法:maSetHeight(Id,Height)

说明:设置Agent角色的高度。

语法:maSetWidth(Id,Width)

说明:设置Agent角色的宽度。语法:maPropertySheet()

说明:显示Agent角色的一些高级选项。如输出的语速,文字气球(Word Balloon)中的字体等。

⑤Agent角色的隐藏

语法:maRemove(Id)

说明:立即将指定的Agent角色从屏幕上移去。

语法:maHide(Id)

说明:隐藏指定的Agent角色。

(4)发布包含Microsoft Agent的程序

由于使用了Microsoft Agent,因此在发布程序时要注意以下问题:

①由于所有的ActiveX对象都必须注册到系统的注册表中,因此在发布时应该把Msagent.exe包含进来,以便包含Microsoft Agent这个ActiveX控件的服务器程序能够正确地运行;

②把Msagent2.u32放置在由系统变量FileLocation所确定的目录下;

③正确确定Agent角色文件所存储的位置;

④正确创建安装程序,以便Msagent.exe能够在后台自动得到安装;常用的方法是借助/Q命令行参数,即Msagent.exe/Q;

⑤如果要使用语言引擎Text-to-Speech Engine (如Lernout&Hauspie控件)。也应该将其安装到用户的计算机上。同样要使用/Q命令行参数使其在后台得到安装。

4 结 语

如果我们能恰当地使用Microsoft Agent技术,一定能制作出界面更加友好、更具人性化的多媒体软件。另外如果你对Microsoft Agent中提供的角色不太满意,你还可以利用MicrosoftAgent中提供的角色编辑器和一些动画制作软件制作属于自己的角色。

是可下载的应用程序。

可使您完全了解戴尔服务器基础架构。

主动识别IT环境中的故障,还可以立即提醒您和戴尔启动问题解决流程。

SupportAssist节省了故障排除的时间,客户可以更多地关注战略项目。

提高生产效率-用自动化支持代替花费大量精力的人手日常维护。

洞察与控制-月度ProSupport Plus可以优化企业设备,个人电脑和平板的ProSupport Plus可以提供硬盘及电池问题预报。

Dell SupportAssist与Dell OpenManage Essentials系统管理控制台相集成,可远程监控您的企业环境并实现前瞻性支持。

戴尔强大且易于使用的支持技术可缩短解决问题所需的时间,并最大限度地减少人工干预,从而减少停机时间、提高工作效率,并恢复关键业务的运营。

这一新工具可提供丰富的功能,包括远程监控、自动化日志和配置数据收集、案例创建、故障通知以及部件更换。

转变为前瞻性支持模式并将资源的职能从维护转变为推动发展。

适用性:适用于Dell EqualLogic SAN HeadQuarters (SAN HQ)

OpenManage Essentials (OME)和Microsoft Systems Center Operations Manager (SCOM)控制台。

适用于Dell PowerEdge、Dell PowerVault、EqualLogic、Force10 S4810和Dell PowerConnect产品。

桌面UA即桌面用户代理,简称 UA(User Agent);作用是使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。

一些网站常常通过判断 UA 来给不同的操作系统、不同的浏览器发送不同的页面,因此可能造成某些页面无法在某个浏览器中正常显示,但通过伪装 UA 可以绕过检测。

由于很多网站在进行 UA 检测的时候忽略了两位数版本号,所以可能造成 浏览器及之后版本收到糟糕的页面,因此自 浏览器 10 之后的版本中浏览器标识项固定为 浏览器,在 UA 字串尾部添加真实版本信息。

扩展资料

user-agent字串格式:

Google Chrome 浏览器以 WebKit 作为呈现引擎,JavaScript 引擎却用了另一种。最初发布的版本是 02,它的 user-agent字串格式是在 webKit 信息的基础上又增加了如下:

Mozilla/50 (Platform; Encryption; OS-or-CPU; Language) AppleWebKit/AppleWebKitVersion (KHTML, like Gecko) Chrome/ChromeVersion Safari/SafariVersionChrome 02 user-agent 信息的示例如下:

Mozilla/50 (Windows; U; Windows NT 51; en-US) AppleWebKit/52513 (KHTML, like Gecko) Chrome/0214929 Safari/52513虽我不敢完全保证,但很可能 WebKit 版本和 Safari 版本总会保持同步。

-User Agent

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » Agent技术的结构

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情