26 juni 2008

PDF generatie bij Furore in de toekomst op nieuwe leest geschoeid

De mogelijkheid van PDF (Portable Document Format) generatie is een vereiste in veel door Furore gebouwde en te bouwen applicaties. In verschillende subsidie aanvraag systemen bijvoorbeeld dient een PDF versie van de aanvraag gemaakt te kunnen worden.

Om het wiel niet steeds opnieuw uit te hoeven vinden, heeft Furore in het verleden een aparte (Java) applicatie gebouwd, die door andere applicaties ten behoeve van PDF generatie aangesproken kan worden. Deze applicatie maakt op haar beurt gebruik van open source PDF bibliotheken (FOP en iText). Op zich een prima idee natuurlijk, maar in de loop der tijd zijn toch enige gebreken van deze PDF applicatie aan het licht gekomen, in het bijzonder het verouderde communicatieprotocol en de tegenvallende performance onder hoge belasting. Reden om eens te onderzoeken wat een goed alternatief zou kunnen zijn.

Al snel kwam het idee van een PDF web service naar boven: In elke taal is tegenwoordig uitgebreide ondersteuning voor het aanspreken van web services en een web service kan gemakkelijk op performance “getuned” worden. De vragen die zich echter vervolgens voordoen zijn: Waar moet de web service gehost worden en, daarmee samenhangend, in welke taal moet de web service geschreven worden? Een web service geschreven in Java kan immers niet op een IIS server gehost worden en omgekeerd kan een .NET web service niet op een Java applicatie server gehost worden.

In eerste instantie is nu de keuze gemaakt om voor nieuwe Java en .NET applicaties een aparte Java en .NET PDF bibliotheek (JAR resp. DLL) te bouwen die met de applicatie meegelinkt en vanuit de applicatie via een simpele API aangesproken kan worden. Deze bibliotheken kunnen vrij gemakkelijk gebouwd worden op basis van de eerder genoemde open source PDF bibliotheken. In een later stadium kunnen deze PDF bibliotheken eventueel weer dienen als basis voor het creëren van een PDF web service.