PIAFSDK研究.docx
《PIAFSDK研究.docx》由会员分享,可在线阅读,更多相关《PIAFSDK研究.docx(36页珍藏版)》请在三一文库上搜索。
1、 真诚为您提供优质参考资料,若有不当之处,请指正。PI AFSDK分类汇总1.概述AF SDK是一个.NET集成开发包,它用于为用户提供对OSIsoft数据的结构化访问。AF SDK提供了一种与OSIsoft数据库实现数据交互的方法,它可以与PI-SDK以及PI-API配合使用。AF SDK设计目的是为VB,C#以及Managed C+提供方便的访问路径。AF SDK可呈现出对象层次分明的模型。AF SDK包括11个namespace,如图1所示:图1每个namespace的总体功能说明如下:NamespaceDescriptionOSIsoft.AFPISystems集位于AF SDK层级中
2、的第一层,大多数访问AF对象的路径都以它为起始引用。此类型对象的多数实例都可以在应用程序中创建,但是在同一个应用中,同一个用户所有的实例都引用相同的PISystem对象,也就意味着:在同一个应用中,对于某一个属于此PISystem类对象的所有操作都会被所有该PISystem类型对象的实例所见。而其他应用则直到这些操作被保存时才能看到。在VB或C#中,首层对象可以利用对象名前加OSIsoft.AF的方法来引用,如:OSIsoft.AF.PISystem。OSIsoft.AF.Analysis该namespace提供了一系列用于创建、安排及执行分析操作的类。2 / 36OSIsoft.AF.Ass
3、et该namespace提供了一系列可用于代表某机构(或团体)中各资产的类。它允许创建各资产及其属性的层级关系。另外,它提供了用于处理常见请求(如远程数据访问、计量单位换算及定义和执行资产定义等)的功能特性,每个PISystem都由任意多个相互独立的数据库组成。OSIsoft.AF.Collective该namespace提供了一系列用于管理AF 高可用(HF)服务器集的类OSIsoft.AF.Diagnostics该namespace提供了一系列具有诊断功能的类OSIsoft.AF.EventFrame该namespace提供了一系列类,这些类可用于创建具有起效时间和结束时间的对象。OSIs
4、oft.AF.Modeling该namespace提供了一系列用于创建工厂资产或(工业)过程模型的类OSIsoft.AF.Notification该namespace提供了一系列用于创建告警的类,告警作用是通知用户事件的发生OSIsoft.AF.Search该namespace提供了一系列可用于创建、存储及执行搜索任务的类。OSIsoft.AF.Time该namespace提供了一系列与时间功能相关的类OSIsoft.AF.UnitsOfMeasure该namespace提供了一系列类,这些类可用于定义计量单位系统,此计量单位系统可以描述属性或数值的单位并完成从一种单位到另一种单位的转换。在P
5、ISystem中,一个计量单位数据库被所有的数据库所共享。每个namespace中不仅仅包含多个类,还包括接口、结构体以及事件等,每个类、接口等又有各自的成员(members),如类的members具体有构造函数constructors、方法methods、符号operators、属性properties及事件events。,具体如图2 所示(注:并不是每个namespace都具有图中所有的内容)。下文将按照namespace Classclass membersdelegatesdelegates members structuresstructures membersinterfaces
6、interfaces membersenumerationsenumerations members的顺序进行介绍。2.各OSIsoft.AF Namespace分析。2.1 OSIsoft.AF Namespace2.1.1 OSIsoft.AF Namespace中的类Class2.1.1.1各类综述ClassDescriptionAFActiveDirectoryProperties该类的对象用于获取及设置活动路径配置属性(Active Directory configuration properties),AF Server需根据此属性值获取contact信息。AFCategories
7、AF AFCategory 集。AF数据库(Database)对象负责维护在该数据库上定义的所有AFCategoty集。AFCategoryAFCategory代表一个用户自定义的数值,它用于将AF SDK内的对象进行分类。当形成报告或做查询时,AFCategory将对象按照类型进行分组AFChangedEventArgs为被修改的事件提供数据AFCheckOutInfo该类的对象用于表示当前对象的签出状态信息。AFCollectionAF SDK中所有集合的基类AFCollection(Of )为AF SDK中的所有集合提供抽象基类,所有集合通过唯一标识进行索引。AFCollectionLi
8、st(Of )一个不支持按名字查找功能的对象列表。此集合可以是一个由用户自定义的、具有不同类型对象的对象集合。AFConnectionInfo该类型对象用于为AF Server提供连接配置信息及状态信息。AFContact该类型对象用于提供由AF维护的contact信息。AFDatabaseAFDatabase类对象代表AF Server中一个单独的数据库AFDatabasesAFDatabase类对象的集合,它是由位于PISystem上元素的SDK所维护AFEventArgsEventArgs类的基类,可以与AFEventItem类关联AFGlobalRestorer该类用于使用IPIPer
9、sist接口恢复的持久化的对象AFLibraries该类是AFLibrary对象的集合,用于提供PISystem可载入的应用及范围的具体信息。AFLibrary该类是可导入到PISystem中的、由某些应用和区域信息构成的集合。AFNamedCollection(Of )该类用于提供所有经过特殊筛选后的集合的抽象基类, AFNamedCollectionList(Of )该类是一个对象列表,支持按名字查询。该集合可由用户自定义,其组成对象可属于不同的类对象。AFObject该类是所有AF SDK中对象的基类。AFPlugIn该类包含了一个AF插件的相关信息,此信息被安装和定义在AF服务器上。A
10、FPlugIns该集合包含了AFPlugin类对象的列表,这些对象安装在服务器的工作站上AFProgressEventArgs该类用于为正在进行中的事件提供数据AFSDKExtension该类是一个静态类,用于为AF SDK内的类提供扩展方法。AFSecurity该对象用于为相关对象提供安全方面的访问和控制。AFSecurityRightsExtension该类是一个静态类,用于为AFSecurityRights枚举类型提供一些扩展方法。NumericStringComparer(Of )代表了一个数值字符比较操作,对具有数值的字符运用特别的大小写敏感的比较规则PISystem该类代表PI 分
11、析框架的单个数据存档。PISystemsPISystem类型对象的全局集合,由AF SDK维护,代表了工作站中对于客户端应用程序已知的可用系统。UniversalComparer(Of )该类是一个通用的比较器,用于根据任意属性的组合来比较两个对象是否相等。2.1.1.2各类的成员具体分析(即class的members)(1)AFActiveDirectoryProperties Class: 该类具体包括以下成员:其中,Constructors(构造函数)说明如下:NameDescriptionAFActiveDirectoryProperties用于创建该类的实例。 Methods(方法)
12、说明如下:NameDescriptionEquals判断指定的对象是否与当前对象相等。GetHashCode作为某特定类型的hash函数GetType获取当前实例的类型。SetAccount设置账户,该账户用于访问服务器的活动目录。ToString返回表示当前对象的字符串。Properties(属性)说明如下:NameDescriptionAccountName该属性表示账户名,该账户用于访问服务器的活动目录。对活动目录中信息的访问受控于安全权限,该属性指明了服务器访问活动目录时所用的账户。使用SetAccount(String, SecureString)方法可以为该属性赋值,如果该属性未赋
13、值,则默认使用当前服务器所使用之下的账户。仅当当前服务器运行之下的账户无法访问活动目录时才需要为该属性赋值。编程举例:Dim instance As AFActiveDirectoryPropertiesDim value As Stringvalue = instance.AccountNameinstance.AccountName = valueDomainControllerDomain用于进入活动目录。该属性是活动目录领域的DNS全名,用于获得目录连接的搜索。该属性应设置为适合的活动目录区域的DNS名,例如,使用osisoft.int作为OSI的domain、。如果该属性为空,则服务
14、器将会使用从DHCP中获取的domain名。编程举例:Dim instance As AFActiveDirectoryPropertiesDim value As Stringvalue = instance.DomainControllerinstance.DomainController = valueImpersonateUser指明当访问活动目录时,客户端或服务器的安全权限是否需要起效。当该值为true时,访问活动目录启用客户端的权限识别,当该值为false,则访问活动目录时启用服务器权限识别。对活动目录处信息的访问需要有安全权限,因此,当需要访问AD(活动目录)时,有两个选择,一是
15、使用用户账号(此时该属性值为true),另一个是使用服务器账户(此时该属性值为false)。编程举例:Dim instance As AFActiveDirectoryPropertiesDim value As Booleanvalue = instance.ImpersonateUserinstance.ImpersonateUser = valueReturnAllPersons指明是否所有类型的persons都需要从活动目录中返回当该值为true时,所有的活动目录的persons都被返回,persons是在AD(活动目录)中是一个对象。AD中的对象是按照以下顺序继承而来的:Top-Pe
16、rsons-OrganizationalPerson-Contact和Top-Persons-OrganizationalPerson-User.如果该属性值为真,则查找将会返回:Persons, OrganizationalPersons, Contacts,以及 Users。如果该属性值为假,则仅仅返回UsersDim instance As AFActiveDirectoryPropertiesDim value As Booleanvalue = instance.ReturnAllPersonsinstance.ReturnAllPersons = valueUseGlobalCat
17、alog表明使用cached global catalog还是使用Active Directory去检索用户。活动目录将一些信息高速缓存所谓的全局目录中,对于有多个分布的域控制器的安装,每个域控制器将有全局目录的缓存,那样搜索不必涉及域控制器。否则则需要访问一个远程的控制器,这有助于查询性能的提高。当全局目录可用时,这种设置告诉检索是否使用全局目录,亦或者是否必须到域控制器上搜索。待翻译!编程举例:Dim instance As AFActiveDirectoryPropertiesDim value As Booleanvalue = instance.UseGlobalCatalogins
18、tance.UseGlobalCatalog = valueUserFolderThis Active Directory user folder name.活动目录中的用户文件夹名活动目录运行将user组织成为文件夹以便于更好的管理,用户文件夹可以包含其他文件夹。因此,该属性是通往用户文件夹的路径。例如:A/B/C 表示文件夹C在B中,而B又包含于A中,而这里的A/B/C搜索仅会返回文件夹C中的user,而不会返回其他区域的user。如果为空。则将会从根目录开始进行搜索。意味着搜集所有的user或persons。编程举例:Dim instance As AFActiveDirectoryPr
19、opertiesDim value As Stringvalue = instance.UserFolderinstance.UserFolder = value(2)AFCategories class类:该类主要包括以下成员:图 AFcategories类的与其他类或接口的使用、继承、包含或实现关系其中,methods(方法)说明如下:NameDescriptionAdd添加一个对象到集合 Clear移除集合中的所有想.(继承自 AFCollection(Of ).)Contains确定集合中是否存在某个项 CopyTo拷贝整个集合到一个兼容的一维数组中,开始于目标数组的指定索引。(继承自
20、AFCollection(Of ).)Equals确定指定对象与当前对象是否相等 (继承自Object.)GetEnumerator返回循环访问集合的一个计数器(继承自 AFCollection(Of ).)GetHashCode获取对象实例的哈希码,这里对象应该适合于使用散列算法以及数据结构类似散列表。(继承自AFCollection.)GetType获取当前实例的类型(继承自 Object.)IndexOf检索指定对象,从零开始,返回对全部集合进行检索首次发现该对象时的索引值 (继承自 AFCollection(Of ).)Refresh刷新集合,保证其最新Remove从集合中移除单个对象
21、 RemoveAt从集合中移除指定索引的单个对象(继承自 AFCollection(Of ).)Sort对集合中的项进行排列ToString返回表示当前对象的字符串 (继承自 AFCollection.)属性:NameDescriptionCount获取集合中实际包含项的数目(继承自AFCollection(Of ).)Database只读属性,返回AFDatabase对象,AFcategories对象定义在其中。Identity只读属性,包含对象的ID。 (继承自 AFCollection.)IsDeleted只读属性,表明此集合的拥有者是否已被删除(继承自 AFCollection.)It
22、em从集合中获取项 ItemIdentity只读属性,包含集合中对象的ID。(继承自AFCollection.)PISystem只读属性,允许访问与该集合有关的PISystem对象 (继承自AFCollection.)(3)AFCategory class类,该类主要包括以下成员:方法:NameDescriptionApplyChanges这个方法应用变化到对象以及所有的组成其的子对象,并且使得那些变化对用户的其他对象可用。CheckIn通过信息的持久化存储,这个方法提交所有的变化到对象及其子对象。CheckOut锁定对象以便对其配置进行修改CompareTo将当前实例与另一个同类型实例进行比
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PIAFSDK 研究
