Deze opinie is van een externe deskundige. De inhoud vertegenwoordigt dus niet noodzakelijk het gedachtegoed van de redactie.

Java-consultant: jaren voorsprong voor J2EE-bouwers

J2EE versus .Net: prestatie is maar één aspect

De lezing die Rick van der Lans bijwoonde lijkt sterk op het 'paper' van Roger Sessions van ObjectWatch, 'Java 2 Enterprise Edition (J2EE) versus The .Net Platform - Two visions for eBusiness'[1]. De spreker wil een prestatievergelijking geven tussen J2EE en Microsoft .Net, beide platformen voor ondernemingsapplicaties.

Hoewel een uitspraak als 'Microsoft .Net is sneller dan J2EE' op zichzelf betekenisloos is, beide zijn immers platformen, specificaties, en geen implementaties, probeert de spreker de vergelijking toch te maken. Daarvoor kiest hij cijfers van een publieke benchmark, TPC-C. Omdat er noch voor J2EE, noch voor Microsoft .Net cijfers in deze benchmark voorkomen (voor .Net is dat overigens simpel te verklaren: de eerste definitieve versie van .Net is pas zeer recent vrijgegeven) kiest hij er twee uit, eentje voor BEA's Tuxedo, en eentje voor Microsoft's COM+. Vervolgens deelt hij het cijfer voor Tuxedo door twee en concludeert dan dat Microsoft .Net zeven maal zo snel is als J2EE. Dat is op zijn minst dubieus te noemen, en wel om verschillende redenen.

Is Microsoft .Net sneller dan J2EE? Columnist Rick van der Lans zwengelde de discussie hierover aan in zijn column van 1 februari:Op verzoek van Computable geven IBM, Microsoft, en een Java-consultant hun visie.
Allereerst valt uit de TPC-C benchmark uitsluitend de 'bang for the buck' te distilleren. Omdat de TPC-C benchmark geen enkele beperking oplegt aan de hardware (aantallen systemen, aantallen processoren), het besturingssysteem, de middleware en de database-programmatuur, is sprake van een vergelijking tussen een onbekend aantal grootheden. De complexiteit van het beheer van de configuratie doet niet ter zake voor de benchmark. De enige maat die er direct uit valt af te leiden is het aantal tpm-C (transacties per minuut) per dollar. Te berekenen valt nog het aantal tpm-C per processor, of het aantal tpm-C per systeem. Vooral dat laatste valt aanzienlijk minder gunstig uit voor COM+.
Verder is de TPC-C benchmark een maat voor het aantal database-transacties. Database-transacties maken weliswaar een belangrijk deel uit van enterprise-applicaties, maar zeker geen 100 procent. In die zin zijn de cijfers van de TPC-C benchmark van beperkte relevantie. Ook is de arbitraire deling door twee bij Tuxedo zeer aanvechtbaar. Zowel J2EE als Microsoft .Net maken gebruik van een 'runtime'-omgeving. In het geval van J2EE is dat de JVM (Java Virtual Machine); in het geval van Microsoft .Net is dat de CLR (Common Language Runtime). Beide 'runtime'-omgevingen verwerken een tussentaal, bij J2EE is dat de Java bytecode, bij Microsoft .Net de Intermediate Language. Beide 'runtime'-omgevingen gebruiken een 'just-in-time-compiler' om deze tussentaal om te zetten naar machinecode. De eerlijkheid gebiedt dan, volgens dezelfde redenering als voor J2EE, ook het cijfer voor COM+ door twee te delen.
Tot slot kun je niet ongestraft cijfers nemen voor twee willekeurige platformen, te weten BEA Tuxedo, dat geen J2EE-platform is, en Microsoft COM+, dat geen Microsoft .Net-platform is, en daaruit concluderen dat .Net sneller is dan J2EE!

Eerlijke vergelijking

Om een werkelijk eerlijke vergelijking tussen (implementaties van) J2EE en Microsoft .Net te kunnen maken is een nieuwe benchmark nodig. TPC-C meet niet voldoende, en ook TPC-W (een benchmark voor Web e-commerce) komt voorlopig niet in aanmerking; in het TPC-W whitepaper [2] staat:
"TPC-W does not require that an e-commerce package be used to implement the Web Server application. Most TPC-W solutions are custom coded applications written as close to the Web Server Internet layer as possible. The benchmark provides a great test of web server hardware, operating system and basic internet software capability but does not provide any information on the higher-level e-commerce packages."
Het dichtst in de buurt komt Ecperf [3], maar die benchmark is specifiek voor J2EE/EJB, en dus niet direct overdraagbaar naar Microsoft .Net. Microsoft heeft een poging gedaan om de J2EE-referentieimplementatie, de Java Pet Store, over te zetten naar .Net [4], maar dit heeft slechts geleid tot modder gooien tussen Microsoft en Oracle.
Overigens snijdt de hele discussie weinig hout; prestatie is slechts een van de minder belangrijke aspecten die een rol spelen bij de keuze tussen J2EE en Microsoft .Net. Bij voldoende prestatie zijn zaken als veiligheid, betrouwbaarheid, stabiliteit, onderhoudbaarheid, uitbreidbaarheid en schaalbaarheid voor de gemiddelde zware bedrijfsapplicatie van veel groter belang.
Bouwers van zware bedrijfsapplicaties hebben veel meer belang bij een platform dat hen de mogelijkheid biedt om snel tot zo'n resultaat te komen. Voorlopig hebben de J2EE-bouwers enkele jaren voorsprong op de .Net-bouwers.
 

G.J. Van Oosten West Consulting

Referenties

  1. http://www.objectwatch.com/FinalJ2EEandDotNet.doc
    Reacties hierop o.a. op
    http://www.theserverside.com/home/thread.jsp?thread_id=6197
  2. http://www.tpc.org/tpcw/TPC-W_Wh.pdf
  3. http://ecperf.theserverside.com/
  4. http://www.gotdotnet.com/team/compare/petshop.aspx
    Reacties hierop o.a. op
    http://www.theserverside.com/discussion/thread.jsp?thread_id=9797

x

Om te kunnen beoordelen moet u ingelogd zijn:

Dit artikel delen:

Stuur dit artikel door

Uw naam ontbreekt
Uw e-mailadres ontbreekt
De naam van de ontvanger ontbreekt
Het e-mailadres van de ontvanger ontbreekt

×
×
article 2002-03-01T00:00:00.000Z G.J. van Oosten
Wilt u dagelijks op de hoogte worden gehouden van het laatste ict-nieuws, achtergronden en opinie?
Abonneer uzelf op onze gratis nieuwsbrief.