HP NonStop computers hadden al een heel leven lang gedraaid onder de naam Tandem Computers, voordat ze door HP werden ontdekt. En dat was niet zomaar een ontdekking: het hele datacenter van HP wereldwijd is inmiddels volledig uitgerust met deze bijzondere, krachtige machines. Maar wat maakt deze HP NonStop computers dan zo bijzonder? Vanwaar deze aparte naam? En waarom is software ontwikkelen op een HP NonStop zo ontzettend leuk om te doen?
Om de eerste vraag te beantwoorden moeten we echt even terug naar het begin: in 1974 is al de basis gelegd voor de huidige NonStop computers. Natuurlijk waren ze nog niet zo snel en efficiënt als de huidige versies, maar de grondleggers hadden in die tijd al zeer goede ideeën over hoe de computer moest functioneren: ze moesten continu beschikbaar zijn, de data-integriteit moest gegarandeerd kunnen worden, de performance moest onder verschillende omstandigheden goed blijven en er was nagedacht over het beveiligen van gegevens.
Kortom, ideeën die hun tijd ver vooruit waren! Één nadeel: ze waren kostbaar. Dat maakte dat de doelgroep zich beperkte tot de bankwereld en de grote industrie die ze inzetten om de eerste stappen in elektronische transactieverwerking te zetten voor de effectenhandel en de salarisverwerking.
20 jaar aaneengesloten aan
De naam NonStop komt voort uit het gegeven dat ze continu beschikbaar moeten zijn en wie denkt dat dit een loze belofte is, heeft het mis: er zijn behoorlijk wat NonStop computers die pas na 20 jaar vervangen zijn en in de tussentijd niet uit geweest zijn. Ze hebben met recht de naam NonStop.
HP NonStop feiten:
- 1976: de eerste NonStop computer wordt verkocht aan de Citybank
- 1979: bij de US Treasury Department verwerkt een NonStop computer wekelijks voor US$10 miljard aan financiële transacties
Fouttolerantie
Een van de redenen dat ze vol continu aan kunnen blijven is het dubbel uitvoeren van de meest essentiële hardwareonderdelen. Ook wordt gebruik gemaakt van fouttolerantie, waarbij het mogelijk is om in een van de hardwareonderdelen in een vroeg stadium een probleem te signaleren en dit aan te merken als single point of failure. Daarop wordt dit onderdeel vervangen terwijl het systeem blijft draaien. Het mag duidelijk zijn dat dit single point of failure een belangrijk gegeven is: wanneer het systeem op twee plaatsen tegelijk in de hardware een failure constateert zal het systeem geen garanties meer kunnen geven dat het blijft draaien. Dit komt overigens zo weinig voor dat op de huidige HP NonStop computers een beschikbaarheidgarantie van meer dan 99,998% afgegeven wordt.
Data-integriteit
En dan het onderwerp dat al dichterbij software-ontwikkeling komt: de veiligheid van gegevens en de data-integriteit. Deze waren vanaf de eerste NonStop computer al een belangrijk onderwerp. Zo belangrijk zelfs dat het operating system niet voor niets de naam Guardian kreeg en de tool TMF (Transaction Management Facility) ontwikkeld werd.
HP NonStop feiten:
- 1981: Nasdaq gebruikt NonStop computers voor securities transaction processing
- 1986: Tandem introduced the first fault-tolerant SQL database, NonStop SQL
Binnen het Guardian-OS zijn diverse tools beschikbaar: SAFECOM voor toegangsbeveiliging, FUP als File Utility, TEDIT om te editen, INSPECT om te debuggen, SPOOLCOM voor outputafhandeling, SCUP voor het beheer van de schermlayouts en zo is er nog een aantal tools die standaard bij een NonStop computer horen.
Transaction Management Facility
Zo ook TMF, dat een speciale plaats inneemt: met deze tool worden transacties vanaf binnenkomst tot aan de bevestiging gecontroleerd verwerkt. Op elk moment tijdens die verwerking kan zo nodig een transactie ongedaan gemaakt worden door een transactie-rollback.
TMF en programmeertalen
Vanuit elke ontwikkeltaal die beschikbaar is op een NonStop systeem kan TMF aangeroepen worden. Een transactie kan goed eindigen, of abnormaal eindigen, waarna een rollback gedaan wordt om de wijziging ongedaan te maken, zoals in dit COBOL-voorbeeld hieronder:
E0020.
READ INPUTFILE
MOVE INPUTFILE.KEY TO ACCOUNT.KEY
READ^FILE ACCOUNT
IF READ-OK
BEGIN-TRANSACTION
IF INPUTFILE.AMOUNT < 0
SUBTRACT INPUTFILE.AMOUNT FROM ACCOUNT.BALANCE
WRITE^FILE ACCOUNT
IF WRITE-OK
END-TRANSACTION
ELSE
ABORT-TRANSACTION
END-IF
END-IF
END-IF
E0099.
Listing 1: COBOL TMF-voorbeeld
Transactie = wijziging patiëntendossier
Maar wat wordt er onder een transactie verstaan? Het hoeft namelijk niet per definitie financieel te zijn. Een transactie kan ook heel andere gegevens omvatten, b.v. gevoelige overheidsdata of data over energieverbruik per huishouden in een energiebedrijf, patiëntengegevens in een ziekenhuis, of de afhandeling van de logistiek van een vervoersmaatschappij. Het beeld dat alleen financiële instellingen met een NonStop computer werken worden is daarmee achterhaald. En juist in de huidige internationale bedrijfsontwikkeling waarbij internet en een beschikbaarheid van 24 uur per dag erg belangrijk geworden is, is HP NonStop een uitkomst.
HP NonStop feiten:
- 1997: NonStop Java beschikbaar op NonStop computers vanaf versie NonStop Kernel
- 2001: Intel Itanium processor in NonStop
Dagelijks miljoenen gebruikers
Het is erg aannemelijk dat de meeste mensen bijna dagelijks, zonder het te weten, gebruik maken van HP NonStop: vrijwel alle betaal- en geldautomaten in Nederland staan in verbinding met een HP NonStop computer en de meeste telebankierschermen van de verschillende banken werken op HP NonStop. Hieruit kun je concluderen dat Java inmiddels veel gebruikt wordt op deze computer, in combinatie met de verschillende HP NonStop tools.
HP NonStop feiten:
- 2008: Compound Statements in SQL
- 2009: HP NonStop connectivity products voor databaseconnecties naar ODBC en JDBC
Programmeertalen
Op een HP NonStop kun je programmeren in de talen COBOL, C/C++, SQL en JAVA. Tevens is er een native taal beschikbaar TAL met libraries waarin standaard TAL-routines zijn opgeslagen voor allerlei standaard werkzaamheden, zoals READ^FILE en WRITE^FILE.
SQL en Java op HP NonStop
Om gebruik te kunnen maken van Java in combinatie met SQL-tabellen hoef je binnen Java alleen maar een referentie te leggen naar de standaard SQL-class met een select-commando:
import java.sql.*;
Statement myStatement = myConnection.createStatement();
// De select kan nu uitgevoerd worden en
// het resultaat gaat naar object r:
ResultSet r = myStat.executeQuery(
"SELECT * from $DATA1.DBASE.EMPL");
// het resultaat is een String dat op het
// beeldscherm gedisplayed wordt:
while (r.next())
System.out.println("Column 1: " + r.getString(1));
Listing 2: JAVA op NonStop

Fig. 1: Anno 2008 NonStop AutoTMF
AutoTMF
NonStop AutoTMF is een verlengstuk van TMF, waarbij applicaties ook worden beschermd die zelf oorspronkelijk niet TMF aanroepen. AutoTMF werkt erg simpel: tijdens de verwerking van het programma dat geen TMF aanroept, is AutoTMF op de achtergrond aan het monitoren wat het programma aan het doen is. Als zo’n programma naar een audited file of database gaat schrijven, start AutoTMF een automatische transactie. Als het programma naar een niet-audited file of database schrijft, doet AutoTMF niets.
AutoTMF en Java
Om door middel van Java databasemutaties in een SQL/MX database te doen moet je een class aanroepen: com.tandem.tmf.Current, of de Java Transaction API (JTA). Je kunt de default API-TMF gebruiken voor Java transactie-verwerking door middel van een referentie naar UserTransaction, welke gebaseerd is op TMF:
import javax.transaction.UserTransaction;
import com.tandem.jta.JTAFactory;
// Referentie naar UserTransaction
UserTransaction utx = JTAFactory.getUserTransaction();
// Start transaction
utx.begin();
// Do work
// Commit transaction
utx.commit();
Listing 3: TMF gebaseerde transactieverwerking
Zelf aan de slag?
Als je zelf Java op een HP NonStop wilt proberen, maar je werkt niet op een HP NonStop computer, dan heb je nu de mogelijkheid om het te simuleren! Met de plugin Eclipse HP NonStop kun je simuleren dat je gebruikt maakt van HP NonStop Java met SQL en TMF. De plug-in is te downloaden van de website van HP, installeer deze en neem een kijkje in de wereld van HP NonStop!
Er zijn 3 stappen voor nodig:
- Download en installeer Cygwin, een Linux-like omgeving, vanaf http://www.cygwin.com.
- Download de HP NonStop Eclipse plugin vanaf de website van HP:
http://h20293.www2.hp.com/portal/swdepot/displayProductInfo.do?productNumber=HSB99V1
- Installeer de plugin: zie de afbeelding hieronder.
