Vending Machines for Schools POS Interface Architecture for the Reimbursable School Meals Program Information technology landscape iGuard™ LM-SM-5000: configured as the Master iGuard device Application Programs Running on the In-School Food Service Server <DAILY_STUDENT_ADMIN_UPDATE (T.B.D.)> 1 <VENDING_REQUEST> All iGuard Devices Are Connected to One Another and the API via Router to the In-School LAN Vending Machine Vending Machine 6 Vending Machine 6 Vending Machine 6 Vending Machine 6 Vending Machine 6 Vending Machine 6 7 Multiple iGuard™ LM520-FSCs: • Configured as Slave devices • Communicate Directly with SuperMaster™ to Retrieve Student Fingerprint Templates for PINs Not Resident on the Individual Device • Communicate Directly with iGuard™ API for POS Message Processing (1) iGuard – POS Interface Configuration, Version 6 RSMP Equip Config Overview_V6.ppt <VENDING_RESPONSE> iGuard API (using the API Server Module & its Windows Messaging Capabilities) In-School Student Information System Server • Connected to other In-School Applications via Router& the Inschool LAN • Source of Student Admin Update Data POS System Middleware POS System <VENDING_REQUEST> <VENDING_RESPONSE> (i.e. – YES or NO, plus Any Essential Messages to Be Displayed on The iGuard LCD) In-School Food Service Server Daily_Student_Admin_Update will likely be accomplished through a download from the POS System, since it already receives a daily update from the Student Information System Server; actual iGuard update process is still to be defined. 2 Interface communications sequence • Interface Communication Start Student enters PIN and presents fingerprint to iGuard scanner mounted on vending machine – iGuard authenticates identity of student using fingerprint template – iGuard retrieves student fingerprint template from SuperMaster™ for any PIN entered at the machine that is not found in the local device • iGuard sends a data structure to iGuard API via LAN and waits for response (i.e. – vending decision); agreed data structure will contain: – PIN of authenticated student • Exact format of PIN to be specified for each POS System • Will likely be the normal POS PIN now used by student in a check-out line – Any other data elements deemed essential & mandatory by the project team stakeholders iGuard – POS Interface Configuration, Version 6 RSMP Equip Config Overview_V6.ppt 3 Interface communications sequence (continued) • • • iGuard API receives iGuard data structure and sends to POS Middleware a <VEND_REQUEST> message containing {STUDENT_PIN} and waits for response POS Middleware receives <VEND_REQUEST> and relays to POS for processing POS System – Receives and processes <VEND_REQUEST> message & processes request from student for reimbursable meal – Generates <VEND_RESPONSE> message (in an agreed data structure) • Must contain {VEND_SALE} [This is a YES or NO decision on the sale of a reimbursable meal to the awaiting student] [Mandatory] • May contain a {VEND_ RESPONSE_MSG} string constant for display in iGuard LCD to the awaiting student [Optional] – Sends <VEND_RESPONSE> message to POS Middleware • POS Middleware receives <VEND_RESPONSE> message and relays to iGuard API for processing iGuard – POS Interface Configuration, Version 6 RSMP Equip Config Overview_V6.ppt 4 Interface communications sequence (continued) • • iGuard API receives <VEND_RESPONSE> from POS Middleware and relays to the awaiting iGuard The awaiting iGuard receives the incoming <VEND_RESPONSE> message and – Interprets the {VEND_SALE} response & generates vending action command to the appropriate vending machine circuitry – Displays any {VEND_ RESPONSE_MSG} message in iGuard LCD – Generates a <VEND_RESULT> message containing {MEAL_SERVED} and sends to the POS Middleware for relay to POS System • {MEAL_SERVED} confirms delivery/non-delivery of a reimbursable meal to the awaiting student [MANDATORY] • {NOT_SERVED_REASON_CODE} can be included if desired [OPTIONAL] • <VEND_RESULT> completes the audit trail for food service accounting Interface Communication Complete iGuard – POS Interface Configuration, Version 6 RSMP Equip Config Overview_V6.ppt 5 Data element transfers required of the interface iGuard API-to-POS 1. <VEND_REQUEST> {STUDENT_PIN} POS-to-iGuard API 2. <VEND_RESPONSE> {VEND_SALE} including optional {VEND_ RESPONSE_MSG} when desired 3. <VEND_RESULT> {MEAL_SERVED} including an optional {NOT_SERVED_REASON_CODE} when desired What is the simplest way to transfer these three messages between systems so that communications are independent of the specific POS System that controls food service operations in the school? • We think it is through the use of the iGuard API and its Windows Messaging protocol…, but • Is this the best overall technical solution? iGuard – POS Interface Configuration, Version 6 RSMP Equip Config Overview_V6.ppt 6 Data element dictionary Data Element Definition & Example 1. {STUDENT_ID} Normal 4 or 5 digit POS PIN Code used by student at cafeteria line check-out register [e.g. – 4552] 2. {VEND_SALE} A one-bit switch that authorizes or denies sale of a reimbursable school meal to the awaiting student [e.g. – 1 = YES; 0 = NO] 3. {VEND_ RESPONSE_MSG} [Optional] A string constant that can accompany {VEND_SALE} to convey a message to the awaiting student [e.g. – if VEND_SALE = 0, then {VEND_RESPONSE_MSG=“Declined, Please See Cashier” 4. {MEAL_SERVED} A one-bit switch that confirms: • Delivery of a reimbursable meal to the awaiting student, or • Non-delivery of a reimbursable meal to the awaiting student [e.g. – 1 = DELIVERED; 0 = NOT DELIVERED] 5. {NOT_SRVD_RSN_CODE} [Optional] A string constant accompanying {MEAL_SERVED} that conveys to the POS a reason why the meal was not delivered. [e.g. – if VEND_SALE = 0, then {NOT_SRVD_RSN_CODE = 2} if reason for non-delivery was “Vending Machine Malfunction”. Acceptable values and definitions will be predefined. iGuard – POS Interface Configuration, Version 6 RSMP Equip Config Overview_V6.ppt 7 Using iGuard API as a common vending interface • Reasons to use the API (Pro’s) – It is already developed, tested & deployed with other interfaced applications today – It uses standard Microsoft Windows messaging protocol to communicate – Through this API, we can provide any data structure needed by the interfaced POS application – This API could serve as the standard interface point for use in communications with any POS System [using a very small set of standard data elements] • Reasons not to use the API (Con’s) – It makes the interface OS-dependent (i.e. – Microsoft Windows) – It does not contain as many robust features as would a standard TCP/IP Client-Server application interface1 for managing • Dropped communications and the resulting missed messages • Reprocessing open / unresolved messages until they are satisfactorily processed 1 As iGuard – POS Interface Configuration, Version 6 RSMP Equip Config Overview_V6.ppt outlined in POS – iGuard™ Interface Specification, Version 2 8