1、BSI Standards Publication BS ISO/IEC 30106-1:2016 Information technology Object oriented BioAPI Part 1: ArchitectureBS ISO/IEC 30106-1:2016 BRITISH STANDARD National foreword This British Standard is the UK implementation of ISO/IEC 30106-1:2016. The UK participation in its preparation was entrusted
2、 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 Stand
3、ards Institution 2016. Published by BSI Standards Limited 2016 ISBN 978 0 580 75162 2 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 31 March 2016.
4、Amendments/corrigenda issued since publication Date T e x t a f f e c t e dBS ISO/IEC 30106-1:2016 Information technology Object oriented BioAPI Part 1: Architecture Technologies de linformation Objet orient BioAPI Partie 1: Architecture INTERNATIONAL STANDARD ISO/IEC 30106-1 Reference number ISO/IE
5、C 30106-1:2016(E) First edition 2016-03-15 ISO/IEC 2016 BS ISO/IEC 30106-1: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 utilized otherwise
6、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 copyright office Ch. d
7、e 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-1:2016(E)BS ISO/IEC 30106-1:2016ISO/IEC 30106-1:2016(E)Foreword iv Introduction v 1 Scope . 1 2 Normative references 1 3 T erms and definitions . 1 4 Symbo
8、ls and abbreviated terms . 1 5 Object Oriented BioAPI architecture . 2 5.1 Summary of BioAPI architecture . 2 5.2 BioAPI compatibility requirements 4 5.3 Graphical User Interface (GUI) 4 5.4 Implementation guidelines 6 5.4.1 Basic concepts 6 5.4.2 BioAPI_Unit development 6 5.4.3 BFP development 6 5.
9、4.4 BSP development . 7 5.4.5 Framework and component registry . 8 5.4.6 Application development . 8 6 BioAPI CBEFF Patron Formats 8 6.1 General . 8 6.2 Simple BIR . 8 6.3 Complex BIR .14 6.3.1 Structure 14 6.3.2 Child BIR 14 6.3.3 Parent BIR .14 7 Constants .17 7.1 General 17 7.2 Biometric types .1
10、7 7.3 Biometric subtypes 17 7.4 Error codes 18 8 OO BioAPI UML structure .21 8.1 General 21 8.2 Relationships among data structures .22 8.2.1 Class BIR .22 8.2.2 Class UnitSchema .23 8.2.3 Class BFPSchema 24 8.2.4 Class BSPSchema 24 8.2.5 Class FrameworkSchema .25 8.3 BioAPI_Unit structures 25 8.3.1
11、 IArchive .25 8.3.2 IComparison .26 8.3.3 IProcessing .26 8.3.4 ISensor .27 8.4 BFP Structure 27 8.5 BSP Structure 28 8.6 Framework structure .28 8.7 Application related structure 29 ISO/IEC 2016 All rights reserved iii Contents PageBS ISO/IEC 30106-1:2016ISO/IEC 30106-1:2016(E) Foreword ISO (the In
12、ternational Organization for Standardization) and IEC (the International Electrotechnical Commission) form the specialized system for worldwide standardization. National bodies that are members of ISO or IEC participate in the development of International Standards through technical committees estab
13、lished by the respective organization to deal with particular fields of technical activity. ISO and IEC technical committees collaborate in fields of mutual interest. Other international organizations, governmental and non-governmental, in liaison with ISO and IEC, also take part in the work. In the
14、 field of information technology, ISO and IEC have established a joint technical committee, ISO/IEC JTC 1. The procedures used to develop this document and those intended for its further maintenance are described in the ISO/IEC Directives, Part 1. In particular the different approval criteria needed
15、 for the different types of document should be noted. This document was drafted in accordance with the editorial rules of the ISO/IEC Directives, 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.
16、 ISO and IEC shall not be held responsible for identifying any or all such patent rights. Details of any patent rights identified during the development 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 i
17、n this document is information given for the convenience of users and does not constitute an endorsement. For an explanation on the meaning of ISO specific terms and expressions related to conformity assessment, as well as information about ISOs adherence to the WTO principles in the Technical Barri
18、ers to Trade (TBT) see the following URL: Foreword - Supplementary information The committee responsible for this document is ISO/IEC JTC 1, Information technology, SC 37, Biometrics. ISO/IEC 30106 consists of the following parts, under the general title Information technology BioAPI for object orie
19、nted programming languages: Part 1: Architecture Part 2: Java implementation Part 3: C# implementationiv ISO/IEC 2016 All rights reservedBS ISO/IEC 30106-1:2016ISO/IEC 30106-1:2016(E) Introduction The existing versions of BioAPI (ANSI version-INCITS 358 and ISO/IEC 19784-1) specify an application pr
20、ogramming interface expressed in the C language. The use of a portable language like C ensures the BioAPI is accessible across multiple computing platforms and application domains. BioAPI is an appropriate fit for applications written in C and is adequate for applications written in C+. Unfortunatel
21、y, a function-based language like C does not map easily to the object oriented domain where this issue may be answered with an object oriented (OO) version of BioAPI. As noted, the function- based nature of a C API does not map easily to the object oriented paradigm (i.e. languages such as C# and Ja
22、va). In particular, the use of a C API from within an object oriented application is unnatural and requires programming constructs which introduce complexity to the development of an application. Development of a OO version of BioAPI aims to increase the productivity of software practitioners who wh
23、o wish to use the BioAPI whilst remaining in the object oriented domain. A standard object oriented version of BioAPI allows, in case of Java, BSPs that are intended for loading into a Java-based application server to perform verification and/or identification operations. In those application server
24、s, use of the OO BioAPI is more natural when developing a framework and BSPs than the C version of BioAPI. Another area in which a standard OO version of BioAPI would be useful is that of small computing devices based on an object oriented language (OOL), where (as on the large application servers m
25、entioned above) an OO BioAPI framework and OO BSPs would fit better than their C counterparts. This part of ISO/IEC 30106 is expected to have the following impact: enable creation of BioAPI applications by developers more comfortable with Object Oriented Languages; create a market of standard OO BSP
26、 components which target OO environments such as Java application servers, Java applets, small Java devices, .NET servers, .NET applications, web services; increase the level of adoption of BioAPI by decreasing the barrier of entry for OO developers. This includes providing access to C based BSPs (a
27、s if they were OO BSPs) through special versions of the BioAPI framework, bridging a standard OO BioAPI framework to a standard C BioAPI framework. ISO/IEC 2016 All rights reserved vBS ISO/IEC 30106-1:2016BS ISO/IEC 30106-1:2016Information technology Object oriented BioAPI Part 1: Architecture 1 Sco
28、pe This part of ISO/IEC 30106 specifies an architecture for a set of interfaces which define the OO BioAPI. Components defined in this part of ISO/IEC 30106 include a framework, Biometric Service Providers (BSPs), Biometric Function Providers (BFPs) and a component registry. NOTE Each of these compo
29、nents have an equivalent component specified in ISO/IEC 19784-1 as the OO BioAPI is intended to be an OO interpretation of this part of ISO/IEC 30106. For this reason, this part of ISO/IEC 30106 is conceptually equivalent to ISO/IEC 19784-1. Concepts present in this part of ISO/IEC 30106 (for exampl
30、e, BioAPI_Unit and component registry) have the same meaning as in ISO/IEC 19784-1. While the conceptual equivalence of this part of ISO/IEC 30106 will be maintained with ISO/IEC 19784-1, there are differences in the parameters passed between functions and the sequence of function calls. These diffe
31、rences exist to take advantage of the features provided by Object Oriented Programming Languages. 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 a
32、pplies. For undated references, the latest edition of the referenced document (including any amendments) applies. ISO/IEC 2382-37, Information technology Vocabulary Part 37: Biometrics ISO/IEC 19784-1:2006, Information technology Biometric Application Programming Interface Part 1: BioAPI Specificati
33、on ISO/IEC 19785-1:2015, Information technology Common Biometric Exchange Formats Framework Part 1: Data Element Specification ISO/IEC 19785-3:2015, Information technology Common Biometric Exchange Formats Framework Part 3: Patron format specifications 3 T erms a nd definiti ons For the purposes of
34、this document, the terms and definitions in ISO 2382-37, ISO/IEC 19784-1, and ISO/IEC 19785 (all parts) apply. 4 Symbols and abbreviated terms For the purposes of this document, the symbols and abbreviated terms defined in ISO/IEC 19784-1, ISO/IEC 19785 (all parts) and the following apply. API Appli
35、cation Programming Interface BDB Biometric Data Block BFP Biometric (OO) Function Provider INTERNATIONAL ST ANDARD ISO/IEC 30106-1:2016(E) ISO/IEC 2016 All rights reserved 1BS ISO/IEC 30106-1:2016ISO/IEC 30106-1:2016(E) BIR Biometric Information Record BSP Biometric Service Provider CBEFF Common Bio
36、metric Exchange Formats Framework FMR False Match Rate FPI Function Provider Interface GUI Graphical User Interface ID Identity/Identification/Identifier MOC Match on Card OOBioAPI Object Oriented BioAPI PID Product ID SB Security Block NOTE This term and abbreviation is imported from ISO/IEC 19785-
37、1. SBH Standard Biometric Header NOTE This term and abbreviation is imported from ISO/IEC 19785-1. SPI Service Provider Interface UUID Universally Unique Identifier 5 Object Oriented BioAPI architecture 5.1 Summary of BioAPI architecture Object Oriented BioAPI shall be defined in a way that allows b
38、oth structured development of applications and services, as well as interoperability between application and BSPs, and among BSPs. Therefore, the definition has to be done respecting the hierarchical structure of BioAPI (19784-1). In few words, an application shall be developed using an OO BioAPI th
39、at allows the instantiation of a BSP, which is based on the instantiation of one or several BioAPI_Units. The BSP can host more than one BioAPI_Unit of each category, and several units of each type can be used at any time, no presenting any kind of limitation on the units to be used in a BSP. This m
40、akes it necessary for all methods to provide the reference to the unit to be used in each of the operations. An application is not permitted to directly access BioAPI_Units. Therefore, this part of ISO/IEC 30106 does not define a BioAPI_Unit interface, but only an object oriented hierarchical interf
41、ace/class model that may ease the implementation of the BSP. The BSP shall inherit all public methods and data structures for each BioAPI_Unit the BSP encapsulates. It is the responsibility of the BSPs implementation to determine which functions of the BioAPI_Unit are offered to clients of the BSP.
42、Note, an exception should be returned for any BSP interface method that is not implemented in the BSP. This is represented in Figure 1. Programming an application, which interacts directly with a BSP, introduces practical considerations for the application designer. One such consideration is dealing
43、 with third-party suppliers who provide biometric components for use in applications. For example, a supplier of sensors may desire to include support for their entire family of sensors as a single entity (e.g. a library). To achieve this, the supplier may consider implementing the library as a sing
44、le BSP, but may choose to not implement monolithic methods (i.e. aggregated functionality such as Enrol, which does in one single call the capture, the processing of the sample, the creation of the biometric reference and even the archiving). Without monolithic methods, the BSP forces the applicatio
45、n to take responsibility for the implementation of monolithic style functionality. This situation means the BSP may pass biometric data back to the application so the application may perform processing. The application may then need to pass this data on to another BSP for additional processing. In s
46、ome contexts, the passing of data out to an application may simply be inefficient, in other contexts this may be a security concern. A possible solution for this inconvenience is to allow the hypothetical sensor BSP to interact directly with other BSPs, rather than involving the application in the m
47、anagement of this communication. To achieve this, the biometric 2 ISO/IEC 2016 All rights reservedBS ISO/IEC 30106-1:2016ISO/IEC 30106-1:2016(E) product provider may create an entity (e.g. a library) containing several BioAPI_Units of the same kind. This is called a Biometric Function Provider (BFP)
48、 and exhibits the following characteristics. The BFP shall only host BioAPI_Units of the same category. The BFP is meant to allow that a BSP is linked to one of its BioAPI_Units, in order to complete or adapt the functionality of the BSP. The BFP shall not provide functionality directly to the appli
49、cation, but only link to the BSP. The BSP communicates with the BFP on behalf of the application. The BSP is responsible for providing the BFPs functionality to the application. The above mentioned situation also solves a problem from developers point of view, which deals with simplicity in developing applications. If an application may require to use BioAPI_Units from different providers (e.g. a sensor from one provider and processing, comparison and archive BioAP