Discussions

News: Benchmark Wars: Oracle9iAS vs. Microsoft .NET

  1. Benchmark Wars: Oracle9iAS vs. Microsoft .NET (141 messages)

    Oracle has recently run a Java Pet Store benchmark to compare the performance of Oracle9iAS and the .NET Pet Shop, in response to Microsofts recent comparisons. Oracle found that without caching, Oracle9iAS was up to 18 times faster than Microsoft .NET, while using just half the resources.

    In November 2001, Microsoft announced a benchmark comparing the performance of Sun's Java Pet Store blueprint application, against the performance of the .NET Pet Shop application. The latter is a Microsoft port of the Java Pet Store to C# for the .NET platform. The comparison was based on Oracle's published performance data for a version of the J2EE Java Pet Store application running on the Oracle9i Application Server. Microsoft didn't test the Oracle9i Application Server. Instead, the .NET results were compared to Oracle's published results from June 2001.

    Read more at Oracle9 iAS vs. Microsoft .NET Benchmark Results (PDF)

    Threaded Messages (141)

  2. No one should be surprised, since when was microsoft's tools performance oriented?
  3. I think Oracle is not telling the truth.
  4. I'm still waiting for an update on Orion's benchmarks. I know Orion is at the heart of Oracle9iAS, but I'm an Orion user because I can't afford Oracle =p.

    Anyway, it's nice to hear that a company stepped up against Microsoft (I guess their name was on the line so they had to step up). I wonder if everyone else is going to be using the Pet Store to compare performance figures.

    On a side note, would a person have to be locked in to Oracle8i/9i database to achieve the performance they're claiming? I realize it's not total vendor lock-in per se (it's J2EE-compliant, right?), but I think it'd be funny if Oracle used SQL Server or some other RDBMS to prove that it can function well with a non-Oracle database.
  5. dzihad to M$ ! ;)
  6. The latest Oracle results are not credible because Oracle has not published any of their code that was tested, hence developers do not know what was tested. The .NET Pet Shop results have full disclosure including published source code, data load, data schema, test methodology, etc. so that anyone can replicate the tests. No one can replicate the Oracle tests and no one knows what they actually tested. Without full disclosure Oracle hence has zero credibility on this benchmark and the results will be ignored. Also, Microsoft challenges the Oracle results and we invite Oracle to meet us in an independent lab of mutual agreement to have each Pet Store benchmark independently verified. Look for a more complete response on http://www.gotdotnet.com/team/compare shortly, which includes several unfair techniques Oracle could easily have used to improve their results. Unfortunately, without their code, data load, test scripts, test software and the like, customers do not know what was tested by Oracle. What is Oracle hiding?

    Greg Leake
    Group Product Manager
    Microsoft Corporation

  7. Oracle Crudibility[ Go to top ]

    Since when has Oracle produced a credible test of it's own product?

    The marketing machine rolls on...
  8. Oracle Crudibility[ Go to top ]

    I agree with Greg on this. Oracle really needs to release its code so we can look at the optimizations, and how much they gutted the PetStore to achieve their results. Not that there is anything wrong with optimization; it's just that we should recognize that an Oracle-optimized Petstore should naturally only compete with a Microsoft-optimized .NET Petstore (within certain acceptable limits of optimization, I don't want to see any hand-crafted IL code <grin>).

    Stu
  9. Oracle Crudibility[ Go to top ]

    Obviously I agree here. The point I would like to make is that optimizations are fine as long as they are fully disclosed. However, *functional equivalence* of the tested application is imperative, and this is why Oracle needs to publish their code/data load/test software etc.

    As for MS not answering questions/allegations about our methodology in our tests, I think we have done so both on this forum and on the gotdotnet.com site with the FAQ and related materials. I am not sure what allegations people think remain unanswered. Most importantly we published the code to the app tested, the data load and test scripts/test software used, etc (full disclosure) so that customers can replicate our results and also see that what was tested was the exact functional equivalent of the Java Pet Store. Oracle has done none of this.

    -Greg
  10. Oracle Crudibility[ Go to top ]

    Hi Greg,

    Just one quickly, I know you are a busy person but just answer this question:

    Since, I think portability falls under "functional requirements" and hence the "functional equivalence" you speak of, how can I develop the .Net Pet Store under Solaris with a Postgress Repository? How do I deploy it latter in a Mac box with a CloudScape database?


    angel
  11. Oracle Port O' Rama[ Go to top ]

    <QUOTE>
    Since, I think portability falls under "functional
    requirements" and hence the "functional equivalence"
    </QUOTE>

    Mmmmmm... That's a big leap o' logic!
  12. Oracle Port O' Rama[ Go to top ]

    Portability is not part of end-user functional equivalence for the Pet Store application. The end-user uses a browser to access the Pet Store, and they have no idea whether its running on Solaris, Linux, W2K or whatever. It may be that portability is a requirement for the developer of a specific application, but do not confuse application portability with application functionality.

    As far as portability is concerned, the requirement for OS portability of a given app really varies from customer to customer, and from project to project. One point of the benchmark is to show what kind of performance penalty one pays for application portability using Java. Once an organization knows the benefits and the costs of portability (including potential performance/scalability costs, developer productivity costs, app server licensing costs, etc.), then an *informed* decision can be made on the choice of one programming platform vs. another. That's the point of benchmarking to begin with, isn't it?

    -Greg

  13. Oracle Port O' Rama[ Go to top ]



    I notice that of all the "potential costs" that were mentioned - none included maintenance and long-term integration costs. These costs make up between 70-80% of the total cost of a project.

    There is a big difference between the Microsoft platform and the J2EE platform with regard to these cost areas.

    One is an integrated product/technology stack - the other one is an integratABLE product/technology stack.

    (Incidentally where I can pick and choose my products according to my problem - AND - I can change my mind later if the problem (or my understanding of it) changes).
    In my opinion, the integratABLE solution is always going to be more cost effective in the long term (especially in larger scale systems).

    Portability is more than just Operating System portability. It is the concept of vendor neutrality which essentially paves the way for standards-based integration. Lowering the total cost of long term maintenance and integration , in my opinion, is looking at the dollars in the equation rather than the cents.

    As far as I am concerned, Microsoft, Oracle and all the other Appserver vendors can do all the PetStore drag-racing they want. Meanwhile, the rest of the population will be getting on and doing some work. At the end of the day, saving a few bucks on hardware isnt going to make a big impression on the balance sheet if the application isnt extensible enough to survive more than a couple of years of requirements change.


  14. Microsoft Bug O' Rama[ Go to top ]

    Well said Nick.

    Besides, history shows that maintenance of Microsoft servers as being among the most expensive in the market thanks to its security holes and bugs. But like Greg said, I guess the end user doesn't know what platform the system is running on. Oh wait. ASP's are usually run on IIS which means it must be a Windows operating system. Wow that was pretty easy. Now I can attack a server from three different fronts. Maybe he meant the user is not supposed to care.

    With Java, an added bonus to portability is security. Anyway, sorry for regurgitating.

    Back to the subject at hand, Oracle is pretty aggressive when it comes to comparing its products. They go head to head a lot with IBM's DB2, but for some reason, this fight between MS and Oracle is a little dirtier. Both parties are guilty of withholding details about their benchmarks, but maybe they're just bluffing to see who's gonna call.
    Once all the cards on the table, we'll see who had the ace up their sleeve.
  15. Microsoft Bug O' Rama[ Go to top ]

    I'm a bystander and reading threads that is important for us, and I hope this kind of discussion will continue...
  16. Oracle Port O' Rama[ Go to top ]

    Nick,

    I have just read your post and thank you for an intelligent and well thought out vs. flame response. Your points on app integration, maintenance costs etc. are valid and are important considerations.

    I think there is no definitive word yet on whether a well-constructed J2EE-based app is more integratable with other apps than a well-constructed .NET app, or whether the maintenance costs are lower (certainly the J2EE licensing costs are typically much, much higher, but I know of no real good study of maintenance costs which is much more subjective and harder to measure). So I think we need more data and the jury is still out on this. With that said, in terms of ongoing maintenance/manageability costs this is an important area where arguably Microsoft has not paid enough attention in the past, but we have become much more focused on in past 3 years and especially with .NET. For example, .NET components do not rely on the registry anymore, fully support side by side installation, and have a very elegant versioning model compared to COM+. Also, we now have a simple XCOPY deploy to live servers, so unlike COM+, you do not need to take down servers to perform component updates. Other features in .NET such as memory leak detection, automatic process cycling, a common language managed runtime, and the like make it much more reliable than previous MS technologies. So I hope at least some Java developers give .NET a good look before simply dismissing it out of hand, becuase a lot of work went into it...including incorporating lots of customer feedback on areas we have been dinged on in the past. And I do believe with .NET organizations can save a lot of money and developer time over J2EE-based app servers which I think are largely overhyped and way over priced.


    On app integration, the adoption of XML and Web Services as native to .NET (integrated at the core) means that the interop and integration story for .NET is much, much better than it was for COM+. We think the app integration problem is *the* key problem to solve in the enterprise...vs. the write once run anywhere problem. That is why we have been so active with SOAP and XML standards, and have created products like .NET and BizTalk. You should investigate the .NET interop story further on the MSDN Web site. The good news is with the endorsement of SOAP by J2EE vendors, objects created in J2EE can directly invoke objects created in .NET, and vice versa, no matter the platform the objects are running on. In fact in VS.NET, we provide single click references to any SOAP/UDDI object running on *any* platform, even providing intellisense code completion against these objects running on other platforms as you type code against them. We also provide technologies to integrate .NET apps with just about any major database system, CICS, mainframe, AS400 systems, and even include graphical schema creation and stored proc editing for Oracle databases. With the adoption of XML as the native data representation mechanism (vs the older COM+ based ADO), data can be much more freely passed between different databases, enterprise systems and OS platforms than ever before.

    Greg Leake
    Group Product Manager
    Microsoft Corporation


  17. Oracle Port O' Rama[ Go to top ]

    Nick,

    The .NET framework can be downloaded and installed for free on any existing W2K server, Windows XP, Windows.NET, Windows NT 4.0 and Win 98 system. Just like with J2EE app servers, you still must pay for the underlying OS. So I am not sure I understand your point here, since if I buy a J2EE app server I also must have a paid license for the underlying OS I deploy J2EE to. And if I want support for my Linux OS, I have to pay, its not free, nor is Solaris, AIX, etc. free.

    As for messaging stds in .NET, yes there is message queueing std based on MSMQ built in for building message-based systems. This can interop with IBM MQ Series, for example, on other legacy platforms.

    -Greg
  18. Oracle Port O' Rama[ Go to top ]

    <Quote>
    So I am not sure I understand your point here, since if I buy a J2EE app server I also must have a paid license for the underlying OS I deploy J2EE to. And if I want support for my Linux OS, I have to pay, its not free, nor is Solaris, AIX, etc. free.
    </Quote>

    According to this, since you have pay for support, Linux is not really free. But .Net framework is free. So, is support for .Net free??? Or does the cost of support only apply as a cost to Linux and not to .Net? I'm confused...
  19. Oracle Port O' Rama[ Go to top ]



    My point was that the .net runtime is not free. It is included in the cost of Windows.

    If I choose to, I can take free JBoss and install it on Linux (with no support) and it wont cost me a penny. That is what I mean by free.
    (except that if I bought the computer from Dell or Compaq, then it is probable that I actually already paid for Windows whether I liked it or not ;-)

    If I could *only* run a free iPlanet appserver on solaris, or a free websphere on AIX, or a free HP Bluestone on HPUX, then this wouldnt be free either. But this is not the case.

    When I can download a free .net runtime and run it on some other platform other than windows, then I will concede it is free.

  20. Oracle Port O' Rama[ Go to top ]

    .Net is a concentration camp pretending to be a safehouse.

    Remember the outcry from microsoft ? The IE browser is the OS. And now .NET is the OS. .Net users, line up to get your gonads clipped. Freedom is being curtailed; Furthermore, with putting up their great wall of china, something interesting has happened the OS crashes often as traffic in downtown new york on St.Patrick's day.







  21. Oracle Port O' Rama[ Go to top ]



    Can we PLEASE keep the posts slightly relevant and technical?


    :-)

  22. Oracle Port O' Rama[ Go to top ]

    .Net is a concentration camp pretending to be a safehouse.

    Remember the outcry from microsoft ? The IE browser is the OS. And now .NET is the OS. .Net users, line up to get your gonads clipped. Freedom is being curtailed; Furthermore, with putting up their great wall of china, something interesting has happened the OS crashes often as traffic in downtown new york on St.Patrick's day.







  23. n n[ Go to top ]

    ".Net is a concentration camp pretending to be a safehouse" n n

    This is starting to get really stupid.
  24. Oracle Port O' Rama[ Go to top ]

    Nick,

    OK, as long as you qualify it with JBOSS on Linux with no support, yes at that point you avoid the modest cost of Windows 2000 for your Dell or Compaq machine. But to be clear, .NET the framework is just as free as JBOSS, except when you run JBOSS on a free unsupported copy of Linux then you can even do away with the OS licensing cost for the Intel server and save perhaps $1K-$3K in W2K license fees for that machine. And if you already have a licensed copy of Windows 2K, Win XP, Win 98, etc on your Compaq or Dell machine, then there is no additional license fee for .NET...simply download and install on any number of existing machines with zero additional cost.

    But the main point is that today when people talk about J2EE app servers in the enterprise, they are really talking about Bea and Websphere, which are hugely expensive products compared to .NET.....if you draw a scale (which I can't do in this post), the licensing fees for Bea, IBM would be very tall bars, with .NET a tiny short bar close to the free JBOSS/Linux (Linux with no support) entry. And while total system cost over the life of the app is important as you point out, do not ignore the up front license fees as insignificant for the typical enterprise, especially in this economic climate. For example, to install Websphere Advanced Edition on a cluster of 4 8CPU servers will cost $384,000.00 plus the cost of the hardware and the OS. To install .NET on a cluster of 4 8CPU servers will cost $23,992 (.NET is free, this is the cost of the OS only including internet connector license for full Internet authenticated access for unlimited users on W2K AS). That is a big difference for a single cluster of servers. Multiply this out for an organization with 10 similar 4-server clusters, and you are talking about saving $3.6 million dollars in licensing fees alone. That is not an insignificant figure and certainly needs to be considered as part of the picture. If you look at ecPerf, in fact, its very purpose is to measure precisely this cost relative to system performance. Unfortunately .NET is prohibited from entering ecPerf for this type of comparison, and Java app servers refuse to submit to TPC-W.

    Another factor that has not been brought up is the fact that IBM and BEA each make a lot of their revenue in consulting fees. When you buy Websphere or BEA, a lot of enterprise customers also end up buying into huge consulting contracts to build and support the Java apps. In fact, this is the business model for IBM...sell Websphere and then sell the IBM Global Service consultants that go with it. Similar story for BEA and Oracle. The MS business model is very different...we do not aim to make money on selling consultants, just the software.

    -Greg

  25. Oracle Port O' Rama[ Go to top ]

    Greg -
    I appreciate the fact that you are here and I also think that you have interesting things to say. Just a point, though regarding MS consultants: Having worked with a number of them recently, they are most assuredly out to sell the whole package - software & consulting. Not just software. Yes, MS wants to sell its software, but they are just like any other company. I expect that if they could increase their revenue by selling more consultants they would (who wouldn't). Believe me, they push it, in my experience anyway. When MS approaches a large company, their business model is to push the software along with the consulting.

    Cheers
    Ray
  26. Oracle Port O' Rama[ Go to top ]



    Just a couple of quick points (I am forgetting about the hair-splitting about whether .Net is free or not)

    I havent done any sums with regards to the IBM license costs that you quote - however I will say that if you are buying into approx 32 CPU's of software (which is a reasonably big purchase), you will get a sizeable discount. Depending on your "buying power", you can get very reasonable discounts (I am not talking just 10-20% here).

    With regard to the fact that companies like IBM and BEA make lots of money out of consultancy fees... - this could well be true. But perhaps this is because they get involved in more large scale projects - where consultancy is needed. No offence, but I dont see too many M$ consultants on EAI projects, large financial projects or large portal projects.

    While it is true to say that ANY company tries to get some consultancy in the door (M$ definitely no exception here), of the two companies you mentioned, I would say that IBM is more inclined push this than BEA - to some extent the ease-of-use and reliability of the software also governs how much you *need* consultancy. With regard to IBM, however, most all of their consultants are first-rate. I havent worked with any personally - but I have never heard a bad word spoken about them. Its probably money well spent.

    Dont misunderstand me - the over-spending of money is always difficult to justify - not just in "these difficult times". However, I have always found "that in the long run, its cheaper to get the best in the beginning" - and that motto doesnt just apply to software. I have seen far too much money wasted trying to entertain "cheap" alternatives. A cheaper alternative that severely limits your later options is taking a big risk. When you make the decision to go .net, there is no turning back - there is no other platoform you can port to... Your options are limited to just 1.

    -Nick

  27. Oracle Port O' Rama[ Go to top ]

    Just don't listen to MS guys. I'm open to everything, I changed languages and operation systems a lot in the last 20 years. But MS guys aren't open, they have only one opinion to tell you: "MS is best". And if it's not, they will twist reality. Look at Gregs numbers: Taking the most expensive products to calculate costs when there is no need. And "But the main point is that today when people talk about J2EE app servers in the enterprise, they are really talking about Bea and Websphere" is no argument for choosing expensive software. Btw, the HP Bluestone Application Server is free (As is OpenMail for Linux, which was stopped by HP because they got nasty "Use Exchange or there might be problems with Windows licening" from Microsoft)

    Alternative:
    4x9CPU Cluster:
    OS costs (Linux)
    $0
    Orion Application Server (aka Oracle), enterprise ready, professional support available,
    4 x $1500 = $6000
    ----
    $6000

    Microsoft will charge you $23,992 for the same.

    bye
    -stephan

    ps: .NET is nice, much better than IHell COM. If you're developing an application for an MS only shop and you can live with the vendor lock in, go for it. Nice (the best ?) Development tools. Pray that they don't change their technology like ADO, COM, COM+, ... Pray that they don't rise the price of their OS products. Pray that they don't charge you money for updates every year.

    If you want to sell your product to everyone and are OS agnostic, go for J2EE. And don't listen to this "mono" babble, just look what happend to SAG COM for unix.
  28. Oracle Port O' Rama[ Go to top ]

    Alternative:

    >4x9CPU Cluster:
    >OS costs (Linux)
    >$0
    >Orion Application Server (aka Oracle), enterprise ready, >professional support available,
    >4 x $1500 = $6000
    >----
    >$6000

    >Microsoft will charge you $23,992 for the same.

    I think you need to remember that most companies are not going to go for the free versions of software because of the perceived lack of support (I know, I know, there is support). As a result, most companies will go for solutions from BEA, IBM or Oracle - and that is the real cost. MS is clearly targeting the middle ground of the market and they are priced very competitively in that area.

    None of these solutions, from a pricing point of view, scale well. If I was doing an application that had to support, say, 5-6 million people - I'd probably do the front-end web tier using Linux and PHP or Jetty because that's the only way the technology would be reasonable enough in price for the business itself to survive. This is also a nice sweet-spot for JBoss.

    I remember talking to a CTO of a large trading site, and he was talking about how BEA had come in and proposed selling them the software to run the site - the cost was around $3.5mm (before services and programming) - he laughed them out the door.
  29. Oracle Port O' Rama[ Go to top ]


    ========
    I remember talking to a CTO of a large trading site, and he was talking about how BEA had come in and proposed selling them the software to run the site - the cost was around $3.5mm (before services and programming) - he laughed them out the door.
    =========

    Are you sure this "CTO" isn't a figment of your imagination?
    C'mon ... I'm sure you can do better!
  30. Oracle Port O' Rama[ Go to top ]

    ==================
    Are you sure this "CTO" isn't a figment of your imagination?
    C'mon ... I'm sure you can do better!
    ==================

    No, I'm not making it up. They currently run their infrastructure on iPlanet and we started talking about this very topic and that's the story he talked about.

    And, to be more clear, he was not interested in .NET either - he was looking at Linux solutions combined with freeware webserver/middleware. He was very concerned about whether iPlanet was going to be around....

    That's it - believe it or don't believe - your choice.
  31. Oracle Port O' Rama[ Go to top ]

    <quote>
    But the main point is that today when people talk about J2EE app servers in the enterprise, they are really talking about Bea and Websphere, which are hugely expensive products compared to .NET.....if you draw a scale (which I can't do in this post), the licensing fees for Bea, IBM would be very tall bars, with .NET a tiny short bar close to the free JBOSS/Linux
    </quote>

    The arithmetics is correct but irrelevant. There is a lot more to picking an application server than the tag price. Otherwise, BEA, IBM and even Microsoft would already be out of business.

    Come on Greg, I'm sure you know that...

    --
    Cedric
    BEA

  32. Oracle Port O' Rama[ Go to top ]

    <quote>
    The MS business model is very different...we do not aim to make money on selling consultants, just the software.
    </quote>

    Fair enough, but that doesn't mean that companies opting for the Microsoft platform do not need to hire extra consultants to get the job done. It just means they will probably not be Microsoft employees.

    --
    Cedric
    BEA

  33. Oracle Port O' Rama[ Go to top ]

    Micrsoft has a way of obfuscating discussions.

    For arguements sake, let's accept microsoft and J2EE vendors have the same expenditures. The important point here is if a vendor is applying the squeeze once their market is saturated (Mircrosoft has demonstrated this practice througout it's history) atleast within J2EE, owners can take their products somewhere else without starting from scratch.

    Within microsoft's .net, you have no where else to go but mircosoft.

    J2EE = W.O.R.A = Write Once Run Anywhere

    .Net = W.A.R.N = Write Anything Run Nowhere
  34. Oracle Port O' Rama[ Go to top ]

    Stephan,

    In your pricing anlysis you are quoting Orion prices, not Oracle's. So to be clear, if you buy Oracle's OC4J app server, you pay a lot more than $6,000 for a 4-server 8CPU/svr cluster. You pay $320,000 I believe. And there may be discounts, but MS has discounts for volume/large purchasers as well. As far as consultants go, MS has a consulting force for the enterprise, but not armies of consultants like IBM (whose goal is really to outsource the dev and support of an organization's entire IT structure over time). MS purposefully does not run a large consultant force for revenue and instead chooses to work with third parties (large and small) through our Solution Provider Program. It is a very different business model than IBM, Oracle, etc.


    As far as pricing goes, Nick started by making the point tha MS .NET is so very expensive compared to J2EE app servers (people on the forum refer to MS as M$). I countered with the point that in terms of the main J2EE app servers, .NET expense is so radically less money that no one can with a straight face claim the popular J2EE app servers for the enterprise are less expensive than Microsoft .NET. That's simply absurd. I agree that cheaper does not equal better....but the entire reason pricing was brought up to begin with was simply to point out claims J2EE app servers for the enterprise are less expensive are simply not true, as far as licensing goes....they are hugely expensive products. But alas, you guys are good at changing the topic once a counter point is made :-).

    -Greg
  35. Oracle Port O' Rama[ Go to top ]

    Subject: .Net Vs J2EE performance Attachments: None
    From: "Leung Kim Ming" <micl at hkstar dot com> Sent: 11/25/2001 1:21:38 AM

    Hi All,

    We are in a process of evaluating .NET vs J2EE. The same
    login written
    in Java runs 20% faster in a J2EE WEB server than in
    a .NET framework.
    We cannot believe it. Please help to find out what's wrong
    with the
    coding. Please do not tune the SQL or change the logic. It
    is
    deliberately designed to put load onto the server for
    performance
    comparison.

    We have tried two connections and two data readers. It is
    even worse.

    Thanks.


    Sub SubmitBtn_Click()
        Dim DS As DataSet = new DataSet()
        Dim DS2 As DataSet = new DataSet()
        Dim MyConnection As OleDbConnection
        Dim MyCommand As OleDbCommand
        Dim MyDataAdapter as OleDbDataAdapter
        Dim trCMD as OleDbCommand
        Dim trReader as OleDbDataReader

        Dim tmpstr, sStaff, nHr, sStaffNo
        tmpstr = "Provider=MSDAORA.1;Password=abcde;User
    ID=abcde;Data source=chs1"
        MyConnection = New OleDbConnection(tmpstr)
        MyConnection.Open()
        MyDataAdapter = New OleDbDataAdapter("select * from
    trd1staf where
    dept_code = '" &amp; dept.text &amp; "' ", MyConnection)
        Dim iCount = MyDataAdapter.Fill(DS, "TBL1")
        MyDataAdapter = nothing
        Dim objStringBuilder As New System.Text.StringBuilder()
        Dim counter, i, idx
        objStringBuilder.Append("&lt;table border=1&gt;")
        With DS.Tables(0)
           for counter = 0 to iCount - 1
              objStringBuilder.Append("&lt;tr&gt;")
              sStaffNo = .Rows(counter).Item
    ("staff_no").ToString
              sStaff = .Rows(counter).Item
    ("staff_name").ToString
              objStringBuilder.Append("&lt;td&gt;" &amp; sStaff
    &amp; "&lt;/td&gt;")
              MyDataAdapter = new OleDbDataAdapter("select *
    from trd1tmrm
    where staff_no = '" &amp; sStaffNo &amp; "' ", MyConnection)
              i = MyDataAdapter.Fill(DS2, "TBL2")
              MyDataAdapter = nothing
              nHr = 0
              With DS2.Tables(0)
                  for idx = 0 to i - 1
                    nHr = nHr + .Rows(idx).Item("tot_spend_hr")
                  next
              end with
              objStringBuilder.Append("&lt;td&gt;" &amp; cstr(nHr)
    &amp; "&lt;/td&gt;&lt;/tr&gt;")
           next
         end with
         MyDataAdapter = nothing
         MyConnection.close()
         MyConnection = nothing
         objStringBuilder.Append("&lt;/table&gt;")
         MyList.innerHTML = objStringBuilder.ToString()

    .

  36. Oracle Port O' Rama[ Go to top ]

    I thought it might be interesting to post the reply to this article. This was actually in the newsgroup microsoft.public.dotnet.framework.adonet.

    Mark

    Post follows:

    Many Thanks Bruce,

    Bingo, you are right. The trouble is the MS Oracle
    Provider. After changing it to Oracle Provider, the
    response time dropped from 2.5 seconds to 0.7 second!!!

    BTW, our company have already read most of the benchmarks
    published. However, our senior management would like see
    it working in our environment (existing HW/DB). Seeing is
    believing, right? We believe, if the benchmarkings are
    correct, why not our small test?

    Thanks again,
    Michael Leung

    >-----Original Message-----
    >A couple of points. If evaluating performance I would take a good look on
    >the MS site where they benchmarked a J2EE application where Oracle has a
    >published benchmark and they implemented the same thing in DotNet. This
    >evaluates a lot more than just one scenario. Another thing, are you using
    >the same provider with both tests? This can make a big difference (easily
    >20%). We have found that the MS provider to Oracle has a lot more overhead
    >than the Oracle OLEDB provider. Although it is considered 8.1.7 OLEDB
    >provider, you can install the provider on 8.1.6 or 8.1.5 (if you are on a
    >machine that has the database on it, be very carefull. I know that doing
    >this on an 8.1.5 server just trashed it. Without careful testing just
    >install it on the web server or whatever is acting as a client, really no
    >reason to install it on the DB server anyway, I just did because I was
    >working on a machine that was running everything).
    >
    >BTW, depending on the network speed we have had order of magnitude
    >performance improvements with the Oracle provider. The slower the link the
    >better Oracle provider outdid the MS provider to Oracle. The faster, the
    >less the difference. It looks like the MS provider to Oracle is much much
    >more chatty.
    >
    >One last point, they are going to be creating an Oracle specific provider
    >for dotnet, just like they have one for SQL server instead of using the
    >generic OLEDB provider.
    >
    >Bruce L-C
  37. Oracle Port O' Rama[ Go to top ]

    To be clear, there are other J2EE vendors besides Orion and Oracle. If you go, for example, with one of Open Source solutions and run your app server on LINUX, IT WILL BE MUCH, MUCH LESS EXPENSIVE than a .NET alternative.

    With J2EE you have this choice, with .NET you do not. No matter how you feel about .NET in the future, you will be stuck with the solution that runs only on Windows with all respective security, reliability, licensing and etc issues related to Windows platform.
  38. Oracle Port O' Rama[ Go to top ]



    ">> As far as pricing goes, Nick started by making the point tha MS .NET is so very expensive compared to J2EE app servers (people on the forum refer to MS as M$). I countered with the point that in terms of the main J2EE app servers, .NET expense is so radically less money that no one can with a straight face claim the popular J2EE app servers for the enterprise are less expensive than Microsoft .NET. That's simply absurd. I agree that cheaper does not equal better....but the entire reason pricing was brought up to begin with was simply to point out claims J2EE app servers for the enterprise are less expensive are simply not true, as far as licensing goes....they are hugely expensive products. But alas, you guys are good at changing the topic once a counter point is made :-). "

    I dont think that anyone is avoiding the issue - what you say is correct. The list prices of .net vs the top of the line J2EE servers show a large difference in cost.

    I think what most people here are saying (myself included) is that either
    (a) the list price is irrelevent
    (b) they are sceptical the list price is the final story.

    With regards to (a):

    Until .net, the M$ platform was cheap to buy but very expensive to maintain. Maintaining 100's of servers on a very brittle platform (adding a simple MDAC service pack was a very risky undertaking) soon added up. Thereby making the list price slightly irrelevent.

    If you are an ISV, lets face it: J2EE is almost the default choice. The one thing you cannot do as a software vendor (unless you already have a captive market) is *dictate* to the customer what platform to run on. Also, "in these difficult times" you cannot justify parallel code bases required to support various different platforms for the products you sell. The portability and platform independance of J2EE and Java is a key factor here. You can go for .net platform and support only .net servers and only on Windows OS. Or you can go for the J2EE platform and support any appserver on any OS - including the cheap Windows. Again, the list price slightly irrelevent.

    With regards to (b):

    People learned to their cost, that maintaining the M$ platform was an expensive exercise for more than small-scale installations. 100's of servers to manage, 100's of servers to maintain with lots of security patches, no chance to consolidate servers because of the various application dependancies on a particular version of 'X'. So they are sceptical the list price is the final story.

    People learned, to their cost that the M$ platform was a brittle platform. Before you could apply a new version of ANYTHING, it would have to be thoroughly tested to see what else it broke. There are entire teams at M$ sites that write installation procedures - "install SP5, install IIS4, re-install SP5 to overwrite the files replaced by IIS....". So they are sceptical the list price is the final story.

    People learned, to their cost that no sooner had they mastered a particular language/technology/application then there would be a new version which would meant that they had to be re-certified (if they were contractors). There was also little backward compatibility. One guy I work with just spent 2 weeks re-writing some code because there was a general upgrade of MDAC across some servers and not enough testing had been done beforehand. The reason: A feature supported in the earlier version now had a bug. The MSDN work-around: Dont use that feature. Great.
    Also applications written on MSVC++ v5 didnt compile on v6... VB.Net is nothing even close to VB.... More training - more development, more work, more cost.
    So they are sceptical the list price is the final story.

    .net has the potential to change quite a few of these things - but the jury is well and truly still out. There is not nearly eneough customer feedback yet.

    So, maybe when Windows becomes the dominant server-side operating system - and people feel that they can trust it as much as they can an IBM, HP or Solaris Unix server (and scale it to 100 cpu's if they want to) then the list-price difference of .net will be more significant than what it is now.

    Maybe also, when people feel that they can trust M$ the company, then people might feel a bit more comfortable choosing a single-vendor proprietary platform. If I am a large corporation like SAP, would I gleely put all my IT eggs in the M$ basket. I dont think so. They didnt think so.

    What is more, M$ is a very aggressive comapny when it comes to business. I dont think it is any coincidence that the prices of Windows Servers and the .net platform are so low. They are trying to buy their way into the enterprise market. Whether prices will always stay this low, no-one can guarantee. But if you have committed your enterprise to the .net platform and license costs double or triple later - you cannot back out of your decision. There is no competitor that you can go to. No-one to "keep them honest".

    I hope I have addressed your points... no-one is avoiding the argument. They just have a very different point of view - based on different priorities.

    -Nick

  39. Oracle Port O' Rama[ Go to top ]



    >> I have just read your post and thank you for an
    >> intelligent and well thought out vs. flame response.
    Thankyou. I think it is good that M$ people are willing to participate in this forum. In doing so, I am sure that they will learn more about J2EE and understand the benefits - just as J2EE people will also learn understand more about .net. Very few people have a good understanding of both technology platforms - and the more that do the better.
    I only wish your colleague Mr Roger Sessions would poke his nose in here occasionally...

    With regard to .net - I agree whole-heartedly that it is huge step forward for the Microsoft platform. Finally, some separation between OS and application and good riddance to the registry!

    .net *should* bring very large maintenance savings compared to the previous COM/DCOM/MTS/COM+ platform. The deployment and versioning benefits that you speak of in .net, you must understand, have been existed and in fact been taken for granted in the Java/J2EE community for some time - it has been one of the big advantages.

    As far as application integration is concerned, I dont think that SOAP is the answer to most legacy integration problems. If I have an existing CORBA system, developed on, say Orbix, running on OS/390 and using Netscape LDAP for security, - how am I going to integrate this with my new .net application?

    Likewise, if I want to persist some change in a database and send a message on MQSeries - and have all of this encapsulated in a transaction - how do I do this in .net. Unless I am mistaken, I have to step back into MTS (COM+) in order to support distributed, 2-phase commit transactions. Am I wrong? (I hope so).

    In J2EE, the JTA/JTS, JMS, JDBC and EJB standards let me write code to do this that will then support any JTA compliant transaction coordinator, any database with a JDBC driver, any JMS compliant messaging provider and any EJB compliant container running on almost any platform. While there may be some little idiosynchrasies, and SOME amount of specific code/settings the bulk of the code will look the same. This is where the saving is. I can re-use any number of these existing infrastructures (if they exist). I dont even have to buy a new server - I might be able to re-use an existing one.

    The saving, also, is in the learning - I can re-use my skills. The Write-Once-Run-Anywhere, really should be supplemented with Learn-Once-Write-Anywhere.

    Ultimately, I think that a platform that is based on integration standards, will always be easier (and therefore cheaper) to integrate in the future than a proprietary platform.

    Companies like Novell, Lotus etc have tried in the past to integrate with the M$ platform and have all failed. Most of them have been squeezed out of the market due to the huge cost involved with fixing all the things that would break every time an NT service pack was added (the cost to themselves - and the cost to the IT departments meant that IT would rather put up with a sub-quality MS solution than the headaches of keeping a best-of-breed solution integrated). Proprietary platforms are difficult and expensive to integrate. Thats why there is such a market for bridges to and from COM. Having loads of adapters as BEA, IBM, etc did in the past is not the answer. If there is a standards-based solution, integration will occur naturally (e.g. look at the J2EE Connector Architecture).

    The development environment in MS is another story - as you point out, its very good. They generally always have been quite good (developing good apps and good UI's is a MS strength). Development tools are expensive to develop and probably only the likes of MS and IBM can afford to subsidise their development. However, this productivity is only realised if there is only one platform. The reality is not everyone's existing systems are Microsoft .net.

    And to finish, I still maintain that the tired old argument of the (quite possibly) overpriced J2EE application servers is a red herring. This cost is impressive becuase it is up-front. However, compared to the cost of developers and all the rest of the costs associated with a project, its not really a significant cost at the end of the day.

    -nick

    PS: Can you give me a link to some info on the Message Queueing Standard (based on MSMQ, you said)?
  40. Oracle Port O' Rama[ Go to top ]

    Nick,

    Also I am working on more info for you on .NET legacy integration, transactions and the like. For info on MS MQ in the meantime (MS Message Queuing), see http://www.microsoft.com/msmq/

    -Greg
  41. Oracle Port O' Rama[ Go to top ]

    Companies like Novell, Lotus etc have tried in the past to integrate with the M$ platform and have all failed. Most of them have been squeezed out of the market due to the huge cost involved with fixing all the things that would break every time an NT service pack was added...


    That's a bit of a simplification - having programmed Lotus (even done some work inside the Lotus Corp network), I would say it's that the technology was awful. I mean, Lotus Notes was a foul, foul application/platform. That, combined with the underpricing strategies that MS typically employs to get into a shop (with sub-standard v1.0 versions) made it easy for those companies to be tossed.

    Damian
  42. Oracle Port O' Rama[ Go to top ]

     >Companies like Novell, Lotus etc have tried in the past to integrate with the M$ platform and have all failed. Most of them have been squeezed out of the market due to the huge cost involved with fixing all the things that would break every time an NT service pack was added...

    I agree, and you forgot to mention their lack of commitment when it comes to backwards compatibility.
  43. Oracle Port O' Rama[ Go to top ]

    <Quote>
    Portability is not part of end-user functional equivalence for the Pet Store application.
    </Quote>

    Last time I checked, platforms like J2EE (and .Net for that matter) where all about "development". Let's look to J2EE definition in the official Java web site.

    <Definition>
    The JavaTM 2 Platform, Enterprise Edition (J2EE) defines the standard for developing multitier enterprise applications. J2EE simplifies enterprise applications by basing them on standardized, modular components, by providing a complete set of services to those components, and by handling many details of application behavior automatically, without complex programming.
    </Definition>

    If it was all about end user experience (and performance), we will all be writing highly interactive UIs with logical gates in microcircuits directly in the end user client devices.

    <Quote>
    One point of the benchmark is to show what kind of performance penalty one pays for application portability using Java.
    </Quote>

    How does the .Net Pet Store benchmark show the price of portability in Java? Have you done some king of analysis on how “the one and only possible Java implementation” generated bytecode compares with compiled Java in its native OS? I'm very interested, what is the price? What units do you use?

    <Quote>
    Once an organization knows the benefits and the costs of portability (including potential performance/scalability costs, developer productivity costs, app server licensing costs, etc.), then an *informed* decision can be made on the choice of one programming platform vs. another. That's the point of benchmarking to begin with, isn't it?
    </Quote>

    I do not agree. The point of doing benchmarks with ECperf, is measuring “relative” performance among specific J2EE implementations for a agreed upon application. The purpose of any benchmark done with inadequate tools is misleading. The purpose of doing a benchmark with the Pet Store application is to impress PHBs in the Golf House. This point has been beaten to death here.


    The Pet Store is not intended for benchmarks.

    Everyone doing benchmarks with the Pet Store is only trying to mislead poor souls.

    Oracle benchmark is pointless and I'm still waiting for their ECperf results.

    Microsoft Pest Store benchmark is as pointless as Oracle's, or even more, since we are comparing a development platform with a “user experience”.

    I cannot find anywhere -in this site- where Microsoft has address all the issues pointed out by readers about their benchmark -in this site (store procedures, etc). If I’m wrong please provide URLs.

    But I find Microsoft pointing to issues in others benchmarks-in this site.

    I cannot find anywhere –in this site- Oracle addressing all the issues pointed to their benchmark.

    But, at least, I don’t find them pointing out issues in others’ benchmarks.

  44. Oracle Port O' Rama[ Go to top ]

    The Pet Store is not intended for benchmarks.

    >>Everyone doing benchmarks with the Pet Store is only
    >>trying to mislead poor souls.
    >>Oracle benchmark is pointless and I'm still waiting for >>their ECperf results
    That's right, all these useless results are simply a waste of money!
    And I cannot understand why those ego-tripping server vendors do not invest in the ECperf benchmark? It would be the simplest way to get some credibility.

    But no, they just keep on posting these f****ng numbers about applications that have none of the characteristics an independant benchmark should have.

    I just read this pdf about the Paris party, but whereas they expected results on the ECperf page by the end of October, only Borland has the balls to post there.

    I hear you thinking: "hey, why don't you donwload the benchmark and collect your own results?"
    Well, actually I'm trying to do that, but I'm having deployment problems. So far the "write once run everywhere" story...
  45. Oracle Port O' Rama[ Go to top ]

    [quote]
    which includes several unfair techniques Oracle could easily have used to improve their results
    [/quote]

    funny hearing that from microsoft considering
    microsoft cheated (among many other things) by using stored procedures.


  46. Oracle Port O' Rama[ Go to top ]

    [quote]

    >which includes several unfair techniques Oracle could >easily have used to improve their results
    >[/quote]
    >
    >funny hearing that from microsoft considering
    >microsoft cheated (among many other things) by using >stored procedures.

    Exactly !

    And Greg, how fair was it to compare the lines of code being fúlly aware of the fact, that the Java Petstore has artificially bloated code in order to demonstrate practices for full scale environments.
    I actually found that a very smart marketing move.
    But Oracle also has smart marketing people.

    So dont cry baby, dont cry
  47. Oracle Port O' Rama[ Go to top ]

    You know what I find most depressing about this thread?

    It's not how quickly the discussion has fallen into the old arguements of J2EE vs. .NET. It's how the level of discussion has fallen to the level of 5th graders. If you disagree with someone, make a point - don't insult people.

    The level of each of these platforms will be raised by competition - it's healthy. Let's have a discussion that raises the level we expect from all vendors and drives the kind of features into these products that we'd like to see and need to do our jobs.
  48. The interesting thing about this, that now we know that there are not only:

    "Lies, Damned Lies, Statistics and Oracle Benchmarks"

    There are also

    "Lies, Damned Lies, Statistics and Oracle Benchmarks and Microsoft PRs"


    How come, if there are Microsoft Product Managers reading this web site, they haven't answered to any of the many allegations against their self-serving, tricked benchmark and they dare criticized Oracle's???

    Well, the paycheck may help explain...
  49. Greg,
    You’re [Microsoft] using incomplete code, a different client and a different database, and you expect us to believe that this test says something meaningful about application performance?

    And additionally 'the administration and mailer component were not ported to .NET'!!

    Read the fine print in the documentation for the tests:
     “The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication.”
    In other words, Microsoft won’t stand behind its own numbers or conclusions.

    credit to Steven J. Vaughan-Nichols:
    http://www.sdtimes.com/cols/javawatch_043.htm

    tja
  50. I have no desire to reply to this ridiculous ongoing nonsense, I've done so already elsewhere so I'll skip it here. Instead I'd like to see The Server Side or Java Lobby or even Slashdot hold a discussion about PR.

    At what point does PR from Microsoft here and elsewhere start to become an actual interference with our ability to do what we need to do? Everybody knows that we need more ECPerf statistics from the various J2EE vendors in order to make useful comparisons. If every ten messages in any given discussion we can expect a PR flack inserting a useless comment about .NET or some other competing technology it's going to make it a lot harder to keep on track. So far they've confined themselves to the periodic story about performance and their latest benchmark or "reply" to someone else's benchmark. But I'm concerned that if they feel they aren't getting their due, or they start to fall off the radar that they are going to get a lot more strident and interfering. Any comments from other developers? (The flacks themselves need not respond)
  51. I agree John and I believe a topic similiar to your request have been already started on javalobby.

    "But I'm concerned that if they feel they aren't getting their due, or they start to fall off the radar that they are going to get a lot more strident and interfering " - john

    Interesting point, I checked out gotdotnet.com and it's dead as a racoon on route 69.

    Take a look


    The support isn't there for .NET, that's why greg is here.

  52. http://discuss.develop.com

    http://groups.google.com/groups?hl=en&group=microsoft.public.dotnet

    http://www.codeproject.com

    ...

    Let's not get paranoid, let's keep discussion open and productive (and preferably above the 5th grade). Surely there are many contributions in _all_ forums from _all_ vendors, this is not a bad thing.

    Seems to me, that Microsoft have supplied some of the most comhensive technical detail than any of the vendors, just browse the msdn.microsoft.com site. The ".Net" patterns they are pushing are an evolution of the previous "marketing" name of DNA and this is a widely used n-tier component-based re-use and performance-focused architecture IMHO.

    Lee.
  53. "It's been a while since we last gave away free stuff and recognised those who have put in the hard yards. So - all articles posted between June 15 and December 7 will be judged with the top 20 then voted on by you. Prizes supplied Dundas Software and CodeProject. Good luck!
    " - The Code Project

    This is telling about the interest in .NET, you gotta bribe the community to participate.

    lol
  54. To much caffeine[ Go to top ]

    The personal tone of some of the messages is really childish. People seem to take a religious position on the Microsoft vs Java issue. For those in the real world, both are useful, depending on the system. I done about 50/50 development in both platforms and have found that there is good and bad in both. One of the worst parts of the tech biz is the vitriol coming from the anti-Microsoft side. It's like these people were abused as children by Bill Gates and they never forgot it. And they never grew up.
  55. To much caffeine[ Go to top ]

    "It's like these people were abused as children by Bill Gates and they never forgot it. And they never grew up " -Daniel Philpott

    You speak of childish behavior within this thread; oddly enough, your the only one who has responded such.



  56. This truly has degenerated again. Oh well, I guess that is to be expected considering the religious nature of the topic.

    Somehow people still believe Microsoft "cheated" by using stored procedures. This has been addressed (along with other questions raised) in the FAQ at http://www.gotdotnet.com/team/compare/petshopfaq.aspx.

    The point is, Sun published a blueprint app for J2EE, promotes it heavily as a best practice guide for J2EE. They officially discourage the use of stored procedures in their blueprint. Microsoft published a blueprint for .NET using the same application. Our blueprint does involve a different architecture---the one *we* recommend developers use for building this type of data-driven Web app. We encourage the use of lightweight stored procedures to wrap SQL statements in our blueprint (for any database used with .NET, not just SQL Server).

    Just becuase the recommended architectures for the two platforms are different does not mean they cannot be compared!

    Again, the point is *functional equivalance." I know of no industry-standard benchmark that dictates implementation architecture (TPC-C, TPC-W, etc.). Rather, they dictate application behavior, and leave the implementation up to the vendor. Each vendor has different ways of doing things. That's fine, that's variety, that's competition. But do not tell me just becuase two products use different architectures their performance cannot be compared.

    As for the fairness of the comparison, Sun promotes JPS as their blueprint application. Of course customers want to see what the .NET blueprint app is...and of course comparisons such as line counts and performance are valid and interesting metrics. If Java developers do not believe that JPS is a high performance app, Sun should stop promoting it as their blueprint. But as long as they do, and continue to use it to demonstrate best Java coding practices, app portability, and the like, competing vendor comparisons are very fair and in the customers' interest.

    As for Sun's Pet Store app being bloated and never meant to demonstrate performance...wow. These claims started right after we published the .NET Pet Shop. Sounds like sour grapes to me. How Sun can publish a blueprint app for the enterprise and yet claim its not high performance or scalable to stand up to competitive pressure is beyond me. What IT manager is going to be happy about that?
    Is Sun saying "code to our best practice blueprint for the enterprise and get terrible performance?" That's shameful. But don't blame the poor performance of Java Pet Store on Microsoft. As for the benchmark---Oracle came up with the idea of doing the benchmark and even issues a public challenge by publishing it as part of their Oracle 9i Performance Challenge. So this member of the J2EE community *invited* the comparative benchmark. Again, for detailed responses to many of the allegations being surfaced here, read

    http://www.gotdotnet.com/team/compare/petshopfaq.aspx.

    Greg Leake
    Group Product Manager
    Microsoft Corporation



  57. Greg,

    I agree that it is really disappointing that an interesting (for me) discussion ends up descending into a flaming-contest.

    I hope that everyone tries to remember that this is a professional, technical portal, where if you take the time to read what people post, you might learn something. If people took the time to read and listen, they might learn that .net is not a bad technology. It represents a big step forward for Microsoft developers. Whether it is a big step forward for mankind is up for debate - in some aspects it is - in other aspects its nothing new. Rather than reject it out of hand, even the most evangelical in Java Community should objectively pick through .net to see what things can be copied to improve J2EE.

    I thought that I had a valid point in response to your post - that you have now missed (since it is now obscured in the hate-mail posts).

    In general, I think that performance is an over-rated metric. Performance does not equate to scalability. And, Performance does not greatly influence the cost of a project.

    Simplicity (maintainability) and Flexibility (also, maintainability), for me are much more important (but much harder to measure) metrics. Lowering the cost of maintenance and integration are areas where I think that J2EE excels - but, I am not sure that .net really addresses.

  58. I don't mean to perpetuate the series of non-qualitative posts here, but the reason MS can't address the reliability issue is because... they probably can't. At least not yet. I'm sure the security hole found in .NET passport about a month ago was not good PR for MS, so until they can convince the malaise-stricken MCSE sysadmins of IIS servers, Active Directory domains, etc. that .NET server and the like will be more secure, less buggy, and thus, requiring less maintenance, they probably don't want to say much about how reliable it is.

    Over the past couple of years, I've seen some of my credit card companies switch from ASP to JSP+Servlets. Even billboard.com is using Java now. Will they switch over to .NET? I seriously doubt it. Will any current J2EE-based companies switch over to .NET? I wager no. They may have used .NET but it's too late now; they've already invested time and money into J2EE.

    In the end I think .NET is good for the industry and good for J2EE. Now instead of J2EE vendors fighting amongst themselves, they all have a new common enemy. This will undoubtedly drive down prices of app servers (or at least introduce better licensing agreements), yield more robust implementations of J2EE, and force J2EE vendors to work together in building truly cross platform APIs.

    One thing that Java has going for it is open source. Yeah, I know, Sun owns Java, yadda yadda, but with the plethora of free projects found on jakarta/xml.apache.org, netbeans and forte ce, eclipse, jdom, jboss, jedit, etc., a Java developer has quite an arsenal with little or no money. I wonder what MS will do to deal with that. Why pay for performance when you get a solid architecture for free?

    Even in our suffering economy, I smile when I see companies hiring for people who know Tomcat, Struts, and Apache. Cocoon experience preferred. Linux OS environment. By using these free tools, they can still afford to pay me a competitive salary =p jk

    Anyway, I hope everyone gets my drift, tried but true as it is. MS isn't renown in the security department and though they can butt heads with Oracle (and cheat just as well ;), they will never be able to compete with free.

    Just my $0.20 =p


      



      

  59. oops too religious[ Go to top ]

    sorry for the post above. i got carried away at how poor you can be and still run a powerful architecture.

    regardless, yeah, i don't trust either benchmark. MS and oracle should collectively hire a team of J2EE and .NET developers, have them work TOGETHER on a pseudo-ecommerce site for both architectures (who'd buy a pet online? supplies? just go to the store you lazy a$$), and then have us, the users: surf, 'buy', and hack the site they set up.

    of course that will never happen, but wouldn't this be fair?? =ppp

  60. oops too religious[ Go to top ]

    Joseph,

    I agree an independent test would be in the customer interest, such as the upcoming Doculabs shootout. Hopefully PC Mag, eWeek and others will also invite MS and J2EE vendors to other tests. Also, if you do not trust the benchmark results MS published, I invite you to download the .NET code and data schema, data load script, tuning parameters, etc. and perform your own test to validate the results. We stand behind the results by publishing this information so the test can be replicated and independently verified. We have nothing to hide. Oracle published no code with their results. Interestingly, did you notice that Oracle has at least for now pulled all links to their new Pet Shop results comparing to .NET?

    Greg Leake
    Group Product Manager
    Microsoft Corporation
  61. oops too religious[ Go to top ]

    Greg,

    Forget about Doculabs, PC Mag, and eWeek. Their all biased.



    How about this idea:

    The j2ee community selects 7 members to represent itself and the .net community selects 7 members to represent itself to form a consortium to benchmark these applications using different types of gauges?









  62. oops too religious[ Go to top ]

    Greg,

    I acknowledged in my post that Java isn't free ("Yeah, I know, Sun owns Java, yadda yadda"), but my point was really that a lot of open source projects based on it are. Also, I wasn't explicit about it, but what I really meant to say about app server pricing is that there's a broader spectrum of J2EE based products available based on budget and necessity, ranging from free (still comparably equipped to commercial products) to the thousands you mentioned. When you pay the thousands extra, the app servers usually come bloated with a lot of esoteric features that you know you probably can't get for free or for cheap (portal tools, legacy interfaces, data mining, etc.), but by adopting J2EE, I can get a J2EE compliant app server that suits my needs best, and can find cheaper alternatives to almost anything while maintaing a comparable feature set. For example, as an informed consumer, I learned that Oracle's 9iAS core is comprised of Orion. Well, Orion is pretty cheap ($1500) and is even cheaper for development and non profit organizations (FREE!).

    I realize it's your job to convince us that .NET is indeed as powerful as the benchmarks make it out to be, and that no cheap tactics were used to generate the performance statistics. It's all pretty relative though; what the .NET community considers fair and what the J2EE community considers as fair. I think we're all beating a dead horse now since nobody is willing to accept each other's argument. However, you're right in that it's awfully suspicious that Oracle had retracted their link. Either they're redoing it or it was all just fluff. I think it may be a little of both.

    Greg, I thank you for your politeness and intelligent responses. Sometimes, I feel that your opinions are a reflection of what Microsoft wants us to believe, and not really how Microsoft feels about the community encompassing J2EE (I'm not attacking you directly, I'm just saying that you may be suffering from tunnel vision without viewing the entire picture). Maybe it's because Microsoft feels that the only competition are big name commercial products (iPlanet, Weblogic, Websphere), but as aforementioned, there are cheaper alternatives (JRun, Orion, etc.) and even some free ones (jBoss, Bluestone, etc.). I'll gladly try the free tools provided by Microsoft, but I can already surmise that they're no where the robustness of Java tools I can acquire for free.

    Although I'm a Java developer, I've been trying to be as unbiased as possible. If I sound biased, it is because there are too many facts influencing my opinions. I'm not as blunt as n n although his commentary is very entertaining =p


     
  63. oops too religious[ Go to top ]

    Greg,

    The document is still there. I just read it.
    http://technet.oracle.com/tech/java/oc4j/content.html

    Alex
  64. oops too religious[ Go to top ]

    Greg,

    Forget about Doculabs, PC Mag, and eWeek. Their all biased.



    How about this idea:

    The j2ee community selects 7 members to represent itself and the .net community selects 7 members to represent itself to form a consortium to benchmark these applications using different types of gauges?









  65. Seems to me a lot of topic changing is going on here. But some comments:

    What is open source about Java? I do not understand why so many people confuse Java with open source, since Sun has not made Java open source...J2EE is Sun intellectual property, fully owned and controlled by Sun. As for costs, I also scratch my head here. Take any of the major J2EE-based app servers (Bea, IBM Websphere, Oracle, Borland etc.) and they are *hugely* expensive compared to MS .NET. See http://www.gotdotnet.com/team/compare/webservicecompare.aspx for a comparison of .NET vs. IBM Websphere licensing costs, for example.

    And since you mention free, I think many people do not know that the .NET Framework including everything needed to build and deploy .NET apps including Web Services, is completely free to everyone and also freely redistributable? This includes the runtime, the complete framework and class libraries, command line compilers for VB and C#, etc.

    Greg Leake
    Group Product Manager
    Microsoft Corporation
  66. <Quote>
    And since you mention free, I think many people do not know that the .NET Framework including everything needed to build and deploy .NET apps including Web Services, is completely free to everyone and also freely redistributable?
    </Quote>

    I'm thrilled. I wan to run the .Net Pet Store for free!!! Please, provide the URLs for free downloads of Windows 2000 and SQL Server.

  67. >> And since you mention free, I think many people do not
    >> know that the .NET Framework including everything needed
    >> to build and deploy .NET apps including Web Services, is
    >> completely free to everyone and also freely
    >> redistributable? This includes the runtime, the complete
    >> framework and class libraries, command line compilers
    >> for VB and C#, etc

    For what operating systems is this available for?
    (boom, boom!)

    Unless I am completely mistaken, its not free. Its already paid for. Its included in the cost of the Windows OS.

    And as for the *hugely* expensive application servers you refer to, the license costs are small in comparison to the total cost of a project. In any case, in the long term, they are cheaper platforms because they are open and they interoperate (at more than just the SOAP level). Above all they are easier and cheaper to integrate into existing infrastructure and legacy systems.

    I would be really interested to know what the .net strategy is for legacy integration. Is there a standard messaging API in .net?

  68. I find it amusing that some guy from Microsoft is touting the free availablility of command-line tools. Maybe they're easier to use than Visual Studio.NET itself!

    Oh, and the reasoning behind connecting Java with open source is not that Java the language itself is open-source, but that there are so many tools that are freely available, written by open-source programmers who happen to write in Java, who also happen to publish their source code, thus making their offerings open source. Its pretty much tautological, but Microsoft loves to complain while they only release the source code of their OS to the high-paying customers and the U.S. government, so it has to be explained again and again.
  69. Although it is true that MS is giving away the .net framework, writing apps to the framework requires purchasing expensive MS products (IIS for example) like to do remoting apps and stuff. I can argue and have actual experience writing java-based applications using j2ee that are entirely free. I say this because I recently have been attempting to learn C# but cannot learn much in terms of real-world apps because I don't own IIS...sure, I can learn the HelloWorld but what good does that do me?

    Java is still owned by Sun but is enhanced and supported by JCP, which really guides Sun to create core API and JVM according to functionality developers want - and they have been doing this free for years.....so in that since it is about as open-source as you can get.
  70. Michael,

    What version of Windows are you working on? IIS is a feature of Windows, and ships in various forms in different versions of Windows. So if you have a copy of Windows 98, Windows 2000 (pro or server), or Windows XP, then you have IIS (its not a product you pay extra money for), although you may need to go into control panel and select it to be added to your installation from the install CD. Once installed, you can work with C# including building web-based apps on the .NET Framework.

    -Greg
  71. i am using windows 2000 Professional SP1, and IIS was not there. The OS came with a Dell Inspiron 7500 I purchased about 1.5 years ago.
  72. You need to go into the Add/Remove Programs control panel and select the Add/Remove Windows Components option along the side. This will let you install IIS. It isn't loaded on Windows 2000 Pro by default.

    Mark
  73. thanks, i will try to install it this evening
  74. btw, I really am not a MS hater like some (I actually really like Win2000 and am an active user of MS passport and MS Messenger and have a Hotmail account) so I do not have biased opinions on the java vs. .net or MS vs. Sun, i just think that java is the best solution right now for ecom/distributed/remote transcations now because of the portability of java solutions to any platform and the availability of enterprise-level JFC API, J2EE services and App servers such as Weblogic and Websphere.

    The seperator of the technologies (.net vs. java) for me right now is the ability of java/java-based products can do two things for me that .net cannot

    1) abstract database programming (EJB) from the developer in a way to gaurantee successful transactions in a clustered environment. This can be accomplished with both CMP, but if you don't trust the container can use BMP.

    2) provide the services that run on All major OS vendors and in a consistent manner.

    For .net, you would have to do 1) yourself and 2) would not be possible on any other OS then MS Win.

    Currently at my work I am working with another architect (who comes with a background in MS COM/DCOM) and we are both in agreement that .net is a promising technology but java just has the lead right now in so many ways when it comes to remote/distributed/high volume internet applications. and performance/benchmarking tests don't phase me. I absolutely do not trust any claims from either MS/Oracle/Sun about benchmarking. of course it is swayed. you guys all have agendas in promoting your own technologies for the companies you work for, there is no crime in that.....it's just us guys who are actually doing the design of large scale systems for companies with no loyalties either way and have choices on which technology to use are most likely choosing java for the aformentioned reasons.
  75. I thought this was a Benchmark War, not a language, component model or framework war...
  76. Yes indeed it was. And the point was, that some people consider it "cheating" when taking a tutorial for benchmarking. And others didn't. But you can't argue about that, it's more a "believe" thing. And then everyone drifted of.

    I would really like to have a /$ benchmark. Take $100k for software and hardware, write a J2EE and a .NET application and see which performs better

    bye
    -stephan
  77. Posted by stephan schmidt 2001-12-07 04:31:27.0
    "I would really like to have a /$ benchmark. Take $100k for software and hardware, write a J2EE and a .NET application and see which performs better"

    Take a look at http://www.tpc.org and in particular TPC-W. I'm sure MS will be posting .Net versions of their existing COM+ entries. Now, if we could all pursuade the J2EE vendors (most of which ARE members of TPC!!!) to actually be honest enough to make some entries using their J2EE containers.

    Lee.
  78. Man I seem to have arrived late to the discussion so I'll dump my thoughts in all at once:

    Microsoft vs Java
    ------------------

    Guys its tired, give it a rest. Microsoft doesn't want to support Java at this time because its not in their commercial best interest to do so. Unfortunately, in their doing so they can rant and rave till their blue in the face about .NET, most people are Java folks used to a certain level of API functionality which .NET does not yet provide. Build a Java version of .NET that will run on JDK 1.3 or JDK 1.4 and we'll listen more. If you're a large shop sitting on Unix clusters and Java infrastructure - .NET just isn't a realistic move any time soon. Sorry Greg (I'm the true Greg :) ), that's the reality.


    Benchmarks
    ------------------

    I can't believe anyone would even bother to know the true results of these benchmarks because they take into account a fairly small and I would argue incomplete system. The average true J2EE system is a fair amount more complex. Greg you argue that we should use Stored Procedures in your framework, but in a more patterned OO environment you would likely be tried and convicted of treason. Yes it will be faster, sure our DBAs will be happier, but there are more development and maintainence friendly ways to accomplish the same thing. I can't speak for everyone out there, but I know for certain that the group I work for tries to avoid such things as they become cumbersome in the context of a software development framework.

    Further I personally don't think that any of the 3 approaches will be comparable because everyone will be doing things in different ways. This beckons back to the 3D API/graphics card battles of a few years back ("my 3dfx card gets more frames per second than your nVidia card - yeah, but look at the screen it looks like crap"). There isn't a magic number which will tell us which platform is faster unless they are doing the exact same thing. Additionally I find it odd that Microsoft has simply not just created something that mimics the real Pet Store and used that for competitive purposes - unless of course there's nothing to boast about.

    In this day and age, only a fool would believe that one architecture framework would be 3,10,18 times faster than another. Unless the folks on the other end of the competition are completely incompetent - they are all running into the exact same computational problems.

    Portability
    --------------

    Perhaps a small point to some, but in a large shop with lots of different environments such as Linux, WIndows, and Solaris (and lord knows what else I haven't seen yet) - being able to build on one box and move software to another one is more important than speed... expecially in those instances when a server goes down and there isn't necessarily an architectural equivalent available. With Java we have actually moved critical systems onto Linux boxes while our network operations center recovered a failed box.
  79. Greg,

    How has it degenerated? Give an example, It's all in your head.

    If any one is religious about this topic, it is you. After all, your within the J2EE community comparing two designs with different priorities. If you had the spirit of competition in mind and not a PR BLITZ you would have implemented the Sun JPS in stored procedures among other things;Furthermore, how can you compare one implementation with caching and one without?

    Your .NET headlines should have been ".NET 28x more crooked than J2EE"



  80. <Quote>
    This truly has degenerated again. Oh well, I guess that is to be expected considering the religious nature of the topic.
    </Quote>

    <Quote>
    The personal tone of some of the messages is really childish. People seem to take a religious position on the Microsoft vs. Java issue.
    </Quote>

    This thread has never been about Microsoft vs. Java, but rather about the validity of "two" benchmarks. It's not about religion is about comparing apples to apples.

    But lets get religious, because this is reminding me of the old trick used by Microsoft PR and pseudo-journalist to prefix the the world "zealot" to any phrase referring to a perfectly valid Linux supporter. Every time there is an argument in favor of Linux (or Java or something non Microsoft) its religious. When Microsoft gives an opinion, it's not religious since they are paid to do that, it's fine they defend their products, what the heck, they can pretend IIS is secure and having 99.999 uptime even if you require more time than that to apply patches only. When it's a journalist, supporting Microsoft it's a well balanced "independent" opinion.

    This last paragraph is religious, everything before that in this thread are very valid point on the validity of benchmarks, mixed with MS PRs.
  81. This thread has never been about Microsoft vs. Java, but rather about the validity of "two" benchmarks.

    >>It's not about religion is about comparing apples to apples

    OK, I think it's time to make a conclusion.

    Let the community make a vote:
    Which benchmark do you prefer for

    (1) the comparison of J2EE application servers (apples to apples)
    (2) the comparison of application servers in general (whatever the component model may be)
    (3, 4, ...) ???

    For (1), I suggest ECperf. I hope to see more results soon.

    What about (2), (3), ...?
  82. Subject: Microsoft still running on Unix? Attachments: None
     From: "petilon" <petilonSPAMGUARD at yahoo dot com.invalid> Sent: 12/10/2001 12:38:47 PM
     

     

    Check out this article:
      http://www.zdnet.com/zdnn/stories/news/0,4586,2831288,00.html
    An Oracle executive claims, "Microsoft doesn't even use NT on their own
    Web site. They use Unix".

    What does Microsoft have to say about this? A Microsoft spokeswoman
    said "Microsoft executives were unavailable for comment".

    Microsoft executives are busily creating fake benchmarks in order to
    bamboozle customers into running their businesses on Windows and .NET,
    but Microsoft still can't run their own business on Windows and .NET!

    Check out this job post:
      http://www.microsoft.com/jobs/search/jobDetail.asp?jobNumber=1354664
    Microsoft Hotmail is still hiring Solaris system administrators!

    How many years has it been since Microsoft started moving Hotmail to
    Windows? How can Microsoft recommend to their customers to move their
    business systems from Unix to Windows when Microsoft themselves haven't
    been able to do it after years of trying?

  83. n n,

    Actually if you read CNET you will see that we have already responded and the answer is that our Web site uses Windows 2000 and Windows.NET throughout...sorry no Unix anywhere on microsoft.com or msn.com. When we purchased hotmail, all of their servers were Unix based, but now almost all of these are W2K, including all the web and app servers on the site (the few remaining unix servers on hotmail are also being moved over to W2K).

    So, in the end the Oracle claim that Microsofts primary web site is based on unix on the backend is just another Oracle story with no basis in fact. Thanks for alerting people to this fact.

    -Greg
  84. So, Microsoft Won !! No reply from anyone from Greg Leake..

    BTW, Greg you're couter points are so great !! (that too from MS !!) Keep it up...

    Varadhg
  85. One simple word for your response: LIES.


    ==================================================================================
    MS Hotmail Runs On A Combination Of Solaris, Apache Web Server, &
    FreeBSD
    ==================================================================================


    Originial Story 1998:
    ======================
    http://www.unix-vs-nt.org/kirch/hotmail.html
    http://aa11.cjb.net/sun_managers/1998/05/msg00148.html


    1999 - Further Confirmation Of The Original:
    ============================================
    http://www.theregister.co.uk/990419-000028.html


    Microsoft Fails In Porting Hotmail To NT in 1997:
    =====================================================
    http://itrain.org/itinfo/2000/it000802a.html


    August 2000 - MS Will Try To Port Hotmail To Windows 2000 ( NT failed
    the job ):
    ================================================================================
    http://www.internetnews.com/bus-news/article/0,,3_428711,00.html


    January 2000 - MS starts porting Hotmail To Win2K:
    ======================================================
    http://www.theregister.co.uk/content/1/12290.html


    2001 - MS Denies & Sort Of Admits It Is Using Sun Servers
    ============================================================
    http://www.microsoft.com/ntserver/web/news/msnw/Hotmail.asp


    March 2001 - MS Case Study: Porting Hotmail From freeBSD -> Win2K
    =================================================================
    http://www.microsoft.com/technet/migration/hotmail/default.asp


    April 2001: MS Case Study: Porting Hotmail To Win2K:
    =====================================================================
    http://207.46.230.211/technet/migration/hotmail/hotdepl.asp


    June 2001: Microsoft still advertising positions for Solaris Sys
    Admins & Engineers:
    =======================================================================================
    http://groups.google.com/groups?hl=en&lr=&safe=off&ic=1&th=a4e2df2daeeab7ec,47
  86. Umm, I'm not sure how Greg lied on this. He said that the main MS sites didn't run Unix. He did say, though, that Hotmail still had some Unix boxes that were being migrated over. All the links that were posted (those that worked) essentially say the same thing, or they are pretty old (like 98 or 99). The job posting is for an admin for Hotmail (in one case) or for tech specialists that work with clients.

    Maybe I'm just missing something?

    Mark
  87. For the benefit of whole mankind, please stop these kind of silly postings, if you are not able to come up with actual information or your own experiences and stories please do not participate in the discussion, there isn't anybody (besides u?) who benefits from your contributions.

    Hotmail doesn't run neither on .NET nor on J2EE (yes some parts run on Unix but Unix is not the same as J2EE) so how relevant is this contribution it in a J2EE vs .NET comparison?

    Every time you come with a story (or insult) it is commented and placed into context by another debater, you harldly respond to the other debaters, instead u come with another story (do you understand those stories yourself, from what I've read so far from you I at least doubt if u fully understand the stories you are refurring to)


    (why aren't you using a real world name, n n what do you have to hide?)
  88. For the benefit of whole mankind, why don't you answer Dean Wampler ?

    This goes to Mark Hill, Greg Leake and yourself.

    Let me spell out my point:

    How many years has it been since Microsoft started moving Hotmail to Windows? How can Microsoft recommend to their customers to move their business systems from Unix to Windows when Microsoft themselves haven't been able to do it after years of trying?



  89. n n,

    You should listen to your peers and stop your silly posts. Go to Netcraft.com and test hotmail for yourself to see what OS and web server software its running. The vast majority of servers including all front-end boxes are W2K. The few back-end Unix servers left (on Solaris) are in the process of being moved over to W2K. You fail to mention that Microsoft.com and msn.com, both top-tier traffic sites by any measure (among the most visited sites on the Web) are also run on W2K, with zippo Unix boxes anywhere in their data centers. So stop trying to imply MS does not use its own software to run and operate top-tier internet sites, it simply is not true.

    Greg Leake
    Group Product Manager
    Microsoft Corporation
  90. Greg,

    These interlopers are not my peers. Running the Java Petstore application does not qualify them as java programmers. Greg, I suspect they must be from the dark side.


    I have seen references to slocs being a telltale gauge on maintainability but no mention on the role templates play in maintainablity. The programmers with this outdated reasoning are short sighted because they assumed the tools consisted of first generation editors such as vi, slickedit, etc. The layer of abstraction has elevated from source editors to templates in case no one has mentioned this to those counting lines of codes.
     
    I find Oracle's numbers convincing because dynamic sql on Oracle are planned and indexed within system tables; Futhermore, Oracle's tp are the best in the industry. It's so good, microsoft frequently searches rubbish cans for code at Oracle's dumpsters.

    c# unsafe methods and unmanaged code will create serious hazards within the dotnet environment. Couple this with microsoft's vb programmers and you have dire circumstances.
    The language designers were not consistent with their goals(ie KISS).


    Let's cut to the chase Greg. Mike Lehman, Oracle's technical marketing manager is participating within this thread http://www.theserverside.com/reviews/thread.jsp?thread_id=10254

    Why not ask him for the code if you are so interested ?
    :^?



    btw,

    I see you are posting late today. Might you have been delayed becase of the severe security hole discovered in microsoft XP today ?

    http://www.technews.com/news/01/173164.html
  91. n n,

    You are a piece of work, that is for sure! I do not think I have ever participated in a thread where someone has been so, well, childish. Oracle has already been asked to produce their code for their latest benchmark. They have not. That speaks volumes. As for your 'digging through the trash' analogy, interestingly it was actually Oracle that hired investigators to sift through MS trash, this all came out about a year ago, and was very embarassing for Oracle (hard to believe but its actually true). This also speaks volumes, thanks for reminding us!

    Greg Leake
    Group Product Manager
    Microsoft Corporation

  92. We Need Benchmarks!!![ Go to top ]

    I can't believe others saying that benchmarks are really not that important!

    Benchmarks are important in order for us to fully evaluate and decide upon which system will suit us most!

    We are even doing some benchmarkings ourselves!

    I don't like Microsoft and I don't like Oracle more!

    During the years when Microsoft and others are lagging behind in terms of performance, they would continuously brag about the performance of their products. They would cite benchmarks after benchmarks.

    But now they are trying to avoid getting head to head with Microsoft.

  93. We Need Benchmarks!!![ Go to top ]

    I can't believe others saying that benchmarks are really not that important!

    Benchmarks are important in order for us to fully evaluate and decide upon which system will suit us most!

    We are even doing some benchmarkings ourselves!

    I don't like Microsoft and I don't like Oracle more!

    During the years when Microsoft and others are lagging behind in terms of performance, they would continuously brag about the performance of their products. They would cite benchmarks after benchmarks.

    But now they are trying to avoid getting head to head with Microsoft.

  94. We Need Benchmarks!!![ Go to top ]

    I can't believe others saying that benchmarks are really not that important!

    Benchmarks are important in order for us to fully evaluate and decide upon which system will suit us most!

    We are even doing some benchmarkings ourselves!

    I don't like Microsoft and I don't like Oracle more!

    During the years when Microsoft and others are lagging behind in terms of performance, they would continuously brag about the performance of their products. They would cite benchmarks after benchmarks.

    But now they are trying to avoid getting head to head with Microsoft.

  95. n n,

    I suggest you check out instead the .NET forums on msdn.microsoft.com. Specifically http://msdn.microsoft.com/newsgroups/. MSDN is the primary area Microsoft uses for .NET developer community and discussions, and you will find very healthy traffic on the .NET forums there. As with Java, developers tend to aggregate around a couple of primary .NET discussion groups...and MSDN, not gotdotnet, hosts these forums.

    Greg Leake
    Group Product Manager
    Microsoft Corporation
  96. Many recent messages on the forum have brought up ecPerf and the fact that this is a "real" benchmark. I would like to point out that ecPerf is closed to Microsoft and any non-J2EE based product. Hence it's a useless benchmark for comparing J2EE to anything non-J2EE. Sun is using ecPerf to hide from competitive benchmarks. They could easily have endorsed TPC-W instead of inventing ecPerf. ecPerf may be useful to compare different J2EE-based products, but even here it seems to be failing becuase there is only one submission. ecPerf is not the answer to comparing J2EE to .NET in a performance benchmark since Sun forbids Microsoft and other vendors from entering. This leaves .NET, PERL, PHP, etc. out in the cold. So instead of competing on real benchmarks like ecPerf, Sun has tried to create a closed benchmark world to hide in.

    Microsoft welcomes the opportunity to compete in independent benchmarks with .NET vs. any J2EE based product. In fact, we have been invited to a an upcoming Doculabs shootout for app servers, and we have already accepted this invitation and will test .NET in their labs in Chicago. Sun, IBM, Oracle and BEA are the other vendors invited. We have heard SUN has already declined and the other vendors have yet to accept the Doculabs invitation. It's in customers' interest for these vendors to meet in an independent shootout such as the Doculabs shootout. It's also in customers' interest for these vendors to start making TPC-W submissions (see http://www.tpc.org) so that J2EE products can be properly compared to non-J2EE products on performance and cost.

    Greg Leake
    Group Product Manager
    Microsoft Corporation
  97. n n,

    One more note on the new Oracle published results for their latest Pet Store benchmark that shows 200% performance improvement over their first Pet Store benchmark. Developers at Oracle's Open World have been asking for the code to the Oracle benchmark in breakout sessions and the like so they can replicate the Oracle tests. No one at Oracle can provide any code.

    Greg Leake
    Group Product Manager
    Microsoft Corporation
  98. Apropos humour in another thread on serverside I found this post on gotdotnet discussing if the posters are real (as yet most/many work for MS) after several earnest answers: -
    bhrgunatha
    Re: Are any of you real? Posted on: September 14 2001 05:36
    No, I'm not real.
    But then this is his Professional;/Educational Profile: -
    Never graduated, never had a girlfriend, eats cheese, stays at home.[!!]
    It is true there is not too much happening on that site, most posts are either 0 or 1 reply. I looked at this one because it has fifteen, another has 10 which is about MS onerous licensing. (Basically MS lawyers want to put the &#8220;frighteners&#8221; onto anyone who wants to develop Open Source.)
    Not technical at the moment.
    BTW I received this in an IBM email recently (06/12/01):-
    BUILDING WEB SERVICES THE RIGHT WAY USING IBM WEBSPHERE STUDIO

         A response to Microsoft**'s misleading white paper about
         creating Web Services with .Net versus IBM WebSphere V4.0

         http://www-3.ibm.com/software/info1/websphere/news/win.jsp?S_TACT=101CMW13&S_CMP=campaign
         (please copy and paste the entire URL into your browser)

         IBM shows that WebSphere is the superior platform for creating
         Web Services and also points out how Microsoft has attempted to
         mislead customers. More specifically, IBM shows that when a
         benchmark is properly run, (i.e., not in a manner intended to
         produce a predetermined result), WebSphere creates the sample
         Web Service faster, cheaper, using fewer steps, with less lines
         of code, and in a heterogeneous environment, not simply a
         Microsoft environment.

    I haven&#8217;t followed the link yet.
  99. Is there a java.NET and why has Microsoft excluded a JVM in Windows XP (the real reason)?

    Also, I believe that the servlet API has been opened sourced. Jason Hunter who wrote the Orion book on servlets has fixed and wrote some of the code of the API since then.

    Plus, I use Sybase's EAS and it includes alot of the source code for the Java APIs when you install the Sun JVMs. Does Microsoft give the source code?

  100. "To develop a version of Java Pet Store that was suitable for comparison with the .NET Pet Shop
    application, Oracle made modifications to the SQL to make it more efficient, but did not otherwise
    change the structure of the application."

    this is from:
    http://otn.oracle.com/tech/java/oc4j/pdf/9ias_net_bench.pdf

  101. <M$>
    The latest Oracle results are not credible because Oracle has not published any of their code that was tested, hence developers do not know what was tested. ...
    ...Unfortunately, without their code, data load, test scripts, test software and the like, customers do not know what was tested by Oracle. What is Oracle hiding?

    Greg Leake
    Group Product Manager
    Microsoft Corporation
    </M$>

    Greg,

    look this
    http://technet.oracle.com/sample_code/tech/java/oc4j/htdocs/j2ee_petstore_readme.html


    Vesoni
  102. That URL isn't for the version that Oracle modified and used in the performance test against .NET, though. If you notice, they actually just have you download the code from Sun's Java site (see step 4), and it doesn't sound like the modifications they make (in step 5, mainly to get it to work with Oracle) are the ones they mention in the whitepaper response -- there they mention changing the SQL to make it more efficient. Unfortunately, I don't think they have anything beyond this posted to their site yet.

    Mark
  103. Vesoni,

    Mark is right. Oracle has not posted their code for their new numbers, or their new data schema, data load etc. This is just the original code as published by Sun, without the mods made by Oracle.

    -Greg
  104. Greg,

    I know that isn't Oracle's modified version ("Oracle made modifications to the SQL to make it more efficient"), but ("did not otherwise change the structure of the application", Oracle9iAS vs. Microsoft .NET Benchmark Results, December 2001). Also, Oracle not using stored procedures like Microsoft. It's very important, because without them .NET version will be very slow. So, what is point here. My previous post is not an answer to the question Greg&#8230;no&#8230;is another question. For your info, we (a company from Europe) working with asp, c++, vb and sql server(!). Now, we testing .NET for our solutions, because we need platform for web services and others. But, .NET is windows platform&#8230;Right? And, what we do with our clients which looking for other platforms, like Linux? Microsoft new licensing politic is wrong for our business (governments in UK, France, Germany maybe replace their windows with other platform&#8230;). When client changed platform, what they do with our .NET software? Nothing. They choose other company. So, we also testing J2EE and I hope that it will be very soon our primary platform rather than .NET. Look&#8230;IBM, Oracle, SUN, SAP (very important for us!), Sybase and many other companies choose J2EE&#8230;Why? Because&#8230;"Write once, run anywhere"&#8230;
    And benchmark is just one point&#8230;not first&#8230;

    Veso
  105. Veso,

    Sorry I have to disagree with you here. If they want people to believe, they need to publish the code, the data load, the data scripts, data schema etc. and they simply have not done this. They say they did not modify the "structure" of the application...yet in their first benchmark they clearly indicate they limited queries to return smaller data sets, eliminated unnecessary queries, etc. Yet even here they do not supply the source code (only the compiled code) to the Pet Store app as tested, so its unclear exactly what they did. At least in the first benchmark they have a fairly detailed paper that describes the modifications they made for the benchmark (but again not precise details). In this second benchmark where they show a perf improvement of *200 times* they provide zero details on what changes gave them this perf benefit, and provide nothing to let customers replicate the results. How can you believe a 200 times perf improvement without *any* explination or technical detail as to what gave them this boost? If you are so confident that the source they point to is all you need...then try it. I have....and its slower than the original Oracle results by a long shot, becuase its simply the original version of the app as published by Sun (not even the modified version they used in their first published benchmark results where they clearly state they modified code, queries and the like).

    Also note it would be very easy to change the backend database and get much better results simply by eliminating the leading wildcard in the primary search query, changing the data load, etc. This would be altering the functionality of the application of course, but is a trick possible to play to give better (although unfair) results.

    As for MS using stored procedures...I still can't believe so many people are hung up on this. It is the way MS recommends you code this type of application...its part of our .NET blueprint. Why? Just listen to IBM, who says in their Java Redbook for Db/2: “Stored procedures can provide major benefits in the areas of application performance, code re-use, security, and integrity” in their Redbook entitled DB2 Java Stored Procedures Learning by Example.

    The fact is it would be simple to take the .NET PetShop, and instead of using stored procs with SQL Server 2000 substiture pre-prepared SQL statements. Try it---I know you will still see great performance, with perhaps only a 10% degradation over our stored proc results. So if folks are opposed to the use of stored procs...lets be clear...this was an architecture descision becuase the .NET Pet Shop is supposed to be a blueprint app....showing what we recommend customers do for best design and best perf. However, its just as easy to use pre-prepared SQL statements using .NET programming...so if you want try it. Just make sure your parameters are properly pre-bound at runtime to avoid a SQL recompile on every execution. Its trivial to do, and performance will be just fine.

    As for Oracle results....Oracle simply has not published the code, data schema, data load, or the test software used to get their results. Until that is done, the results should be treated as hot air. If Oracle wants to get serious about their results...then disclose all information, make the test customer-repeatable, and take us up on our offer to meet in an independent lab of our mutual agreement (like eWeek, Doculabs, etc.), to have the results audited and indepedently verified. We are 100% perfectly willing to do this, since we have nothing to hide.

    -Greg
  106. Nick,

    I wanted to get back to you on the following technical post from you, where your comment was:

    -----------------------------
    "Likewise, if I want to persist some change in a database and send a message on MQSeries - and have all of this encapsulated in a transaction - how do I do this in .net. Unless I am mistaken, I have to step back into MTS (COM+) in order to support distributed, 2-phase commit transactions. Am I wrong? (I hope so).
    In J2EE, the JTA/JTS, JMS, JDBC and EJB standards let me write code to do this that will then support any JTA compliant transaction coordinator, any database with a JDBC driver, any JMS compliant messaging provider and any EJB compliant container running on almost any platform. While there may be some little idiosynchrasies, and SOME amount of specific code/settings the bulk of the code will look the same. This is where the saving is. I can re-use any number of these existing infrastructures (if they exist). I dont even have to buy a new server - I might be able to re-use an existing one. "
    --------------------------------------------

    To answer your question:

    Actually the way we work with external transaction systems is exactly the same way that all the JTA’s work, by providing a common interface to a TPM. In Java, each of the J2EE vendors have their own JTA’s and these each have there own characteristics (idiosyncrasies as your posting says). These are very different from Java supplier to Java supplier and can cause immense problems in real life. For example, XA has been around for 15 years as a standard and there are still major inconsistencies between the failure semantics of different vendors implementations.


    In .Net you have full support for transactions, including transactions over MSMQ message-based systems as well. Transactions work by using the namespace system.EnterpriseServices, and you derive a class from ServicedComponent. You then put attributes on your class such as [Transaction] and then the work down in that class will participate in a distributed transaction. All the other work associated with making this a transaction is handled by the .NET runtime, making it as simple as possible for the programmer. The call into the transacted component doesn’t go through COM+ interop so no COM+/MTS programming is required, and you have the full .NET type system available to you.

    But a key point on Java transactions is that the interface logic is really a trivial part of the story. The reality is that while the interface logic may be the same, the different J2EE runtime implementations of transactions across vendors presents very real and very challenging issues for transacted systems...so that "write once run everywhere" is not an accurate description.

    -Greg

  107. Greg:

    >> "The reality is that while the interface logic may be the
       same, the different J2EE runtime implementations of
       transactions across vendors presents very real and very
       challenging issues for transacted systems...so that "write
       once run everywhere" is not an accurate description.

    J2EE hinges on the fact that the vendors properly implement the Standard API interfaces. Obviously if one vendor doesnt implement it properly, then there may be some problems. But in this case you just choose a different vendor.

    =======

    With regard to transactions: My specific question was whether *declarative* transactions are supported in .net - without having to step back into MTS?

    cheers,
    Nick
  108. With regard to transactions: My specific question was whether *declarative* transactions are supported in .net - without having to step back into MTS?


    Sure. MTS is a CTM framework used only for transactional components before Windows 2000.

    Here below is a minimal transactional component in .NET. This component can be called either remotely or locally. Note that the equivalent code in EJB you would have to define a remote interface, a remote home interface, a local itf, a local home itf, a bean class, a deployment descriptor, to create a JAR file containing all these, etc.

    Also, the deployment phase is very simple in .NET: just copy the compiled DLL into the right place on the server. No need to invoke any command-line utilities/scripts to deploy the component. Optionally, you might want also to add this .NET component to the COM+ catalog if you want to use it from other COM+ components.

    For a full sample code see this.

    using System;
    using System.EnterpriseServices;
    using System.Runtime.CompilerServices;

    namespace CSharpBank
    {
      [Transaction(TransactionOption.RequiresNew)]
      public class MoveMoney : ServicedComponent
      {
          // SetComplete automatically called if no exception
          [AutoComplete]
          public String Perform (int lngPrimeAccount, int lngSecondAccount,
                                 int lngAmount)
          {
              // Put your implementation here
          }
      }

      [ assembly: ApplicationName("BankApp")]
      [ assembly: AssemblyKeyFileAttribute("CSharpBank.snk")]
      [ assembly: Description("Bank Application)]
    }

  109. Cheers Adi,

    However this sample only interacts with a database. Only the database's transaction manager is used. What if I want to do a 2PC transaction involving more that one resource manager - ie like sending a message as well?

    I knew that simple transactions were supported - but are complex transactions? My understanding is that for 2PC transactions, you need to go back to MTS (which is ugly).


    -Nick

  110. Of course distributed transactions are also supported, as previously was the case in MTS/COM+. All you need to do is (in the MoveMoney.Perform method above) to create either some .NET or COM+ transactional components that use resources from various RMs (like multiple databases, MSMQ, etc.). All the underlying 2PC protocol details are handled by the execution environment and therefore hidden from the programmer.

    This is done without involment of MTS. Again, MTS is an execution environment (available for NT/Win9x systems) used to handle declarative transactional behaviour to MTS COM components, in the same way that COM+ execution environment does for unmanaged COM+ components in Windows 2000 or .NET Framework does for managed transactional components.

    More details are in the section about automatic transactions in MSDN.

    Adi


  111. Cheers Adi,

    I will check it out.

    It was just my understanding that this was not supported in .net.
    It didnt make sense to *not* support it - .net would definitely not be a viable platform for most complex projects if declarative transactions (supporting XA) are not supported.

    -Nick
  112. Greg,

      Please give SPECIFIC references to your arguements. When you make claims back them up. I haven't seen this, just sheer ramblings. Have you ever used JTA before? Which platforms? Which DBs? Which vendors ? Where did you encounter problems ?
    Which version ? When ?

  113. Benchmark Wars: Oracle9iAS vs. Microsoft .NET[ Go to top ]


    http://www.local.microsoft.com.au/australia/events/eventinfo/default.asp?lngEvent=4679&lngPage=707



    "greg Leake is group product manager, .net enterprise server group. He is responsible for TECHNICAL MARKETING for the .net platform." - microsoft



    This may explain all the ramblings and no substance.
  114. And still the "contribution" from n n (or whatever his name really is - perhaps Larry Ellison's son?) consists of immature ramblings. He hasn't quite understood that his posts are weakening the J2EE argument, not strengthening it... ho hum...
  115. Posted by Lee Fuller 2001-12-10 11:47:59.0.
    And still the "contribution" from n n (or whatever his name really is - perhaps Larry Ellison's son?) consists of immature ramblings. He hasn't quite understood that his posts are weakening the J2EE argument, not strengthening it... ho hum...

    In case no one has told you Lee, J2EE has been in production for some time. It doesn't need supporting arguements. It is a proven solution with unprecedented support. Unlike .Net, links to living documents and vacuum environments(tpc) aren't going to cut it.

    This "used car salesman" approach driven by greg leake - dragging microsoft employees within the J2EE community is telling about microsoft's desperation. It's reminiscent of project Blackbird spearheaded by greg leake in 1995.He has a nak for these types of underhanded schemes.


  116. What's underhanded about vocal marketing? Sure I don't think Microsoft's benchmark is worth the HTML its hosted on, but I don't see anything underhanded about Greg coming into the forum and voicing his marketing opinion.


    While J2EE has been around for some time (and those of us who were in with JBoss very early on know this well), that does not mean that it doesn't need supporting arguments. Just because something is in production doesn't mean that its the best way to go (though in the case of J2EE - most of it is the way to go).
  117. <quote>
    As for MS using stored procedures...I still can't believe so many people are hung up on this. It is the way MS recommends you code this type of application...its part of our .NET blueprint. Why? Just listen to IBM, who says in their Java Redbook for Db/2: “Stored procedures can provide major benefits in the areas of application performance, code re-use, security, and integrity” in their Redbook entitled DB2 Java Stored Procedures Learning by Example.
    </quote>

    I believe this is a major point of contention because stored procedures generally lock you into a single database vendor.

    Yes, I realize that MS recommends stored procs for a pet-store type of application. For many of us, recommending stored procedures anywhere is unthinkable.

    Greg, can you direct us towards types of applications where MS would not recommend the use of stored procedures? I'd also like to see information about upgrading stored procedure code from an ISV standpoint. I work for an ISV and our application is installed in a customer's sometimes existing IT solution. It is not always possible to require a specific database.
    -pete
  118. It's how the level of discussion has fallen to the level >of 5th graders. If you disagree with someone, make a >point - don't insult people.

    Yes I admit my comment was like a 5th grader, Im sorry for that. I didnt expect anybody to react on that. Apparently other 5th graders around here. Im old enough (7th grade) to resist to further comment.

    The reason I was upset is the way MS enters this forum pretending being interested in technical discussions. But this is pointless. There is no common base. We all agree, that JPS is not suitable for performance comparisons. But Greg doesnt. Imagine the flames sombody non-MS would receive being that ignorant.

    What MS never gets is that there is more than one dimension of scalability (Java has never been chosen for performance). The most important one is the evolution of every technological aspect in a collaborative way. This sometimes takes longer, thats true. But the result is a more stable, dynamic and creative environment than anything MS could ever provide.

    BTW the reason that developers sometimes _overreact_ or are carried away is that they are enthusiastic and passionate about _their_ technology. Thats a good thing. Passion is the source of all creativity. And creativity leads to progress and productivity. Not the opposite is true.

    One might think that at the end of the day it doesnt matter wether .NET or Java provides the progress and services. But if .NET succeeds and Java (or let it be Python or whatever) fails, at the end there will be only one who makes the money and we all know who that is. That will destroy passion and real creativity.

    This IS like religion expect that we know what will be when the day comes.
    I still remember (despite my young age) what happened to the PC platform.

    Sorry for being slightly off topic.

    PS: My intentions are far from insulting someone personally. In fact I highly respect Greg for being that tough and facing all these Java developers with such diverse technological backgrounds.
  119. I'm not sure how fair it is to get upset that someone from Microsoft is participating in a discussion about Microsoft. I'm assuming that someone from Oracle would be welcome to contribute to this as well.

    Also, I didn't get the impression that anyone from MS (in this thread or others) was "pretending" to be interested in the tech, either -- that seems to assume some hidden purpose to the posting, which I don't see.

    The fact is, the Oracle benchmark does seem a little suspect (more so than most benchmarks, I guess), simply because they won't release many details about it, and they won't answer any questions. As someone that does a lot of J2EE work, and will probably be looking at .NET to see how features compare between the two platforms, I'm honestly just curious to see what the real results are, and to see what code/SQL/etc. was used to get them.

    Mark

  120. Also, I didn't get the impression that anyone from MS (in this thread or others) was "pretending" to be interested in the tech, either -- that seems to assume some hidden purpose to the posting, which I don't see. - Mark Hills


    http://www.theserverside.com/home/thread.jsp?thread_id=9797

    You need to look at this thread.
  121. I did look at that thread. I've also been following this one, along with a few others. I guess I thought their comments were a bit more constructive than comments such as
    ".Net is a concentration camp pretending to be a safehouse", "Tell bill to try the cabbage diet - obesity is a health hazard", or "I suggest you subscribe to Hooked On Phonics if you want everything spelled out for you."

    Again, I think it's good if people from MS contribute to discussions about MS products (this applies to other vendors as well). I did see that there were MS people on that thread as well. I didn't see them posting marketing brochures. I did see them discussing the topic of the posting.

    Mark

  122. Greg,

    I never sad something like "a perf improvement of *200 times*"... but isn't matter. There are just numbers. Oracle's, Microsoft's, IBM's, SUN's. BEA's... Numbers, numbers, numbers... In my home I'm the king...
    And you sad about stored procedures... "I still can't believe so many people are hung up on this." Greg, we using stored procedures, triggers, etc... all features in every our web project (asp + sql server), and I know performance with and without procedures. Maybe for 500 users is "a 10% degradation" over stored proc results, but for 10000... I agree with Peter Royal on this.

    Veso
  123. Veso,

    The 200 times perf increase is a number I came up with...its the difference (I believe if I did the math correctly) between Oracle's first benchmark perf on Pet Store and their newest benchmark. The point being this is a huge difference and they need to publish info to explain the difference, as well as all the materials so customers and others can replicate the tests/validate the results.

    As far as stored procedures go....yes I agree they are not appropriate in all cases. I suppose I can be justly accused of being a stored procedure biggot :-). However, keep in mind the recommendation, and as done with Pet Store, is merely to wrap the SQL query in a stored proc to get better performance....no business logic or other elements of the app logic are placed into the stored proc/data tier, which I agree would be bad design indeed. I do stand behind the info I provided in my last thread. It is very simple to take the .NET Pet Shop and use pre-prepared SQL statements instead of stored procs for all SQL in the app, and you will not notice a big drop in performance although you will see some. This will hold for higher user loads as well...I have tested other apps through 7,000 concurrent users (no think time) to back up this claim. SQL Server (and Oracle) are very efficient at pre-prepared SQL statements, not just stored procs, and in the case of an ISV concerned with pure database portability of code, using pre-prepared SQL may well be the way to go. However, from experience, for simple apps where the data tier is not going to be swapped around between different RDBMS systems (and most customers do not change RDBMS systems around once the app is created), using stored procedures to wrap just the SQL logic can have some real advantages, as even IBM points out in their Java DB/2 redbook.

    Perhaps we should publish a version of .NET Pet Shop and benchmark results for it with no use of stored procs and all pre-prepared SQL. Would this be of interest to folks on this forum?

    -Greg
  124. I would be interested in seeing your results Greg if you guys take into account writing any new performance comparrison tests using the best practices that are set forth in the Pet Store. Once the systems are doing essentially the same thing, it will be a lot easier to compare performance.
  125. Your criticisms of Oracle are valid. However, Microsoft made many equally egregious errors in it's comparison of their .NET petstore vs. Sun's. I wrote a detailed article at onjava.com analyzing this controversy.

    Microsoft merely quoted the Oracle numbers and compared them to the results for the .NET petstore. The Oracle tests should have been repeated on identical hardware, etc. Failing to do this introduced potentially huge experimental errors, which completely invalidate the results. If Microsoft didn't have enough information about the Oracle tests to repeat them, it should not have quoted them. This mistake hurt Microsoft's credibility.

    Even Oracle admitted that the petstore is a poor benchmark test. Their bad. Hopefully, a neutral third party with adequate resources will do a truly scientific analysis of these two architectures. A good Master's thesis??

    Dean Wampler
    deanwampler at yahoo dot com

  126. Dean,

    We are prohibited from repeating the Oracle tests and disclosing benchmark results for Oracle by their license agreement. Hence we must rely on the data as originally published by Oracle. They did publish a 20 page paper on the first benchmark, which provided enough technical info and benchmark info to replicate their test in our environment to make it a fair comparison. We stand by our results, and as a matter of personal importance, the tests I am involved in I have a policy of full disclosure so that customers and others can repeat the tests we did to verify the results. The issues in your paper are important to understand, but they do not make the test and comparison invalid. See http://www.gotdotnet.com/team/compare/petshopfaq.aspx for detail as to why. More comparative benchmarks are needed between J2EE and competing technologies. One interesting element that is missed in this debate is that ecPERF prohibits non-J2EE products from competing. Instead of working with industry-standard benchmarks like TPC-W, Sun has opted to hide from comparative benchmarks by creating a closed benchmark for J2EE. The need to do a benchmark on apps like the Pet Store in the first place would be greatly alleviated if Sun and J2EE vendors in general would compete in industry-standard benchmarks measuring price and performance of app servers, including non-J2EE app servers.

    In the meantime, perhaps the best way for customers to get a true sense of relative performance between J2EE app servers and also non-J2EE app servers is to perform their own comparative tests. The code and materials published on http://www.gotdotnet/team/compare including Nile and Pet Shop provide a good place to start.

    Greg Leake
    Group Product Manager
    Microsoft Corporation
  127. Greg,

    You're missing the basic point; Microsoft quoted results and used them in an invalid comparison, rather than create a valid test scenario. If Microsoft couldn't run the Oracle tests, then Microsoft should have created its own independent tests that it could run on the same HW/OS/DB combination. Let me repeat for emphasis: you CAN NOT COMPARE RESULTS FROM TWO DIFFERENT EXPERIMENTS WITHOUT ACCOUNTING FOR THE SYSTEMATIC DIFFERENCES. This is Science 101. At the time I wrote my paper, the systematic differences were ignored by the Microsoft documentation on the gotdotnet web site. If that flaw has been corrected, good. Personally, I would not trust any results (from any tester) unless they were run on the same hardware, OS, and DB combination. Otherwise, how do you know what you are REALLY comparing?

    I find that the new gotdotnet FAQs page does little to address the issues I raise in my paper.

    With regards to ECPerf, we need several benchmarks: (i) benchmarks to compare one J2EE app. server w/ others - the best use of ECPerf, and (ii) benchmarks to compare different app. server architectures - which may not exist yet.

    Unfortunately, your last remark is true. Currently the only way for customers to compare the performance of these two platforms is to do their own comparisons. There are no reliable, unbiased comparisons available.

    However, I believe that the performance issue is a canard. Both architectures can be made to perform adequately, I'm convinced. The more important issues include whether or not you need HW/OS/DB portability, dealing with heterogenous systems (is SOAP adequate and fast enough, for example?), developer productivity, the quality and security of the app. server, vendor lock-in, etc., etc., etc. I discuss some of these issues in my onjava.com paper.
  128. Dean,

    We do have a difference in opinion as to what can be compared scientifically in a benchmark and what cannot. When you say that a benchmark cannot be valid if it is performed on different OS and different hardware you go against generally accepted benchmark practices for the industry. Take any TPC-C results, for example, or TPC-W (check out http://www.tpc.org), or numerous other benchmark (SPEC, etc.) and indeed different OS/hardware/software combinations are compared in price and performance all the time. The stipulation of course is that the hardware and OS and config used in the test is fully disclosed (as MS has done) so customers know what is being compared. So I completely disagree with your point that the test is invalid becuase we used a different OS (W2K) and different hardware (intel vs. SPARC). The systems used were fully disclosed, and were similarly configured as in the Oracle test (same number of overall machines, same memory, same network config, same number of CPUs in each machine, similar clock speeds). So this is a very valid comparison of a complete SUN SPARC/Solaris/J2EE stack as compared to a Intel/Windows 2000/.NET stack. We also welcome a comparison of costs of the two systems under test (something we did not focus on). You will find that not only is .NET faster, but compared to the hardware/software combo Oracle ran on, also less expensive. These metrics (price and performance) are std metrics used by TPC and a plethora of other widely accepted industry benchmarks to compare performance of different hardware/OS/software combinations all the time. Even ecPerf is designed to **directly** compare J2EE products running on different hardware and different OS's using price and performance metrics.

    -Greg
  129. Posted by Greg Pierce:

    >>What's underhanded about vocal marketing? Sure I don't >>think Microsoft's benchmark is worth the HTML its hosted >>on, but I don't see anything underhanded about Greg >>coming into the forum and voicing his marketing >>opinion. "

    Thank you Greg. While I may be on the other side of this debate, I appreciate your comment in wake of n n's personal smear campaign going on (I choose to ignore his/her posts from now on, since they are so innane and do not contribute anything). I do think competition is healthy, and like many java developers, I have a real passion for the technology I am evangelizing. If I thought .NET was a shitty product, I would not be so keen on being here :-). Bottom line is that competition is healthy, and the debate I think benefits both technologies.

    -Greg



  130. I hate to go into pedantic details, but I guess I have no choice. I was a Physicist before switching to software, so I know in EXCRUCIATING detail what constitutes appropriate experimental and analytical procedures.

    If you introduce too many variables into an experiment, you can't know where the data differences are coming from. TPC measurements are designed to measure the performance of databases and they address issues such as how a particular database performs in different deployments, how different databases compare, etc. All the potential contributions to results are characterized so they are unambiguous (to a reasonable degree, anyway). The reader can look at the tests that are most applicable to the "pain points" of his/her own situation.

    Yes, the ECperf measurements can be used to compare J2EE performance on different platforms, but again, the number of "variables" is reduced; in this case, the J2EE part is a CONSTANT and the platform is the variable. You would use those tests to compare platforms, but NOT application servers.

    Furthermore, HOW measurements are performed is crucial. For example, the Microsoft vs. Oracle Petstore comparison can't be trusted because "response times" were not measured in EXACTLY the same way. There is no way to know what systematic differences were introduced.

    So, DISCLOSURE is not an adequate experimental standard. You need much more than that. You need to either eliminate systematic differences or completely characterize (measure) them.


    It's perfectly valid to ask which HW/OS/DB/App Server combination performs best. Of course, everyone wants to know this. I'm saying that if you don't account for the performance contribution of each piece SEPARATELY, then you won't really know how that piece will affect a particular real-world deployment, since no one will ever deploy a system exactly like a benchmark configuration. Nobody is running the Petstore as a real application, as far as I know. If they were and they wanted to avoid making any modifications, then sure, they should go buy/build the .NET version and the test configuration and be done with it. However, we've all got different applications, different network environments, etc. What we need are experiments that compare

      * .NET vs. J2EE on the SAME HW/OS/DB/Network combinations
      * .NET with different DB's
      * J2EE with different DB's
      * .NET with different OS's
      * J2EE with different OS'S
      * .NET with different HW
      * J2EE with different HW
      * .NET with different optimization/implementation strategies
      * J2EE with different optimization/implementation strategies

    This is a tall order. I'm hoping that some Masters students out there will give us a few theses with these definitive comparisons.

    Well, I've said far more on this topic than I wanted to, so this is my last post on it. Let me finish by thanking you, Greg, for a spirited discussion.

    Dean

  131. what do you mean when you say "unfair techniques"? give me a break. there are no unfair techniques used anywhere in software development or in benchmarking if hw and OS are the same for each deployment....however, I would argue with you about "unfair business practices" but that is another thread....
  132. We need to create a J2EE version of the MS PetStore, or at least something closer to it in architecture...

    As has been commented to death elsewhere on TheServerSide, the PetStore is an exhibition of design patterns, rather than a realistic Enterprise Architecture.


  133. Benchmark Wars: J2EE vs. Microsoft .NET[ Go to top ]

    It's not very useful to compare a standard platform (J2EE) to a platform implementation (.NET). It's like comparing MS Visual Basic to ANSI C.
  134. On the subject of benchmarks

    There is a pdf brochure at IBMs site that refers to a competetive ECperf benchmark performed in Paris.

    www-5.ibm.com/fi/news/events/softwareday/pdf/P_Ahveninen_websphere_uutiset.pdf .

    On page 13, it discusses the result of AlphaCSP's ecperf comparison.

    It also says the results should be published here on the serverside around the end of October.

    Anyone know why we haven't seen them?

    Phil

  135. Because the losers have very good lawyers......
  136. Just ignore those Microsoft people. Everyone who has a little development experience knows that no one would design an application the MS way for all the trouble you get later (and neither the blueprint way). It's clear to everybody they wrote the application to get some PR "20x faster" arguments. Noone tells you to use EJBs, BMP or a container for J2EE. If they would be serious (just as greg said, showing the performance hit you get when using java) they would have written a Java version of their "benchmark" (JDBC, servlets, oracle stored procedures). And they wouldn't use old SUN hardware but new and cheap athlon clusters. They know their test was bullsh* but did it nonetheless. They are cheating and they know it. So just ignore them.

    But, their caching technology would be nice, someone knows anything about .NET caching ? Got to write that in Java (or first in Ruby). Does someone have a nice URL ?
    Right now we are implementing XML caching (EJBs->XML->Cache).

    bye
    -stephan
  137. But, their caching technology would be nice, someone knows >anything about .NET caching ? Got to write that in Java

    >(or first in Ruby). Does someone have a nice URL ?

    check out http://www.servletsuite.com/ for example

    There are custom JSP tag for cache (components level cache) as
    well as cache filter (page level cache)
  138. To quote someone who knows a bit about performance:

    "* Brilliant marketing ploy by Microsoft: take a badly performing Java tutorial application, and reimplement it to run as fast as possible in .NET. There's a lesson here: make sure you performance tune anything users will see, even tutorials" Jack Shirazi,
    http://www.javaperformancetuning.com/

    bye
    -stephan
  139. Reading these comments, it is obvious to me that Oracle is clouded with mistrust for many reasons. Is it really misguided PR or is it arrogance that causes so many companies (Sun, Microsoft, etc) to fall out of grace with ordinary people?
  140. Benchmark Wars: Oracle9iAS vs. Microsoft .NET[ Go to top ]



    " Reading these comments, it is obvious to me that Oracle is clouded with mistrust for many reasons. Is it really misguided PR or is it arrogance that causes so many companies (Sun, Microsoft, etc) to fall out of grace with ordinary people?" -florin


    Well, those same ordinary people bought millions of shares from Oracle yesterday helping the Nasdaq break new highs.




  141. It may be interesting to compare the two store implementations in other areas, since performance is not a problem for the average site. Maintainability and ease of change is much more important for most people, especially when you consider the relative cost of buying more hardware vs. more developers and longer schedules.

    The J2EE pet store uses an MVC pattern to separate the display code (in templates) from the application logic. Microsoft explicitly says the don't use MVC. Do they have some equivalent approach for separating display code out into templates so that HTML coders can mess with it? Or will changing HTML in the .NET store require a highly paid developer who knows C# and stored procedures to spend his time writing HTML?

    What will happen if there's a need to support internationalization, co-branding, or other display-level changes on top of the same code base? Will the .NET store be able to handle that without a total rewrite (or a duplication of tons of app code via copy/paste), or is the display stuff coupled too tightly to the app logic?

    This is the kind of thing that really matters when choosing a platform, not whether you'll need to buy 2 servers or 5.
  142. Apology for off-topic post....

    >The J2EE pet store uses an MVC pattern to separate the display code (in templates) from the application logic. Microsoft explicitly says the don't use MVC. Do they have some equivalent approach for separating display code out into templates so that HTML coders can mess with it? Or will changing HTML in the .NET store require a highly paid developer who knows C# and stored procedures to spend his time writing HTML?

    They've done a good job in this area - they have a concept called "code-behind" pages that support basic HTML template. Makes it pretty trival to change the look and feel and does a good job on the separation of look and feel from business logic. IMHO, it still has too much code in it - I like the templating systems that have been proposed for, say PHP (and ASP) and some of the core ideas behind XMLC (from Lutris) are pretty interesting as well.

    Of course, this is totally off topic....

    Damian