De nadruk in deze discussie ligt op de benchmarkverschillen tussen J2EE en Microsoft .Net. Een moeilijk punt, zo haalde Van der Lans in zijn column zelf al aan: goede representatieve benchmarks voor J2EE en .Net ontbreken.
De cijfers die hij citeerde, zijn ontleend aan een meting van applicatieservers. In hoeverre die getallen van die servers representatief zijn voor een complete programmeerstandaard, staat nog te bezien. Maar het is volgens ons zinniger om ons überhaupt af te vragen of die benchmarks wel terzake doen.
Ons antwoord luidt: nee, dat doen ze niet. Althans: niet geheel. Een onderneming die moet kiezen tussen J2EE of Microsoft .Net, maakt die keuze niet alleen op basis van prestatie en kosten. Er zijn veel meer factoren die meespelen. Zoals de volwassenheid en de beschikbaarheid van architectuur, de integratie met backend-systemen, portabiliteit, migratiekosten, ontwikkel-tools, beveiliging, schaalbaarheid en beschikbare applicaties van derde partijen. Wie beide platformen met elkaar wil vergelijken, moet die factoren in zijn overweging meenemen.
Openheid en volwassenheid
J2EE is een open standaard, breed gedragen door de industrie. Het is nu al de basis voor vele applicaties. Open standaarden bieden de klant keuzevrijheid ( in hardwareplatform bijvoorbeeld ), óók op latere momenten. Microsoft .Net is echter een gesloten strategie, eigendom van Microsoft alleen. Een technologie die bovendien nog niet volwassen is. Met .Net biedt Microsoft de zoveelste nieuwe visie, na onder meer COM, WOSA en DNA. Het omvat een nieuwe programmeertaal, ‘runtime’-omgeving, applicatiemodel, gebruikersinterface, en ga zo maar door. De producten bestaan alleen nog in bétaversies, zodat fouten en bugs op de loer liggen. Ook in de bedrijfsapplicaties zal veel gemigreerd moeten worden, met de nodige kans op fouten. Microsofts nieuwe technologie heeft kortom nog veel tijd nodig om te groeien en robuuster te worden. De vraag is wat de volgende visie zal zijn als deze groei de eerste problemen oploopt (zie onder ‘Beveiliging’). J2EE is dat stadium grotendeels voorbij. Al moeten we niet vergeten dat elke nieuwe specificatie ook nieuwe kinderziekten kan meebrengen. Het J2EE-platform evolueert echter in een geleidelijke volwassen manier naar een hoger abstractie niveau met elke release. Door deze migratie worden opleidings- en migratiekosten laag gehouden, waardoor uiteindelijk, op de lange termijn sprake is van een betere investering.
De integratie van bedrijfskritieke legacy-systemen verloopt onder J2EE stukken beter dan onder .Net. Het is immers een kerncompetentie van J2EE. Die integratie is in veel bedrijven zeer belangrijk, vooral uit oogpunt van investeringsbescherming. J2EE biedt hiertoe de J2EE Connector Architecture, die ervoor heeft gezorgd dat er nu een scala aan integratie-adaptoren op de markt is. Hiermee verloopt de integratie met omgevingen als Oracle, SAP en Siebel makkelijker en sneller, en kunnen programeurs zich meer richten op functionaliteit in plaats van op ‘low-level’ code.
Beveiliging
Databeveiliging is al jaren een ondergeschoven kind bij Microsoft. Het bedrijf geeft dit zelf toe, zoals blijkt uit het nieuwe initiatief ‘Thrustworthy Computing’. Het is maar de vraag of de beveiliging van .Net voldoet aan de wensen en eisen van organisaties. Microsoft schijnt nu al bezig te zijn om de beloften van webdiensten en .Net aan te passen, aangezien de beveiliging toch wat meer problemen oplevert dan verwacht.
J2EE ondersteunt (helaas?) alleen Java. Ontwikkelaars hoeven weliswaar slechts één programmeertaal te kennen, maar moeten zich de benodigde vaardigheden voor J2EE meestal eerst eigen maken. Microsoft .Net zal alle Microsoft-talen gaan ondersteunen via de Common Language Runtime. Dit lijkt een potentieel voordeel, nu die vaardigheden in veel organisaties al beschikbaar zijn. Veel bedrijven schrijven nu al applicaties in VisualBasic. Maar daarmee is .Net niet per definitie makkelijker. Want ook VisualBasic wordt gewijzigd om de benodigde objectgeoriënteerde functies van .Net te bieden. Organisaties zullen dus zowel voor J2EE als voor .Net investeringen moeten doen om hun vaardigheden op peil te krijgen.
Microsoft biedt al jaren zeer goede ontwikkel-tools. Ook Visualstudio.Net, een geïntegreerde ontwikkelomgeving voor alle Microsoft-talen, is van hoge kwaliteit. Dat is onmiskenbaar een voordeel, maar helaas ook onmisbaar. Analisten verwachten namelijk dat circa 60 procent van de bestaande Microsoft-applicaties herschreven moet worden om compatibel te zijn met .Net.
De 100 procent interoperabiliteit van Microsoft zou een pluspunt kunnen zijn. J2EE biedt een alternatief, Eclipse (http://www.eclipse.org). Dit omvat een generiek applicatieontwikkelraamwerk waarin bedrijven zoals Rational, Mercator, Versata, IBM, BEA, en Borland hun applicatieontwikkeltools laten aansluiten tot een geintegreerde omgeving.
Microsoft .Net en J2EE zijn beide ontworpen voor webdiensten. Binnen het J2EE-platform kunnen die nu al op productie schaal worden gemaakt via JAXP. Microsoft biedt hiervoor nog geen volwaardig alternatief. Er is een bétaversie voor webdiensten beschikbaar, maar Microsoft ondersteunt geen ebXML en neemt niet deel aan de ebXML-gemeenschap. Hun alternatief voor b2-samenwerking en integratie is het eigen BizTalk-raamwerk, met eigen SOAP-extensies.
Interoperabiliteit
Zet Microsoft met .Net een punt achter de hegemonie van J2EE? Betrouwbare benchmarks ontbreken vooralsnog. Bovendien is alleen kijken naar prestaties en kosten zinloos. Bedrijven zullen namelijk het complete plaatje in ogenschouw willen nemen. Aangezien bij een e-business-oplossing juist de integratie tussen verschillende bedrijven en partners essentieel is, is dan ook vaker sprake van een ‘en/en’ keuze dan van een ‘of/of’ keuze. De noodzaak tot interoperabiliteit (lees: gebruik van open standaards) is dan vele malen belangrijker dan de verwerkingssnelheid. Al deze zaken afwegend, slaat – ongeacht hoe de benchmarks zullen uitvallen – de balans nog steeds fors door naar J2EE. Misschien dat Microsoft .Net in dit beeld een deuk kan slaan. Maar we zullen het, heel eenvoudig, eerst moeten zien.
Maarten Goossens Technical Specialist Websphere Ronald Velten, Marketing Manager Software Ibm Software Group