Applicaties voor de consument Abstract Het maken van een applicatie voor grootschalige toepassingen voor niet getrainde gebruikers vergt een aanpak die niet gebruikelijk is voor standaard Unix ontwikkelaars. Echter, met de introductie van Mac OS X komt binnenkort een groot Unix platform met gewone gebruikers beschikbaar. In deze presentatie wordt ingegaan op een ontwerp studie voor een financiële applicatie voor eindgebruikers. Hierin wordt aandacht gegeven aan de ontwerp eisen ten aanzien van de UserInterface, de bedrijfslogica en de communicatie aspecten. Gezien het toepassingsterrein dienen de veiligheidsaspecten eveneens in ogenschouw te worden genomen. Ingegaan wordt op hoe juist op een op Unix gebaseerd systeem met goede UserInterface hulpmiddelen relatief snel een dergelijk systeem gerealiseerd kan worden.
Omgeving Het Apple Macintosh platform is het op een na grootste consumenten platform na het Microsoft Windows platform. In Nederland zijn meer dan een half miljoen Apple Macintosh systemen in gebruik, waarvan meer dan 3/4 in de komende twee jaar zal migreren naar Mac OS X. Van oudsher is deze Apple Macintosh wegens zijn grafische kwaliteiten en gebruiksgemak het favoriete platform voor de grafische en creatieve markten. Met de opkomst van Internet, de Digitale video en Digitale audio is de Mac een vooraanstaand speler op de consumenten markt. Na de officiële introductie van Mac OS X in maart 2001 zullen de Macgebruikers in de nabije toekomst migreren naar een op UNIX gebaseerd operating systeem. Dit Mac OS X combineert de kracht en stabilteit van een UNIX operating systeem met de User-Interface kwaliteiten van het originele Macintosh OS. Hiervoor werd door Apple een geheel nieuwe UserInterface omgeving genaamd AQUA gecreëerd. Met elke licentie MacOS X wordt een ontwikkel omgeving geleverd waarin zowel klassieke UNIX commandline applicaties gemaakt kunnen worden als AQUA applicaties met behulp van een Objective C omgeving. De Javaengine van Mac OS X ondersteunt AQUA, zodat ook Java als ontwikkelomgeving gebruikt kan worden. Er is ook een alternatief hiervoor met de Metrowork’s CodeWarrior omgeving voor C++ en Real Software’s RealBasic omgeving.
Doelstelling Alhoewel er talrijke voorbeelden zijn van het gebruik van een Macintosh in de administratieve sfeer is het aanbod van goed bruikbare financiële applicaties beperkt. Deze programma’s zijn echter een noodzaak voor de acceptatie van de Mac als consumenten platform. De introductie van een totaal nieuwe versie van het Mac OS was een goede reden om uit te zoeken in hoeverre het mogelijk was om gemakkelijk een consumenten programma te maken met behulp van de nieuwe ontwikkel tools. Uitgangspunt was het onderzoeken van de mogelijkheden en het uitproberen van UserInterface elementen, zonder direct een daadwerkelijk product te maken. Door een daadwerkelijk (mogelijk) product voor ogen te hebben wordt men directer geforceerd om concreet na te denken over de juiste user-interface elementen.
Als uitgangspunt werd gekozen voor een programma voor het beheren van betalingen. Dit is voor een breed publiek een nuttig programma en kan via een modulaire opzet communiceren met verschillende banken. Het programma biedt de mogelijkheid een aantal rekeningen te beheren in combinatie met spaar- en beleggings rekeningen. Om bedrijfsmatige toepassingen te ondersteunen worden verschillende verantwoordelijkheden, waaronder fiatering, ondersteund. Het is een multi-user programma waarbij op aangegeven momenten met de bank gecommuniceerd wordt voor bijwerking van gegevens. Het gangbare Nederlandse uitwisselings bestand CLIEOP3 wordt ondersteund. Indien deze ontwerpstudie mocht resulteren in een product zal dat niet voor januari 2002 zijn, zodat slecht Euro’s ondersteund worden.
Aanpak De belangrijkste onderdelen voor het programma zijn: 1. 2. 3. 4. 5.
UserInterface Bedrijfslogica Opslag Conversie Communicatie
UserInterface Het uitgangspunt voor het UserInterfase is AQUA. De beste ondersteuning voor AQUA wordt geleverd door de Cocoa omgeving. Dit is een Objective C omgeving met ondersteuning van een Interface Builder. Vandaar dat Cocoa gekozen is als ontwikkel omgeving voor de UserInterface. Elke gebruikershandeling wordt binnen deze applicatie ondersteund. De belangrijkste functionaliteiten zijn: 1. Het invoeren van betalingen 2. Het inzien van verwerkte betalingen en ontvangsten. 3. Het importeren van betalingen en exporteren van verwerkingen. 4. Het fiateren van opdrachten 5. Het genereren van overzichten en rapporten. 6. Het beheren van de instellingen van de applicatie De functionaliteiten 1 en 2 zijn voor de gebruiker het belangrijkst en vereisen dan ook goed ontworpen userdialogen.
Bedrijfslogica De bedrijfslogica bevat de ondersteunende routines voor de verschillende modulen. Hierbij valt de denken aan verschillende consistency regels. Daarbij wordt gedacht aan een check op geldigheid-bankrekingnummer, het opzoeken in verschillende hulptabellen zoals landen en valuata, regels met betrekking tot maximale en minimale bedragen, regels met betrekking tot verwerkingsdagen, etc, etc. Deze routines maken in principe geen gebruik van user-interactie en kunnen in elke programmeertaal geschreven worden. Gezien de mogelijkheden van koppelingen naar de verschillende andere modulen is gekozen voor standaard C. Deze keuze maakt een integratie met andere talen gemakkelijk en gezien de aard van de regels kan niet veel gewonnen worden met een hogere programmeertaal.
Opslag De applicatie maakt gebruik van gegevens die vertrouwelijk zijn. Alhoewel een UNIX systeem goed te beveiligen tegen ongeoorloofd gebruik wordt gekozen voor een extra bescherming. Alle gegevens worden versleuteld opgeslagen. Geëxporteerde gegevens worden voorzien van een digitale handtekening voorzover het export-formaat dat toelaat. Bij het importeren van gegevens worden digitale handtekeningen gecontroleerd indien zij aanwezig zijn. Mac OS X biedt een heel scala aan beveiligings-opties die zoveel mogelijk gebruikt worden. De meeste opslag methoden zijn geimplementeerd als library modulen en daarom in C gerealiseerd.
Conversie Binnen het systeem worden verschillende import- en export formaten onderkend. Juist de diversiteit aan formaten vraagt om een flexibele aanpak. Gekozen is voor Python als het belangrijkste framewerk om de conversies uit te voeren. Python bied een scala aan mogelijkheden voor het inlezen van verschillende formaten. De programmeertaal is snel en flexibel, wat de ontwikkelingstijd van nieuwe import/export modulen bijzonder kort maakt. Libraries kunnen gemakkelijk in Python geimporteerd worden.
Communicatie De communicatie is binnen het project een enigszins onderbelicht punt. Gezien het feit dat het slechts een ontwerp studie is, is er weinig contact
geweest met de banken om de communicatie af te stemmen. Anderzijds hebben de meeste banken tegenwoordig een web-based applicatie voor het afhandelen van betalingen. Dit maakt dat het niet al te moeilijk is om de nieuwe applicatie direct als client met de web-applicatie van een bank te laten communiceren. Door de modulaire en flexibele aanpak zal ook directe communicatie met een bank tot de mogelijkheden kunnen behoren. Gezien de sterke overeenkomst met de conversie module is ook hier gekozen voor Python als implementatie vehikel.
Gebruikers Aspecten Voor een applicatie die grootschalig gebruikt wordt zijn het gebruiksgemak en stabiliteit de belangrijkste eigenschappen. Wij zijn van mening dat een UserInterface met duidelijke, en in eerste instantie beperkte functionaliteit een betere gebruikers beleving biedt dan een UserInterface dat veel mogelijkheden toont. We hebben dan ook getracht een en ander zo eenvoudig mogelijk te houden. Via voorkeuren kunnen de meer geavanceerde gebruiksmogelijkheden worden geactiveerd. Deze filosofie is onder andere toegepast op het onderdeel betaalopdrachten. Een van de belangrijkste aspecten van deze applicatie is het aanmaken van betaalopdrachten. In eerste instantie wordt er een eenvoudig scherm getoond voor de opdrachten.
Scherm opdrachten In de basis mode kunnen slechts gewone betaalopdrachten en acceptgiro’s worden ingevoerd.
Afhankelijk van de wensen van de gebruiker kan de optie Buitenlandse Betalingen geactiveerd worden. Ook kan via voorkeur instelling het importeren van betaalopdrachten mogelijk gemaakt worden. In de basis instelling is er slechts een gebruiker bevoegd om het programma te gebruiken. In expert mode is het mogelijk verschillende gebruikers te definiëren die verschillende autorisaties hebben voor verschillende rekeningen. Het is mogelijk om apart te fiateren. Bij het ontwerp is uitgegaan van een zo groot mogelijke flexibiliteit aan mogelijkheden voor het programma. De conversie modules beelden de gewenste functionaliteit af op de mogelijkheden die bepaalde banken al dan niet aanbieden.
Modulaire consistency checks De meeste programma’s zijn strikt in de consistency checks. In een numeriek veld moet en zal een getal worden ingevuld, een bankrekeningnummer moet aan de elf-proef voldoen. Alhoewel de gebruiker waarschuwingen en validaties apprecieert, dient het afdwingen van correcte waarden te worden vermeden. Daarom is gekozen voor een waarschuwingstekst gerelateerd aan het invoerveld, waarbij de gebruiker de overige velden kan invoeren. Bij natuurlijke controle punten zoals het versturen of bewaren van gegevens wordt gebruiker er op gewezen dat de actie niet uitgevoerd kan worden als niet eerst de foutieve waarden gecorrigeerd zijn.
Ontwikkelings Aspecten Stabiliteit Gezien de aard van het programma dienen maatregelen genomen te worden om de stabiliteit van de applicatie zo groot mogelijk te maken. De functionaliteiten zijn ondergebracht in verschillende modulen die via de command-line aan te roepen zijn. Hier kunnen geautomatiseerde regressietesten worden uitgevoerd. De verschillende modulen lezen een bestand en creeëren tijdelijke resultaat bestanden. Een aparte module voert consistency checks uit en verzorgt verwerking van de transacties. In de loop van de ontwikkeling van het programma blijkt dat het UserInterface zo complex wordt dat een volledige afdekking van de business-rules lastig binnen het UserInterface af te dwingen is. Daarom worden deze rules in aparte modules ondergebracht. Het UserInterface kan
op natuurlijk momenten (zoals bewaren) de consistency van de data door deze modulen laten controleren.
Frameworks Mac OS X biedt een aantal Frameworks om bepaalde funtionaliteiten op een gemakkelijke manier te integreren in een Applicatie. Zo biedt Mac OS X een KeyChain framework. Dit framework biedt de mogelijkheid om per programma en gebruiker wachtwoorden veilig op te slaan. Door gebruik te maken van het Framework kan op een eenvoudige manier een complexe taak zoals het beveiligd bewaren van wachtwoorden afdoende worden opgelost. Binnen deze applicatie wordt ook nog gebruik gemaakt van het Security Framework (oa. Versleuteling) en Autorisatie Framework waarmee de verschillende beveiligingsaspecten van de applicatie afgedekt zijn.
Conclusie Mac OS X biedt een krachtig platform voor de ontwikkeling van applicaties. Enerzijds biedt het een sterke basis in de vorm van het BSDplatform, anderzijds met Aqua een rijk UserInterface-platform. Met het Mac OS X ontstaat een van de grootste Unix markten (500.000 potentiele gebruikers) waar behoefte is aan een scala van Unix-applicaties. De van origine MacOS gebruikersgroep zal een Grafisch UserInterface een essentieel onderdeel van applicaties beschouwen. Onze indruk is dat dit op Mac OS X goed te realiseren is.