1、BSI Standards Publication BS ISO/IEC 30106-3:2016 Information technology Object oriented BioAPI Part 3: C# implementationBS ISO/IEC 30106-3:2016 BRITISH STANDARD National foreword This British Standard is the UK implementation of ISO/IEC 30106-3:2016. The UK participation in its preparation was entr
2、usted to Technical Committee IST/44, Biometrics. A list of organizations represented on this committee can be obtained on request to its secretary. This publication does not purport to include all the necessary provisions of a contract. Users are responsible for its correct application. The British
3、Standards Institution 2016. Published by BSI Standards Limited 2016 ISBN 978 0 580 75179 0 ICS 35.040 Compliance with a British Standard cannot confer immunity from legal obligations. This British Standard was published under the authority of the Standards Policy and Strategy Committee on 30 April 2
4、016. Amendments/corrigenda issued since publication Date T e x t a f f e c t e dBS ISO/IEC 30106-3:2016 Information technology Object oriented BioAPI Part 3: C# implementation Technlogies de linformation Objet orient BioAPI Partie 3: Mise en oeuvre de C# INTERNATIONAL STANDARD ISO/IEC 30106-3 Refere
5、nce number ISO/IEC 30106-3:2016(E) First edition 2016-03-15 ISO/IEC 2016 BS ISO/IEC 30106-3:2016ii ISO/IEC 2016 All rights reserved COPYRIGHT PROTECTED DOCUMENT ISO/IEC 2016, Published in Switzerland All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or ut
6、ilized otherwise in any form or by any means, electronic or mechanical, including photocopying, or posting on the internet or an intranet, without prior written permission. Permission can be requested from either ISO at the address below or ISOs member body in the country of the requester. ISO copyr
7、ight office Ch. de Blandonnet 8 CP 401 CH-1214 Vernier, Geneva, Switzerland Tel. +41 22 749 01 11 Fax +41 22 749 09 47 copyrightiso.org www.iso.org ISO/IEC 30106-3:2016(E)BS ISO/IEC 30106-3:2016ISO/IEC 30106-3:2016(E)Foreword vi Introduction vii 1 Scope . 1 2 Normative references 1 3 BioAPI C# names
8、pace structure . 1 3.1 Overall structure 1 3.2 Namespace BioAPI . 1 3.2.1 Namespace description 1 3.2.2 Structure . 1 3.3 Namespace BioAPI.Data 2 3.3.1 Namespace description 2 3.3.2 Structure . 2 4 Data types and constants . 2 4.1 Class ACBioParameters 2 4.1.1 Description 2 4.1.2 Properties summary
9、. 2 4.2 Class BFPListElement . . 2 4.2.1 Description 2 4.2.2 Properties summary . 2 4.3 Class BFPSchema Serializable() . 3 4.3.1 Description 3 4.3.2 Properties summary . 3 4.3.3 Method summary 3 4.4 Class BIR . 3 4.4.1 Description 3 4.4.2 Properties summary . 4 4.4.3 Method summary 5 4.5 Class BSPSc
10、hema Serializable() . 5 4.5.1 Description 5 4.5.2 Properties summary . 6 4.5.3 Method summary 7 4.6 Class Candidate . 7 4.6.1 Description 7 4.6.2 Properties summary . 7 4.7 Class DataTypes . 7 4.7.1 Description 7 4.7.2 Enumerations . 8 4.8 Class date 14 4.8.1 Description .14 4.8.2 Properties summary
11、 15 4.8.3 Methods summary .15 4.9 Class FrameworkSchema 15 4.9.1 Description .15 4.9.2 Properties summary 15 4.9.3 Method summary .16 4.10 Class GUIBitmap .16 4.10.1 Description .16 4.10.2 Properties .16 4.10.3 Method summary .16 4.11 Class Identifypopulation 17 4.11.1 Description .17 4.11.2 Propert
12、ies summary 17 4.11.3 Method summary .17 ISO/IEC 2016 All rights reserved iii Contents PageBS ISO/IEC 30106-3:2016ISO/IEC 30106-3:2016(E)4.12 Class PopulationMember 17 4.12.1 Description .17 4.12.2 Properties summary 17 4.13 Class RegistryID 18 4.13.1 Description .18 4.13.2 Properties summary 18 4.1
13、4 Class SecurityProfileType .18 4.14.1 Description .18 4.14.2 Properties summary 18 4.14.3 Method summary .18 4.15 Class UnitList .19 4.15.1 Description .19 4.15.2 Properties summary 19 4.15.3 Methods summary .19 4.16 Class UnitListElement 19 4.16.1 Description .19 4.16.2 Properties summary 19 4.17
14、Class UnitSchema .19 4.17.1 Description .19 4.17.2 Properties summary 20 4.17.3 Method summary .20 4.18 Class UUID Serializable() 20 4.18.1 Description .20 4.18.2 Properties .21 5 Object-oriented interfaces for supporting BioAPI_Units .21 5.1 General 21 5.2 Interface IArchive 21 5.2.1 Description .2
15、1 5.2.2 Method summary .22 5.3 Interface IComparison .24 5.3.1 Description .24 5.3.2 Method summary .25 5.4 Interface IProcessing 27 5.4.1 Description .27 5.4.2 Method summary .28 5.5 Interface ISensor 29 5.5.1 Description .29 5.5.2 Method summary .29 6 BFP level .30 6.1 Interface IBFP .30 6.1.1 Des
16、cription .30 6.1.2 Imported interfaces 30 6.1.3 Properties summary 30 6.1.4 Events summary 30 6.1.5 Method summary .31 7 BSP level .33 7.1 Interface IBSP 33 7.1.1 Description .33 7.1.2 Imported interfaces 33 7.1.3 Properties summary 33 7.1.4 Events summary 33 7.1.5 Method summary .33 8 Framework lev
17、el 40 8.1 Interface IComponentRegistry .40 8.1.1 Description .40 8.1.2 Method summary .41 iv ISO/IEC 2016 All rights reservedBS ISO/IEC 30106-3:2016ISO/IEC 30106-3:2016(E)8.2 Interface IFramework 42 8.2.1 Description .42 8.2.2 Inherited interfaces 42 8.2.3 Properties summary 42 8.2.4 Method summary
18、.43 9 Application interaction .47 9.1 Class BioAPIException: Exception .47 9.1.1 Description .47 9.1.2 Constructor summary 48 9.1.3 Properties summary 48 9.1.4 Method summary .49 9.2 Callback functions .49 9.2.1 Description .49 9.2.2 Callback functions specification 50 Annex A (informative) Calling
19、sequence examples and sample code .55 Bibliography .56 ISO/IEC 2016 All rights reserved vBS ISO/IEC 30106-3:2016ISO/IEC 30106-3:2016(E) Foreword ISO (the International Organization for Standardization) and IEC (the International Electrotechnical Commission) form the specialized system for worldwide
20、standardization. National bodies that are members of ISO or IEC participate in the development of International Standards through technical committees established by the respective organization to deal with particular fields of technical activity. ISO and IEC technical committees collaborate in fiel
21、ds of mutual interest. Other international organizations, governmental and non-governmental, in liaison with ISO and IEC, also take part in the work. In the field of information technology, ISO and IEC have established a joint technical committee, ISO/IEC JTC 1. The procedures used to develop this d
22、ocument and those intended for its further maintenance are described in the ISO/IEC Directives, Part 1. In particular the different approval criteria needed for the different types of document should be noted. This document was drafted in accordance with the editorial rules of the ISO/IEC Directives
23、, Part 2 (see www.iso.org/directives). Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. ISO and IEC shall not be held responsible for identifying any or all such patent rights. Details of any patent rights identified during the dev
24、elopment of the document will be in the Introduction and/or on the ISO list of patent declarations received (see www.iso.org/patents). Any trade name used in this document is information given for the convenience of users and does not constitute an endorsement. For an explanation on the meaning of I
25、SO specific terms and expressions related to conformity assessment, as well as information about ISOs adherence to the WTO principles in the Technical Barriers to Trade (TBT) see the following URL: Foreword - Supplementary information The committee responsible for this document is ISO/IEC JTC 1, Inf
26、ormation technology, SC 37, Biometrics. ISO/IEC 30106 consists of the following parts, under the general title Information technology Object- oriented BioAPI: Part 1: Architecture Part 2: Java implementation Part 3: C# implementationvi ISO/IEC 2016 All rights reservedBS ISO/IEC 30106-3:2016ISO/IEC 3
27、0106-3:2016(E) Introduction In this part of ISO/IEC 30106, an application programming interface expressed in C# language is specified. C# is intended to be a simple, general-purpose, object-oriented programming language that is aimed at enabling programmers to quickly build a wide range of applicati
28、ons for the Microsoft .NET platform. One of the advantages of using C# is that, as it is designed for the Common Language Infrastructure (CLI), it allows multiple high-level languages to be used on different computer platforms without being rewritten for specific architectures. C# shares some featur
29、es (overloading, some syntactic details, etc.) with C+ but includes new characteristics (reference and output parameters, enumerations, unified type system, etc.). Besides, C# is very similar to Java (interfaces, exceptions, object-orientation, etc.), which implies that the structure of interfaces a
30、nd namespaces (which is the equivalent to packages in Java language) is mostly the same as Java but, as expected, code implementation and compilation are different. As Java implementation allows an easy use of Java BSPs, Java-based application servers or Java applets, C# is the best way to write win
31、dows desktop and web applications/services and provides an advanced and well-designed remote framework. ISO/IEC 2016 All rights reserved viiBS ISO/IEC 30106-3:2016BS ISO/IEC 30106-3:2016Information technology Object oriented BioAPI Part 3: C# implementation 1 Scope This part of ISO/IEC 30106 specifi
32、es an interface of a BioAPI C# framework and BioAPI C# BSP which will mirror the corresponding components specified in ISO/IEC 30106-1. The semantic equivalence of this part of ISO/IEC 30106 will be maintained with ISO/IEC 30106-2 (Java implementation). In spite of the differences in actual paramete
33、rs passed between functions, the names and interface structure are the same. 2 Normative references The following documents, in whole or in part, are normatively referenced in this document and are indispensable for its application. For dated references, only the edition cited applies. For undated r
34、eferences, the latest edition of the referenced document (including any amendments) applies. ISO/IEC 30106-1, Information technology BioAPI for object oriented programming languages Part 1: Architecture 3 BioAPI C# namespace structure 3.1 Overall structure The BioAPI C# interface will be divided int
35、o several namespaces. The following are the namespace structure: namespace BioAPI: contains functionality to manage units, BSPs, BFPs, the framework and applications; namespace BioAPI.Data: contains all the data structures. 3.2 Namespace BioAPI 3.2.1 Namespace description This namespace contains all
36、 the components responsible for managing and executing the functionality of BioAPI. Component registry interface is also defined in this namespace. 3.2.2 Structure The description of this namespace is given explaining a bottom-up structure. In Clause 4, the interfaces needed to be implemented for ea
37、ch of the unit types are explained. It is important to note that such interfaces do not refer to an implemented class by itself, as the accessible class will be either the Biometric Service Provider (BSP) or the Biometric Function Provider (BFP), but the specifications in such clause are common to t
38、he methods and properties to be added to the implemented BSP and/or BFP classes. INTERNATIONAL ST ANDARD ISO/IEC 30106-3:2016(E) ISO/IEC 2016 All rights reserved 1BS ISO/IEC 30106-3:2016ISO/IEC 30106-3:2016(E) This will be followed by the specification of the implementation of the BFP (Clause 5) and
39、 BSP (Clause 6) interfaces. These two interfaces provide the lower layer interoperability level, equivalent to the SPI and BFPI interfaces in ISO/IEC 19784-1. The higher layer of interoperability level is provided by the specification of the framework (Clause 7, with the framework interface and the
40、component registry) and the application interaction (Clause 8, with the specification of the exceptions and callback functions). This provides the equivalence to the API interface in ISO/IEC 19784-1. 3.3 Namespace BioAPI.Data 3.3.1 Namespace description This namespace contains all data structures ne
41、eded for the implementation of OO BioAPI. 3.3.2 Structure Several data structures are provided to comply with the requirements of specifying this part of ISO/IEC 30106. All the BioAPI.Data namespace is specified in Clause 3, where all needed classes and enumerations are defined. This has to be compl
42、emented to the constants defined in ISO/IEC 30106-1. 4 Data types and constants 4.1 Class ACBioParameters 4.1.1 Description Structure provides the information which is used to generate ACBio instances. 4.1.2 Properties summary int Challenge get;: Challenge from the validator of a biometric verificat
43、ion when ACBio is used. This value shall be sent to the field controlValue of type ACBioContentInformation in ACBio instances. int InitialBPUIOIndexOutput get;: The initial value of BPU IO index which is to be assigned to the output from the BioAPI unit, BFP or BSP when the ACBio instances are gener
44、ated. The range between InitialBPUIOIndexOutput and SupremumBPUIOIndexOutput shall be divided into the number of BSP units and BFPs which are accepted by the BSP and assigned to the BSP units and BSPs. int SupremumBPUIOIndexOutput get;: The supremum of BPU IO indexes which are to be assigned to the
45、output from the BioAPI unit, BFP or BSP when the ACBio instances are generated. 4.2 Class BFPListElement 4.2.1 Description Identifies a BFP by category and UUID. A list is returned by a BSP when queried for the installed BFPs that it supports. 4.2.2 Properties summary UnitCategoryType UnitCategory g
46、et; set;: The category of the unit. UUID BFPID get; set;: The UUID assigned to the BFP.2 ISO/IEC 2016 All rights reservedBS ISO/IEC 30106-3:2016ISO/IEC 30106-3:2016(E) 4.3 Class BFPSchema Serializable() 4.3.1 Description Represents the record in the component registry that defines the properties of
47、the BFP installed in the system. Is a serializable class. 4.3.2 Properties summary UUID BFPUUID get;: UUID of the BFP. UnitCategoryType BFPCategory get;: Category of the BFP identified by the BFPUUID. String BFPDescription get;: A NULL-terminated string containing a text description of the BFP. Stri
48、ng Path get;: A pointer to a NULL-terminated string containing the path of the file containing the BFP executable code, including the filename. The path may be a URL. This string shall consist of ISO/IEC 10646 characters encoded in UTF-8 (see ISO/IEC 10646:2014, Annex D). When BFPSchema is used with
49、in a function call, the component that receives the call allocates the memory for the path schema element and the calling component frees the memory. String SpecVersion get;: Major/minor version number of the BioAPI specification to which the BFP was implemented. String ProductVersion get;: The version string of the BFP software. String Vendor get;: A NULL-terminated string containing the name of the BFP vendor. sbyte