Discussions

News: MVM vs. JVM: Barcelona to run multiple apps in the same JVM

  1. Barcelona is the project name for a multi-tasking virtual machine (MVM) that Sun says will increase the scalability of the Java platform. According to Sun, "The MVM is a general-purpose virtual machine for executing multiple applications written in the Java language, based on the Java HotSpot Virtual Machine and its client compiler. Through hosting multiple tasks, the MVM increases the scalability of the Java platform." Core to the changes are "techniques that allow for collocation of multiple applications in a single instance of the virtual machine," so that "applications are isolated from one another and each 'thinks' it has the whole virtual machine all to itself."

    In discussing the MVM's impact on J2EE, the article states: "The Java 2 Platform, Enterprise Edition (J2EE) is similar to an operating system in that a J2EE server can host multiple applications. In practice, this is rarely done due to limitations on scalability, weak inter-application isolation, and inadequate resource management facilities in the underlying Java platform. This leads to a proliferation of server instances, each typically hosting a single application, with a consequent dramatic increase in the total memory footprint and more complex system administration. The MVM supported multiple instances of the J2EE 1.3.1 Reference Implementation through an efficient implementation of isolates, thus, substantially increasing scalability, reducing memory footprint, and server startup time when compared with the Java HotSpot Virtual Machine. This was achieved without changing server code and with no loss of performance."
     
    Summing up the benefits of the MVM, "For example, desktop users will be able to simultaneously run more Java applications due to lowered memory consumption. At the same time, reduced start-up time will significantly improve their experience. Administrators of large computer installations will welcome improved scalability. Developers of middleware infrastructure, such as application servers, as well as enterprise applications, which typically execute on server-class computers or clusters, will also find MVM's programming interfaces attractive."

    A research release of the MVM is soon to arrive. Do you think that APIs geared to colocating instances in a single JVM will impact your code? What are your concerns about such technology?

    Links:

    Threaded Messages (140)

  2. The Java 2 Platform, Enterprise Edition (J2EE) is similar to an operating system in that a J2EE server can host multiple applications. In practice, this is rarely done due to limitations on scalability, weak inter-application isolation, and inadequate resource management facilities in the underlying Java platform.

    Is this really true?

    Maybe a big business-critical app gets its own server, but surely smaller web apps, the vast majority, get collocated.

    What's your experience ?

    Kit
  3. Maybe a big business-critical app gets its own server, but surely smaller web apps, the vast majority, get collocated.What's your experience ?Kit

    We try to break applications into regions, and big, mission critical apps tend to be isolated onto their own instances, while miscellaneous apps are grouped elsewhere. We also try to have the product of a certain development group isolated, as it gives one throat to choke when things go south in an app <grin>.

    We've got something like 100 different web apps running, really big and active through small and mostly inactive, some with EJB-tier functionality as well, and it's impossible to dedicate a JVM to one app. Really, having a server that is 95% idle to do that is sort of a 'bug' in itself...right?

    So instead of isolating, it seems like the deal is to cluster, and allow an individual instance to be less bulletproof? That seems to be what we have arrived at. We're always seeking better up-time, it's not CICS yet! Even on the older servers we're finally moving off of, our availability has been pretty darn good. I did sort of laugh when I was told at the NFJS that my apps were only 80% available...c'mon! But that's another, and older, thread.

    How would a multi-tasking JVM change this model? Would this be something you would see more in the architecture of app servers and other platforms?

    Regards,
    Mike C
  4. The J2EE applications I worked on (bank, insurance) were/are mostly isolated in their own JVM in production or even distributed on multiple JVM. But I have rarely seen multiple applications functionnally different hosted on the same JVM. Mostly because J2EE application servers often require to be restarted when a service is reconfigured. Especially if apps use the security features of the web or EJB container with different authentication mechanisms. Security service is shared across servers of a domain (or a cell). Also, memory leaks, server freezes due to thread dead locks discovered only on production or security requirements (JVM policies) forced to isolate them (mostly on different JVM on the same hardware).
  5. The most interesting thing about this discussion was that the following was not a reaction by anyone else. I think it underlies the NIH (Not Invented Here) bias of the Java community:

    The problems discussed are real and important. Plenty of work has gone into operating system processes both in feature set and tuning. In solving these problems this work should be leveraged not duplicated.

    Operating systems provide tools to determine memory, file handle, cpu, socket, and other resource usage on a per process basis.

    OS's provide tools to control security and to signal or kill a process. It is an enourmous amount of work to get Java to anything like the level of even a poor operating system.

    The JVM has nothing like this level of sophistication. While it is possible to get Java to this level both the initial and the ongoing resources involved are enourmous.

    The issues of memory usage and startup time can be tackled in many ways (shared memory and performance tuning) while still leveraging operating system processes for other tasks.

    I don't think the shared memory and performance tuning will completely solve the problems for ISP's hosting Java Web Applications, but I think the critical problems remaining would mostly also remain after MVM.
  6. I think what we are seeing is that JVM's features are increasingly "clashing" with operational system's features. One long term solution to this duplication of features, would be to turn Java into an Operational System by itself, and get rid of the underlying OS altogether. It would be less trouble than trying to delegate all these common features to all the different types of OSs out there.

    I think such a Java Operational System would be available in the future initially with a command line only environment, much as unix and DOS in the beggining, but once such an OS is available, I think it wouldn't be long before a full-fledged multiuser GUI Java OS could be achievable too.

    Regards,
    Henrique Steckelberg
  7. JMX Kernel?[ Go to top ]

    In reply to :In many ways the JVM is far behind operating systems. It seems that JMX and maybe the JVM too is moving to a true kernel design.

    JMX is now used as a 'micro kernel', see JBoss for instance. Why the kernel is exactly 'micro' I don't know for sure. But the linux kernel also schedules threads to resources. The JMX kernel does not do this yet I thought, but there is demand for that.

    How can one for instance assure that monitoring threads always perform even under very high load? How can calls be queued while a MBean is reloaded? These reasonable demands all seem to point to a more complete kernel design within JMX or the JVM. It is questionable if this kernel itself can be written in Java, traditionally kernels seem to be written in C, not in OO languages.

    Fact is that all these matters already have been discussed earlier, and somehow I get the feeling Java is re-inventing this.

    Regards,

    Sanne
  8. JMX Kernel?[ Go to top ]

    Well, if we analise CPU power growth through time, one can imagine a point where one could have a performatic pure Java kernel, maybe running in parallel with regular apps in these new multicore CPUs, which seem to be the new order for keeping power growth from now on. Mind you, the JVM itself don't have to (can't?) be coded in Java, it could be this very small C kernel, which would just handle initial boot, spawn the main OS processes, and handle core resource management. The rest could be Java processes, very similar to unix's model.
    There must be something between Java bytecode and machine code anyway, and this something could come out to be a very thin layer, just enough to get an initial boot and basic resource management, before handling the system to other OS core processes after boot, this time in pure java, in order to get the full java OS up and running.

    Just some dreaming,
    Henrique Steckelberg
  9. JMX Kernel?[ Go to top ]

    Henrique,

    Yep, my idea exactly. But then the question pops up: Why not use the linux C kernel --as is--? No need to duplicate code if you don't have to. Java processes would need some way of communicating with the kernel.

    Ah well, this is definitely why programming langauges which try to bypass the OS get in trouble sooner or later.

    Sanne
  10. I think what we are seeing is that JVM's features are increasingly "clashing" with operational system's features. One long term solution to this duplication of features, would be to turn Java into an Operational System by itself, and get rid of the underlying OS altogether. It would be less trouble than trying to delegate all these common features to all the different types of OSs out there. I think such a Java Operational System would be available in the future initially with a command line only environment, much as unix and DOS in the beggining, but once such an OS is available, I think it wouldn't be long before a full-fledged multiuser GUI Java OS could be achievable too.Regards,Henrique Steckelberg

    There are several Java RTOS, though I honestly don't know how popular the are today. Back when I worked on wireless applications and platforms, there was a lot of talk about using a RTOS on mobile devices.

    In terms of a full blown JavaOS, I'm not sure I like that idea. The benefits of Java taking over low level functions isn't clear to me. I would think a JavaOS would need to implement much better isolation to prevent one application crashing from killing the entire VM. If Sun manages to build it and make it rock solid, I'll use it. Until then I'll hold of on making a premature judgement.

    peter
  11. I think what we are seeing is that JVM's features are increasingly "clashing" with operational system's features. One long term solution to this duplication of features, would be to turn Java into an Operational System by itself, and get rid of the underlying OS altogether.
    That, IMO, would negate the entire value proposition of Java, i.e. begin platform *independent*.
  12. I think what we are seeing is that JVM's features are increasingly "clashing" with operational system's features. One long term solution to this duplication of features, would be to turn Java into an Operational System by itself, and get rid of the underlying OS altogether.
    That, IMO, would negate the entire value proposition of Java, i.e. begin platform *independent*.
    In what way? It wound't be any different from what Java is today, only parts that now depend or are totally relegated to underlying OS would be integral part of Java's APIs (as it increasingly happening already).
    Maybe your point is that, instead of having java running in any operational system, it would become just another OS out there, just another competitor. If so, I see what you mean and what this would mean to Java itself as a platform. Indeed, today it is not a "either java or your OS" choice, but if someday Java becomes a full OS, this choice would have to be made.

    Regards,
    Henrique Steckelberg
  13. "only parts that now depend or are totally relegated to underlying OS would be integral part of C#/.NET oops I mean Java's APIs"

    Your dream is not farfetched at all Henrique and will be reality sooner that you think! ;)

    hi, hi
    Rolf Tollerud
  14. Awesome[ Go to top ]

    This has been badly needed for some time. I will go so far as to say that Sun should hold up the next major release of Java until this is implemented into it. I need this today infact. Currently I am running Tomcat, Eclipse, and database tool, and a java editor on my desktop. Due to development I am working on, I need all 4 running. With 512M of memory, most is allocated to keeping those apps running. If they all shared the same virtual machine they would:

    1) Start and stop much, much quicker.
    2) Each will take approx 20 megs less in memory (guess).

    Great development. About time.
  15. buy more RAM[ Go to top ]

    doesn't everyone have 1Gb of ram on their workstation :) memory is cheap right.

    </joke>

    peter
  16. buy more RAM[ Go to top ]

    doesn't everyone have 1Gb of ram on their workstation :) memory is cheap right.

    Unfortunately I've now passed the "1GB constantly in use" stage, and will need to have at least 2GB on my next notebook. I typically run 2 IDEs at the same time, both using well over 400MB of virtual memory. Windows chews another couple hundred. Office another hundred. etc.

    And that's before testing, profiling, etc.

    Peace,

    Cameron Purdy
    Tangosol, Inc.
    Coherence: Cluster your POJOs!
  17. doh! 2GB limit[ Go to top ]

    doesn't everyone have 1Gb of ram on their workstation :) memory is cheap right.
    Unfortunately I've now passed the "1GB constantly in use" stage, and will need to have at least 2GB on my next notebook. I typically run 2 IDEs at the same time, both using well over 400MB of virtual memory. Windows chews another couple hundred. Office another hundred. etc.And that's before testing, profiling, etc.Peace,Cameron PurdyTangosol, Inc.Coherence: Cluster your POJOs!

    man, you run any more apps and you'll need 4GB :)

    peter
  18. doh! 2GB limit[ Go to top ]

    Use Linux, custom your own modules so that you run exactly what you need in your OS.
  19. 5GB[ Go to top ]

    before we know it, it will require 5GB to run everything :) hopefully by then, it will also cost 200.00 for 5GB.

    peter
  20. doh! 2GB limit[ Go to top ]

    doesn't everyone have 1Gb of ram on their workstation :) memory is cheap right.
    Unfortunately I've now passed the "1GB constantly in use" stage, and will need to have at least 2GB on my next notebook. I typically run 2 IDEs at the same time, both using well over 400MB of virtual memory. Windows chews another couple hundred. Office another hundred. etc.And that's before testing, profiling, etc.Peace,Cameron PurdyTangosol, Inc.Coherence: Cluster your POJOs!
    man, you run any more apps and you'll need 4GB :) peter
    I feel his pain. I usually have 2 Eclipse instances open (3.0 and 3.1) plus DB2 running locally. + all the rest. Luckily I am not doing .Net during the day anymore. At least not right now. But I only have 1GB.
  21. almost as bad[ Go to top ]

    back when i was doing .NET and Java at the same time, it was normal to have IIS, VS2K3, sql server, eclipse, weblogic and a half dozen other apps open. talk about eating up 1Gb of ram very quickly.

    peter
  22. Windows? Office?[ Go to top ]

    Cameron Purdy,
    I typically run 2 IDEs at the same time, both using well over 400MB of virtual memory. Windows chews another couple hundred. Office another hundred.

    Windows? What have the whole operating system to do with it?

    Office Word takes 29412 K on my computer
    Excel 11428 K

    Peter Lin,
    back when i was doing .NET and Java at the same time, it was normal to have IIS, VS2K3, sql server, eclipse, weblogic and a half dozen other apps open. talk about eating up 1Gb of ram very quickly

    Internet Information Services (inetinfo) 2024 k
    Visual Studio 2003 with project loaded and running (devenv.exe) 34212 K
    Sql Server (sqlserv.exe 5456 K)

    82,5 MB for all MS windows applications both for Cameron and Peter. So please don't include non-Java applications when you are complaining about memory use. A typical Java IDE needs 10 times or more as much memory to run as Visual Studio.

    "This was needed 10 years ago"

    I translate this to: "If they could do at all it they would have done it 10 years ago". So it will never see the light of day.

    .NET on the other hand has had appdomain isolation from day one.

    Regards
    Rolf Tollerud
  23. Windows? Office?[ Go to top ]

    Visual Studio 2003 with project loaded and running (devenv.exe) 34212 K

    Well, Microsoft insist that the minimum memory requirement for Visual Studio 2003 is 96MB and Office is 128MB.

    You have have either managed to dramatically reduce the memory requirements, or - my guess is that you are simply measuring the memory use of whatever bits happen to be memory resident when you are not using all of the apps all together.

    It would be interesting to watch an attempt to make all these apps active at the same time in 82.5 MB.
    I translate this to: "If they could do at all it they would have done it 10 years ago". So it will never see the light of day.

    Much like Windows security then....







     Sql Server (sqlserv.exe 5456 K) 82,5 MB for all MS windows applications both for Cameron and Peter. So please don't include non-Java applications when you are complaining about memory use. A typical Java IDE needs 10 times or more as much memory to run as Visual Studio."This was needed 10 years ago"I translate this to: "If they could do at all it they would have done it 10 years ago". So it will never see the light of day..NET on the other hand has had appdomain isolation from day one.RegardsRolf Tollerud
  24. Steve,

    If I were you I would be lying very low when people talk about security. Please go to
    Todays reported and verified attacks

    Then you will see 16 Linux/FreeBSD defacements before the first Windows attack. Of the first 100, 20 out of 100 is Linux/FreeBSD. Please remember also that attempted windows attacs are something about 100 times more common than attempted Linux/FreeBSD attacs!

    Security today is one of the most compelling reasons to use Windows.

    hi hi (could not contain myself)

    Sorry
    Rolf Tollerud
    (maybe you will have better luck tomorrows reported and verified attacks?)
  25. P.S.[ Go to top ]

    20 out of 100 is Linux/FreeBSD

    I meant 80 out of 100 is Linux/FreeBSD of course.

    Maybe someone can enlighten me what products MS has out there that were built with C#?

    Tero,

    Visual Studio as all MS products is build by some of the best C++ programmers in the world using their own trusted superfast libraries tested over a long period of time. When shall a Java IDE be released in the same way? (aside from VS for J#? :-)
  26. P.S.[ Go to top ]

    Now if only they could make C# as fast as Java.
    http://www.shudo.net/jit/perf/

    The point remains. They don't even use it for their own IDE.
  27. who am I to know?[ Go to top ]

    We have been though this before. (ask Cameron!): Java is as fast as C#, or even faster if you alloc 4-5 times as much memory.

    But with the same amount of memory C# always is faster.

    According to Cameron memory consumption is not important "as the Java VM know hove to house-hold with its resources". That goes contrary to all I my knowledge in practical programming though, "that it is always best to be smaller, faster" but who am I to know? Cameron may be right! The .NET/J2EE benchmarks do not support his theory though.

    Most problems seem Sun to have with its own OS (where there is nobody that helps them..)

    Sun-internal-memo "The Java Problem":
    The JRE is significantly larger than comparable runtime environments when considering resident set size (memory dedicated to this specific program). It has been seen to grow to as much as 900M (on Solaris)


    Seen with the eyes of a typical 7-year old it looks to me that it is the memory management that is the real culprit but as I said, who am I to know?

    Jack,
    "The point remains. They don't even use it for their own IDE"

    Maybe they should use Java?

    Regards
    Rolf Tollerud
    (an innocent 7-year old)
  28. who am I to know?[ Go to top ]

    I can't belive I actually respond to Rolf's endless fact defying nonsense.

    Seeing as you provide no counter-evidenct to the FACTS:
    http://www.shudo.net/jit/perf/
    The FACTS still stand.

    As far as your J2EE benchmarks are concerned they are totally bogus. Even Microsoft's gotdotnet.com website has benchmark results showing J2EE and .NET equivalent in a MS sponsored benchmark.

    From what I remember Microsoft's counter claim to Sun showing web services to be faster in Java than .NET last year was the the "gap" wasn't as big as Sun claimed.

    I think I have done enough arguing with this idiot for one Thread. There is no point arguing with someone who simply sidesteps all evidence and spouts nonsense. Repeat a lie/FUD often enough and people will start to believe it eh Rolf?

    Last time I checked it was about MVM and the Barcelona project!
  29. who am I to know?[ Go to top ]

    The real question should be: have anyone actually measured how much space does rolf_the_troll_script.sh takes from nice technical threads??? :)

    For the same amount of bandwidth, this script is able to generate much more garbage than anything else in this world, thats for sure. Such a remarkable feat of engineering, I'd say. Beats Java or .Net hands down.

    And I could bet it runs in HA cluster 24/7, by seeing how long it has been generating useless posts. Could really make good use of some MVM's features, BTW.
  30. who am I to know?[ Go to top ]

    We have been though this before. (ask Cameron!): Java is as fast as C#, or even faster if you alloc 4-5 times as much memory.

    Hmm .. Java looks to be about 50% faster than C# on the language-neutral SciMark 2.0 ..
    But with the same amount of memory C# always is faster.

    Are you willing to put real money on that? I'd be glad to run my Java tests on a few hundred kilobytes and compare numbers with you running the same tests on .NET in the same footprint ;-)
    According to Cameron memory consumption is not important "as the Java VM know hove to house-hold with its resources".

    When you put something in quotes like that, it should be something that I actually said, not something that you made up.

    You can quote me on this though: If I can get a server app to run 2x faster by giving it more memory, then it's a no-brainer to give it more memory.

    It's unfortunate that .NET doesn't get any faster when it has more memory resources available. However, I still think that .NET is plenty fast and will undoubtably improve over time. Unfortunately for .NET, it has over-zealous supporters like you, but fortunately for .NET, you can only do so much damage.

    Peace,

    Cameron Purdy
    Tangosol, Inc.
    Coherence: Cluster your POJOs!
  31. P.S.[ Go to top ]

    Tero, Visual Studio as all MS products is build by some of the best C++ programmers in the world using their own trusted superfast libraries tested over a long period of time.

    Now that sounds lousy. You are being religious now :-) Booh !
  32. P.S.[ Go to top ]

    I can't retain myself from observing another TSS thread trashed to "windows/c++/c/whateverMS/word/excel an their mother is better than Java" by our friend Rolf who seems to enjoy doing this every time.

    Grow up. This thread IS about MVM. Capisci ? :-D I therefore ask TSS to start a new special thread named Java vs MS.* and whenever Rolf feels frustrated can go there and write in bold that his lousy Office Suite takes up to 85M RAM which would be 66.4% from a 128M RAM stick which in it's entirety costs 40 euros so he's saved exactly 13.44 eouros and he can buy chewing gum and watch the MS empire rising and the Java memory eating sharks and community dying :-))
  33. I had not though to join[ Go to top ]

    I never enter a thread unless I am provoked. What provokes me most is Cameron small "in the passing slights". These are so much more dangerous as said enough times it will be treated as truths. This time he tried to put Java and Windows C++ applications in the same box, "en passant" so to speak.

    If you keep to facts about MS and windows or not talk about it at all you will never see me again..

    So get your own VM fixed and stop mobbing Microsoft that is my advice.

    Regards
    Rolf Tollerud
  34. I had not though to join[ Go to top ]

    I never enter a thread unless I am provoked. What provokes me most is Cameron small "in the passing slights". These are so much more dangerous as said enough times it will be treated as truths. This time he tried to put Java and Windows C++ applications in the same box, "en passant" so to speak.If you keep to facts about MS and windows or not talk about it at all you will never see me again..So get your own VM fixed and stop mobbing Microsoft that is my advice.RegardsRolf Tollerud

    I have changed my mind. I think you are right. Microsoft have suffered enough. They are obviously in real danger if Cameron and others keep posting negative comments. They are enough trouble with delayed software releases, stagnant stock price, shrinking browser market, on-going EU legal action, and continuing software vunerabilities resulting in the hijacking of millions of PCs. A comments on TSS could be disastrous. We should fight to preserve them before its too late.
  35. I had not though to join[ Go to top ]

    I never enter a thread unless I am provoked.
    Ok, who said "Beetle Juice, Beetle Juice, Beetle Juice"? Oh, he said provoked not invoked. Sorry. (Still think I have a point though).
  36. Why not C#?[ Go to top ]

    Tero, Visual Studio as all MS products is build by some of the best C++ programmers in the world using their own trusted superfast libraries tested over a long period of time. When shall a Java IDE be released in the same way? (aside from VS for J#? :-)

    Well, I am still pondering where the super fast C# applications are that use little memory? Is their absence a piece of evidence that C#/VB.NET is not a viable choice? To me it seems a bit odd that MS is not using their own creation.
  37. Steve,If I were you I would be lying very low when people talk about security. Please go to Todays reported and verified attacksThen you will see 16 Linux/FreeBSD defacements before the first Windows attack. Of the first 100, 20 out of 100 is Linux/FreeBSD. Please remember also that attempted windows attacs are something about 100 times more common than attempted Linux/FreeBSD attacs!Security today is one of the most compelling reasons to use Windows.hi hi (could not contain myself)Sorry Rolf Tollerud(maybe you will have better luck tomorrows reported and verified attacks?)

    Rolf, If I were you I would be lying very low when people talk about security. Please go to
    http://news.bbc.co.uk/1/hi/technology/4369891.stm
    Then you will see a recent news report about zombie PCs, from a reputable source (the BBC). It includes the quote: " Others have simply been found by worms that scour the web for machines suffering one of many widely known vulnerabilities in Windows software."

    Security is one of the most compelling reasons to switch away from Windows. (Maybe you will have better luck with next months reported and verified attacks?)
  38. Steve,If I were you I would be lying very low when people talk about security. [..] Security today is one of the most compelling reasons to use Windows.

    Yes, I just had this conversation last night with a co-worker. He's trying to figure out how to get all the spyware off his computer.

    You're an amazingly (purposefully) blind person if you think that Windows is secure. The average Windows server box on the internet (without a FreeBSD firewall protecting it) is compromised in less than one hour.

    Peace,

    Cameron Purdy
    Tangosol, Inc.
    Coherence: Cluster your POJOs!
  39. Perhaps a script kiddie self-reported static web site defacement count isn't exactly representative of the security question as a whole?
  40. Security today is one of the most compelling reasons to use Windows.

    Point of reference:

    "Unpatched Linux still better than Windows"
    An unpatched Linux server was able to sit on the Internet for months before being successfully compromised while one running Windows was turned over in a few hours, according to a security report.

    [..]

    According to data from the Symantec Deepsight Threat Management System Win32 servers in similar situations have a life expectancy of a few hours.

    Peace,

    Cameron Purdy
    Tangosol, Inc.
    Coherence: Cluster your POJOs!
  41. Security today is one of the most compelling reasons to use Windows.
    Point of reference:"Unpatched Linux still better than Windows"
    An unpatched Linux server was able to sit on the Internet for months before being successfully compromised while one running Windows was turned over in a few hours, according to a security report.[..]According to data from the Symantec Deepsight Threat Management System Win32 servers in similar situations have a life expectancy of a few hours.
    Peace,Cameron PurdyTangosol, Inc.Coherence: Cluster your POJOs!

    hehe, I take symantec's reports with a grain of salt. considering norton AV kinda blows. Just last week NAV found a virus on my workstation and I keep this thing patched with new patches when it comes out. Plus it's behind several layers of corporate firewalls. I've had better luck with other AV software.

    sorry for the digression and being office topic.
  42. I've seen Rolf come here for quite some time, but what does he actually do except spread FUD and worship microsoft?

    Just out of curiousity a quick search on rolf:
    http://www.google.com/search?q=%22Rolf+Tollerud%22&btnG=Search&hl=en&lr=&c2coff=1

    The only things I come across are forums and alot of non-.NET forums where he spreads fud. (e.g. on GNU forums saying that linux is utter crap, etc.).

    Rolf, could you explain to me why you are so enlightend?
  43. Personally, based on his apparent lack of working knowledge about the development tool memory requirement discussed here, if I had to guess Rolf's profession, I'd go with public relations instead of technology.
  44. I've seen Rolf come here for quite some time, but what does he actually do except spread FUD and worship microsoft?
    Provides an occasional Literature lesson to us, the unwashed J2EE mass. :p
  45. I did stop posting and leaved you to talk but I can not see any abundance of Barcelona MVM talk.

    That one about Java OS was a good one. An OS where any application can take down everything, like back to windows 95! (But instead of the users blue screen the whole server goes down!)

    And Cameron "He's trying to figure out how to get all the spyware off his computer".
    Ha ha. The icon of the TSS, the former so reverended "pösmunk" has descended, lowered himself to confuse server security with windows XP client.

    The reason that there always will be spyware and virus on the clients is that Windows is installed of 95% of all client computers and anyone can calculate how many idiots or just plain stupid people that amounts too. To try to miscredit Windows on the server by confusing it with the client is the lowest of the lowest - but just what you can expect from Cameron nowadays. It is a sad story really.

    The situation is:

    1) Windows is 4-5 as secure at the serverside than Linux.
    2) IIS is 4-5 times as common as Apache in any serious context.
    3) C# is much faster than Java. C++ is much faster than C#.

    I know that that is hard to accept this truths but reality is here. You can not live on old merits forever..

    I apologize for using a Swedish word but there just wasn't a good English equivalent. I am sure you can guess what it stands for anyway.

    Regards
    Rolf Tollerud
  46. That one about Java OS was a good one. An OS where any application can take down everything, like back to windows 95! (But instead of the users blue screen the whole server goes down!)
    Are you trying to be technical? Try harder.
  47. here's some links[ Go to top ]

    I've already stated the value proposition of a full blown Java OS is unclear to me, but there are Java RTOS on the market. In fact, they've been around for a while.

    http://www.sys-con.com/java/wbg/CurrentSearch_Detail.cfm?ID=1006
    http://www.sdtimes.com/news/040/emb3.htm

    As far back as 1999/2K, HP and Sun both had java RTOS. I can't say whether they work well or not, but they do exist.

    peter
  48. 1) UNIX is 4-5 as secure at the serverside than Windows.
    2) Apache is 4-5 times as common as IIs in any serious context.
    3) C# is much faster than Java. C++ is much faster than C#.

    With such technical "arguments" as above I'd swear I was reading /. I've correct #1 and #2 for you. :)

    I'd be interested in a technical reason why you believe #3, C# is faster than Java. What exactly has Microsoft done to their VM to gain this speed advantage? Feel free to be as *technical* as you can.

    Also, any idea when Microsoft Corp. will actual start using C#/.Net to actually develop their own applications? Obviously with the speed of C# and the obvious advantages of managed code in .Net it should be a no brainer. So where are the apps?
  49. Bryan,

    "Also, any idea when Microsoft Corp. will actual start using C#/.Net to actually develop their own applications?

    Not anytime soon don't hold your breath C++ is still the King!

    Or you could read: C++ is for products, C# (and Java) is for contract programming.

    Henrique,

    "Are you trying to be technical? Try harder"

    Why don't you go to http://www.theserverside.com/tss?service=direct/0/PostNewsReply/postReply&sp=l32834&sp=F&sp=l163135#163256 and follow the link at that page?

    BTW, I never seen you at Experts-Exchange. How come?

    Regards
    Rolf Tollerud
  50. BTW, I never seen you at Experts-Exchange. How come? RegardsRolf Tollerud

    real experts have better thing to do than go to experts exchange. it should be called "wannabe experts but don't know much exchange" :)

    </joke>
  51. because real experts don't have time[ Go to top ]

    BTW, I never seen you at Experts-Exchange. How come? RegardsRolf Tollerud
    real experts have better thing to do than go to experts exchange. it should be called "wannabe experts but don't know much exchange" :)</joke>
    My dad always said that an expert is a drip under pressure.
  52. My crystal ball still works fine. Want to borrow it?

    You know very well that I have been working on "Rich XMLHttp Clients against stateless Webservices" for quite a time:

    "By saying that the application "scale ad infinitum" I mean that when all state is maintained by the client and there are no container based server-sessions whatsoever, another box to the cluster or "server farm" is only a phone call away.
    http://www.theserverside.com/news/thread.tss?thread_id=28847#140064

    The same thread that you were making fun of me because "not doing distributed transactions".
    The same thread you confessed that you know nothing about "Rich Clients stuff".

    Well - seems that there are a good possibility that you have to go back to the school again!

    New Web Framework: Echo2, with Ajax-based Rendering

    As I said. Welcome to the club. Heard about CSS with clean XHTML 1.0 Strict? A so called "TSS Well-meaning Impractical J2EE Theoretican" wouldn't last a day compared to the top expert at Experts-Exchange.

    Can you learn old dogs to sit?

    I wonder
    Rolf Tollerud
  53. witchery and crystal balls[ Go to top ]

    Is there a warning label on that cauldron? Something like "do not stand too close to the cauldron while brewing potions. Side effects may include rosy glasses, distortion of reality, frothing at the mouth, uncontrollable twitching, sudden manic out breaks, hearing voices, idolizing satanic beings, overwhelming rage, overwhelming anger, sudden loss of muscle control, which may lead to spontaneous uniration and defecation. International witchery corporation is not responsible for any and all side effects due to improper use of IWC products."

    </bad_joke>
  54. Can you learn old dogs to sit?
    I wonder
    Rolf Tollerud

    Can you teach old dogs to sit.

    (The irony was inescapable.)

    Peace,

    Cameron Purdy
    Tangosol, Inc.
    Coherence: Cluster your POJOs!
  55. C++ the King[ Go to top ]

    Bryan,"Also, any idea when Microsoft Corp. will actual start using C#/.Net to actually develop their own applications?Not anytime soon don't hold your breath C++ is still the King!Or you could read: C++ is for products, C# (and Java) is for contract programming. Regards Rolf Tollerud

    C++ might be king at Microsoft but in the financial services area it's Java/J2EE on the server with C#/WinForms replacing VC++/MFC on the client. J2EE/.Net talk via WebServices or even HTTP.

    C++'s problem is that is only a language not a platform. Where are the C++ application servers? Where are the new C++ client libraries? MFC sucked 10 years ago. It's not even object oriented relying on C linkage so "C" developers could use MFC.
  56. Bryan,"Also, any idea when Microsoft Corp. will actual start using C#/.Net to actually develop their own applications?Not anytime soon don't hold your breath

    Wrong.
    http://blogs.msdn.com/danielfe/archive/2004/11/02/251254.aspx
    "Microsoft products using the .NET Framework"
  57. The situation is:1) Windows is 4-5 as secure at the serverside than Linux.2) IIS is 4-5 times as common as Apache in any serious context.3) C# is much faster than Java. C++ is much faster than C#.I know that that is hard to accept this truths but reality is here.

    1) Is nonsense. Well-patched Linux and Windows are both reasonably secure. There is no way Windows can be '4-5' times as secure. Even though both are reasonably secure, Linux wins. In October last year of the top 40 bugs for Windows 2003, 38% were marked critical by Microsoft. Using the same metrics, of the top 40 bugs for RedHat, only 10% were critical. How many bugs were there? Around that time the CERT advisory returned 250 entries for Microsoft with an average severity metric of around 55 for the top 40, and for all Linux versions the were 100 entries with an average metric of around 29 for the top 40. Of course, these searches aren't confined to server use, but show that to give a figure of Windows 2003 being 4-5 times more secure than server Linux is fine, unless you are stating that the figure is based on any kind of facts or reality.

    2) Is nonsense. Acording to Netcraft, in 2004 68% of all websites run Apache, and only 21% run IIS. If you look at non-USA use, the figure for Apache use can go over 80%. I don't know how you define 'serious', but I guess a serious website would have to be able to stay running. According to Netcraft, 47 of the top 50 websites run Apache. IIS is not in the top 50. Even Microsoft can't keep their servers running:
    "As of September 2004, the average uptime of the Windows web servers that run Microsoft's own web site (www.microsoft.com) is roughly 59 days. The maximum uptime for Windows Server 2003 at the same site is 111 days, and the minimum is 5 days. Compare this to www.linux.com (a sample site that runs on Linux), which has had both an average and maximum uptime of 348 days." Actually, the most stable sites don't run on Linux or Windows! Bsd wins out, with uptimes of years!

    3) Is nonsense. C++, Java and C# are all high performance languages:

    http://www.shudo.net/jit/perf/

    Is an interesting site - thanks to Cameron for posting the URL.

    The Linpack benchmark shows Visual C++ providing 400 MFLOPS, Sun Java 1.5 at 380 MFLOPS and C# on .NET at 382 MFLOPS - pretty good performance from both Java and C#.

    I'd like to thank you Rolf. I find looking up the truth behind your claims is a good way to keep up-to-date with the real statistics and figures. This has been a lot of help in promoting both Linux and Java.

    Quotes are references taken from:
    http://www.theregister.co.uk/security/security_report_windows_vs_linux
  58. Back on topic[ Go to top ]

    Those results are interesting, but it makes me wonder how MVM will compare performance wise. Right now users start multiple VM's and it's up to the OS to schedule/multi-task those processes. Given Java already uses strong monitoring, I was thinking there wouldn't be much difference between JVM vs MVM in terms of threads management. I'm hoping someone with expertise can point out some potential differences in synchronization and thread management as a result of moving to MVM at the VM level.

    from an application level, I would think it wouldn't make any difference. Also, how would one go about testing MVM vs JVM from a performance perspective. I would think measuring just memory usage wouldn't be enough.

    peter
  59. 1) "Of course, these searches aren't confined to server use"

    There you have the fault in your reasoning. What is your explanation to that the verified attacks at http://www.zone-h.org/en/defacements/page=1/ are 4-5 times as common for Linux than WIndows?

    February 17, 2005: Study finds Windows more secure than Linux
    http://seattletimes.nwsource.com/html/businesstechnology/2002182315_security17.html

    2) " I don't know how you define 'serious'"

    I certainly do not think that a site that shares one installment of Apache with 1000 others is serious. By serious I mean companies that have their own dedicated server. Among those, IIS is 4-5 times as common. How many times shall the idiotic Netcraft stats confuse the simple minded?

    Uptime is nor difficult when you only publish static webpages. For example one of those websites that is referred to is http://wwwdir1.telia.com/ which has been displaying "This page is not in use" for years.

    3)"C++, Java and C# are all high performance languages"

    The benchmarks at http://www.shudo.net/jit/perf/ do not publish how much memory that was allocated through the tests. Why don't you run your own tests? And when you’re at it open a C++ application, a Java application and a C# and play around with them.

    Also you can use reason: if the numbers you provide have any real meaning the landscape would be full of C# and Java applications!

    "Nothing hath an uglier look to us than reason, when it is not of our side". Georges Savile

    Regards
    Rolf Tollerud
  60. What is your explanation to that the verified attacks at http://www.zone-h.org/en/defacements/page=1/ are 4-5 times as common for Linux than WIndows?

    Linux hosts more external pages. I don't measure all server security by page defacements. Do you?
    February 17, 2005: Study finds Windows more secure than Linux
    href="http://seattletimes.nwsource.com/html/businesstechnology/2002182315_security17.html

    Ah! That one. That report showed that non-skilled admins would have trouble securing both Windows and Linux.

    That same page also shows: "The setups were hypothetical, however. Both were in the most basic configuration, an approach that some in the audience suggested may tilt the results in favor of Windows".

    You do realise that to get a true picture you can't just select individual articles? You need to do serious research and gather information from various sources to form a judgement.
    I certainly do not think that a site that shares one installment of Apache with 1000 others is serious.

    Oh I would. It shows how powerful Apache is. You mean that IIS can't do this?
    By serious I mean companies that have their own dedicated server. Among those, IIS is 4-5 times as common.

    Figures please.
    How many times shall the idiotic Netcraft stats confuse the simple minded?
    You have made use of Netcraft statistics, for example, in Javalobby posts.
    Uptime is nor difficult when you only publish static webpages.

    True. However many static pages are also hosted on Windows systems. Why can't those stay up?
    "C++, Java and C# are all high performance languages"The benchmarks at http://www.shudo.net/jit/perf/ do not publish how much memory that was allocated through the tests.

    You did not mention memory. You said Java was slower than C++. Are you saying that Java can be as fast as C++ given enough memory?
    Why don't you run your own tests? And when you’re at it open a C++ application, a Java application and a C# and play around with them.

    I have of course run my own tests. I code numerical work, and I found that a modern Java VM and C++ give comparable speeds for many numerical algorithms. Try something like Newton-Raphson iteration finder in both languages.

    Are you seriously suggesting that C# is a slow language? That .NET can't perform?
    Also you can use reason: if the numbers you provide have any real meaning the landscape would be full of C# and Java applications!

    The landscape IS full of Java applications - it is the de facto language for server-side development - you have published job figures to back this up.
    "Nothing hath an uglier look to us than reason, when it is not of our side". Georges SavileRegardsRolf Tollerud

    "I should be so lucky". Kylie Minogue.
  61. todays reported and verified attacks[ Go to top ]

    Rolf Tollerud:
    Security today is one of the most compelling reasons to use Windows.

    LOL!!
  62. Steve,If I were you I would be lying very low when people talk about security. [..] Security today is one of the most compelling reasons to use Windows.

    I sure hope you weren't citing this study.
    Two researchers, from the Florida Institute of Technology and Boston-based Security Innovation Inc., 'surprised the audience at a computer-security convention last month with their finding that a version of Microsoft Windows was more secure than a competing Linux operating system' according to the Seattle Post-Intelligencer. 'This week, the researchers released their finished report, and it included another surprise: Microsoft was funding the project all along.'

    Peace,

    Cameron Purdy
    Tangosol, Inc.
    Coherence: Cluster your POJOs!
  63. No speaking of desktop Windows today? Comparing aunt Elsa antivirus protection with Windows Server 3003 Advanced Edition? Have you lost your touch?
  64. No speaking of desktop Windows today? Comparing aunt Elsa antivirus protection with Windows Server 3003 Advanced Edition? Have you lost your touch?

    Desktop Windows and Windows Server are the same architecture, the same design, and the same source code. One cannot talk about architectural flaws in one without impuning the other.

    Hypotheses non fingo.

    Peace,

    Cameron Purdy
    Tangosol, Inc.
    Coherence: Cluster your POJOs!
  65. architectural flaws?[ Go to top ]

    Cameron, Linux is based on architectural flaws from bottom up. Have you not read the funny thread where professor Tanenbaum rip Linus Torvalds to pieces? href="Linux" rel="nofollow">http://people.fluidsignal.com/~luferbu/misc/Linus_vs_Tanenbaum.html">Linux is obsolete</a>

    The point is that with all this millions and millions of idiots sitting with a desktop Windows knowing nothing about update, antivirus and antispyware protection, constantly downloading all kind of files and clicking on all links that ever is shown in any email program it doesn't matter what operating system they have.

    To bring the desktop into a discussion of Server security is a perfect example of the intellectual dishonesty I was talking of earlier, you know, that Diderot quotation?

    "I can stand thieves, robbers and murderer- it is all part of the world’s multitude, I have more problems with intellectual hypocrisy."

    I have to agree with him.

    Best regards
    Rolf Tollerud
    (its kind of funny when you have to defend Linux that I know you really hate down inside preferring Solaris and the like :)
  66. do you even understand microkernel?[ Go to top ]

    Cameron, Linux is based on architectural flaws from bottom up. Have you not read the funny thread where professor Tanenbaum rip Linus Torvalds to pieces? href="Linux" rel="nofollow">http://people.fluidsignal.com/~luferbu/misc/Linus_vs_Tanenbaum.html">Linux is obsolete</a>

    I didn't bother looking at that link, but I suspect it is the old debate over Monolithic vs Micro kernel. If you knew anything about OS kernels, it would be clear the design choice is a preference. Whether one uses Monolithic vs Micro kernel design does not restrict the flexibility or agility of an OS. It all depends on who is writing the kernel. Since Linus has been at it for a long time and knows the code base well, it wouldn't make any difference. Now from an outside perspective, it does increase the learning curve a bit more with monolithic design.

    With good documentation, I see no reason why a monolithic design can't be as easy as micro kernel for new developers to understand. I'm definitely not a kernel expert and couldn't write device drivers to save my life, but I have explored the top in my free time over the last decade. Kernal hacking is hard enough that it requires a specific kind of developer.

    For an experienced kernel developer, I would think the differences between Monolithic and micro kernel are minimal. feel free to prove me wrong.

    peter
  67. do I understand OS kernels?[ Go to top ]

    Sorry I don't!

    But at least I know more that Linus did when he began to build his systemby putting together pieces of a 30 year old OS. ;)
  68. architectural flaws?[ Go to top ]

    Cameron, Linux is based on architectural flaws from bottom up.

    We were talking about Windows. After you admit that Windows is architecturally flawed (or lacking) and has huge problems with security, I'll be happy to give you my honest opinion on Linux, for what it's worth (which is just a little less than you paid for it).
    The point is that with all this millions and millions of idiots sitting with a desktop Windows knowing nothing about update, antivirus and antispyware protection, constantly downloading all kind of files and clicking on all links that ever is shown in any email program it doesn't matter what operating system they have.

    Blame the user .. nice touch. So your explanation is this: Windows has security problems because Windows users are morons. That's not very nice.

    p.s. There is no security on this earth, there is only opportunity. - MacArthur

    Peace,

    Cameron Purdy
    Tangosol, Inc.
    Coherence: Cluster your POJOs!
  69. "After you admit that Windows is architecturally flawed (or lacking) and has huge problems with security"

    No. it is Linux that has huge problems with security. In the 3 years I have had Windows XP at the desktop I have not had virus or problems of any kind and all I have done is to set windows update on automatic and always check downloaded files. More you can not ask for.

    If Linux had as many installations as Windows at the desktop however, then you would get some idea of what Sodoma and Gommara was like.

    And at the server - I repeat: Windows is far more secure than a 30 year old OS build by a student. Please browse any security site.

    Regards
    Rolf Tollerud
  70. Windows is far more secure than a 30 year old OS build by a student. Please browse any security site.RegardsRolf Tollerud

    Been there. Done that. Browsed the sites. Presented the evidence. You ignore it. You present the same statements again and again.

    I have done it again. I have browsed a security site. You did say 'any', didn't you? I looked at

    http://www.us-cert.gov/cas/techalerts/index.html

    For 2005, shows 4 alerts. 3 for Windows.

    For 2004, shows 27 alerts. 15 for Windows, and 4 which could affect Linux (mostly DoS).

    You said I could browse any security site, and that would show that Windows was more secure. I did as you suggested, and it showed the reverse. Please retract your statement.
  71. But Steve,

    This site does not report a single Linux alert!

    The last time I checked Linux had 35 new breaches per day or something...
    Maybe they don't care because they think nobody is using it?

    For example, what have W32/MyDoom mass-mailing virus to do with Server Security?

    Regards
    Rolf Tollerud
  72. But Steve,This site does not report a single Linux alert!The last time I checked Linux had 35 new breaches per day or something...Maybe they don't care because they think nobody is using it?For example, what have W32/MyDoom mass-mailing virus to do with Server Security?RegardsRolf Tollerud

    The site did have linux-related alerts. The OpenSSL Dos attack would be relevant to Linux.

    You said, and I quote: "Windows is far more secure than a 30 year old OS build by a student. Please browse any security site." Please note the use of the word 'any'.

    I did exactly what you said. I picked the US government CERT site.

    I assume the US government has a method of categorising security matters which are serious, as against those which are trivial. They do show Linux issues: use the search facility on the site.

    The question arises - who should I trust more to list serious security issues - the US government, or you?
  73. I can understand the temptation is great to include all old ladies and teenagers that ever clicked on a .exe link in a mail but no, that doesn’t happen at the server. Something should be understood, you must assume that your opponent have at least normal intellect.

    "Only sites that deal with Serverside Security Exclusivly counts".

    I apologize for clarifying but it is not I that dragged the discussion down to "Cameron level" so to speak. What have the desktop to do with the OS we choose for our applications at the server?

    By arguing on such a level you are doing yourself a disservice, your reputation is the only real value you have so be careful with it so it does not happen to you what happened to Cameron.

    "Everyone" use Windows at the desktop so that is not an issue. Now it is the server that counts. The fight is on the server-side. May the best win!

    Regards
    Rolf Tollerud
  74. I can understand the temptation is great to include all old ladies and teenagers that ever clicked on a .exe link in a mail but no, that doesn’t happen at the server. Something should be understood, you must assume that your opponent have at least normal intellect. "Only sites that deal with Serverside Security Exclusivly counts".

    You said, and I quote, word for word, with no omissions:

    "Windows is far more secure than a 30 year old OS build by a student. Please browse any security site."

    I did exactly what you said. I chose an independent US government site that is not likely to be influenced either way. The statistics available are interesting and available for anyone to see.

    The reason that the E-mail viruses are labelled as significant security concerns is because of the way they can use SMTP, which is a server process. The US government labels viruses like this as 'high impact' issues.
  75. By arguing on such a level you are doing yourself a disservice, your reputation is the only real value you have so be careful with it so it

    I didn't know I had a reputation, so this doesn't bother me :)
    Now it is the server that counts. The fight is on the server-side.

    Security is highly important on the desktop as well, especially if people redirecting company web services to their desktop, as in the "Accepted Answer from rolftollerud":
    "http://oldlook.experts-exchange.com:8080/Web/Q_20686584.html
  76. have bothered to read linux code?[ Go to top ]

    "After you admit that Windows is architecturally flawed (or lacking) and has huge problems with security"No. it is Linux that has huge problems with security. In the 3 years I have had Windows XP at the desktop I have not had virus or problems of any kind and all I have done is to set windows update on automatic and always check downloaded files. More you can not ask for.If Linux had as many installations as Windows at the desktop however, then you would get some idea of what Sodoma and Gommara was like.And at the server - I repeat: Windows is far more secure than a 30 year old OS build by a student. Please browse any security site.
    RegardsRolf Tollerud

    Although I totally suck at C/C++, I've taken time to read some linux code. Not that I really understand it and the learning curve is very steep. Since you claim to have no expertise in Linux or kernels, I would say your qualifications for claiming either windows or linux is flawed has zero credibility. Perhaps one day i'll know enough C/C++ to know how/why/what is flawed in linux, but until then it would be retarded and silly for me to claim linux is/isn't flawed.

    Frankly, I would say Linus knew more about kernels in the early 90's than you will 10 years from now. Obviously, linus knew enough to write a kernel, whereas you don't.

    enjoy

    peter
  77. how to learn the truth of Linux[ Go to top ]

    Peter,

    I do not think it is a good use of time to read Linux code. "Life is short and art is long".

    I have a better way to get the information I want, something I learned from the composer Hugo Alfvén.

    Hi told in his self-biography how he used to invite a pair of friends from the orchestra for lunch - always some who played different instrument. During the meal he encouraged his guests to argue with each other about the merits of their particular instrument, discussions that often grew quite heated. In this way he said, "I learned most that I know of instrumentation".

    So, without shame I copy him to learn about Linux. And the best way to do it IMO! is to seek the company of BSD fanatics.

    Regards
    Rolf Tollerud
  78. P.S.[ Go to top ]

    hi hi
  79. good excuse[ Go to top ]

    You're always good for a laugh. Talk about doing the complete opposite of the scientific method. Oh wait, you don't think scientists or science are worth anything.

    peter
  80. to read all that is ever written[ Go to top ]

    Peter!

    Sometimes I am worried for you. Do you know that if you read night and day your whole life without sleeping and eating that will just enought time to finish the 30000 volumes of old Assyran cuneiform texts in British museum?

    Do you know the meaning of the words superficial and profound?

    Profound
    1 : having intellectual depth and insight
    2 : extending far below the surface b, reaching to a depth

    Superficial
    1 : concerned only with the obvious or apparent : SHALLOW
    2 : lying on the surface presenting only an appearance without substance or significance.

    Regards
    Rolf Tollerud
  81. Windows is far more secure than a 30 year old OS build by a student. Please browse any security site.RegardsRolf Tollerud
    You forgot to include some FUD claiming Windows better than Solaris 10 ;)
  82. I repeat: Windows is far more secure than a 30 year old OS build by a student. RegardsRolf Tollerud
    Isn't Windows based on a 24 year old operating system purchased by a college drop-out which couldn't match the features of UNIX?
    http://en.wikipedia.org/wiki/Seattle_Computer_Products
  83. Wrong numbers ![ Go to top ]

    To know the exact amount of memory used you have to see the difference in the total amount of memory use on the system before and after the application launch.

    As a consequence if is much more than the Windows task manager process details.

    To make a good demo of this "hidden memory usage", make a quicke sum-up of all the process memory usage and compare that with the total memory usage, the numbers are extremely different ;-)

    The reason is (AFAIR) that shared DLL are not counted in the memory space of the process as they are potentialy used by several process.

    So, retest the memory requirements again, and you will understand why 1GB on Windows for a developper environement is a minimum requirement nowadays.

    This is facts.
  84. Windows? Office?[ Go to top ]

    SQL Server only requires 5456k when you are using it to fill in CPU time. If you are running a database of any size and running against it then the DB will be cached in memory and it can easily run 300+ MB. Plus VS.NET with a sizable project can easily run to 200+ MB.

    What kind of .NET development are you doing?

    Rob
  85. like you never complain 8-)[ Go to top ]

    Internet Information Services (inetinfo) 2024 k
    Visual Studio 2003 with project loaded and running (devenv.exe) 34212K
    Sql Server (sqlserv.exe 5456 K) 82,5 MB for all MS windows applications both for Cameron and Peter.

    I don't know about you, but when I'm writing webservices, that includes other processes, not just inetinfo. Here is a break down of the memory usage for my laptop for what it's worth.

    OS w/o applications and most services turned off 166Mb
    word 2K3 with a short 6 page doc 10.4Mb
    IE open to gmail 23.1Mb
    mozilla 2 tabs 37Mb
    UltraEdit no files open 4.9Mb
    eclipse 3.0 javax 2 medium size projects 79.5 Mb
    eclipse.exe 1.5Mb
    Inetinfo with no activity 5.4Mb
    weblogic by itself 50.8Mb
    VS.NET2K3 devenv.exe w/dingo project 15.6Mb
    windows explore.exe 35Mb

    One of the biggest memory hogs is the debugger in .NET. Several developers had 384Mb of RAM and it was totally unusable. I had to beg the project manager to get the developers up to 512Mb so they could actually do work. the debugger in Eclipse is just as bad, but that's the nature of debugging.
    So please don't include non-Java applications when you are complaining about memory use. A typical Java IDE needs 10 times or more as much memory to run as Visual Studio.

    I can complain all I want. I paid for XP, VS.NET2K3 and Office. I paid for the right to complain.

    I don't have sql server installed anymore on my laptop, so I can't say how much RAM it takes with a smallish test database with 1 million rows of test data. Deploy a few apps in weblogic and it will easy eat up 100Mb.

    enjoy.
  86. buy more RAM[ Go to top ]

    2 IDEs? What? One for each hand. That's talent Cameron.
  87. Awesome - Microsoft Containers?[ Go to top ]

    This has been badly needed for some time. I will go so far as to say that Sun should hold up the next major release of Java until this is implemented into it. I need this today infact. Currently I am running Tomcat, Eclipse, and database tool, and a java editor on my desktop. Due to development I am working on, I need all 4 running. With 512M of memory, most is allocated to keeping those apps running. If they all shared the same virtual machine they would:1) Start and stop much, much quicker.2) Each will take approx 20 megs less in memory (guess).Great development. About time.

    I was wondering if Sun would *ever address the MVM problem. The idea of every Java application needing to startup it's own JVM just seems primitive in 2005. We've come a long way when it comes to JIT's, compare JDK 1.2 to Hot Spot JDK 1.3 but other than some static shared memory sharing in the latest JDK's, thanks to Apple's research, not much has been done with MVM.

    Doesn't .Net handle the muliple application problem using Containers? Why hasn't Sun followed this path?
  88. AppDomain?[ Go to top ]

    This has been badly needed for some time. I will go so far as to say that Sun should hold up the next major release of Java until this is implemented into it. I need this today infact. Currently I am running Tomcat, Eclipse, and database tool, and a java editor on my desktop. Due to development I am working on, I need all 4 running. With 512M of memory, most is allocated to keeping those apps running. If they all shared the same virtual machine they would:1) Start and stop much, much quicker.2) Each will take approx 20 megs less in memory (guess).Great development. About time.
    I was wondering if Sun would *ever address the MVM problem. The idea of every Java application needing to startup it's own JVM just seems primitive in 2005. We've come a long way when it comes to JIT's, compare JDK 1.2 to Hot Spot JDK 1.3 but other than some static shared memory sharing in the latest JDK's, thanks to Apple's research, not much has been done with MVM.Doesn't .Net handle the muliple application problem using Containers? Why hasn't Sun followed this path?

    Are you referring to AppDomains? AppDomain provide application separation in .NET, though it adds the cost of serialization between appDomains.

    peter
  89. AppDomain?[ Go to top ]

    I was wondering if Sun would *ever address the MVM problem. The idea of every Java application needing to startup it's own JVM just seems primitive in 2005. We've come a long way when it comes to JIT's, compare JDK 1.2 to Hot Spot JDK 1.3 but other than some static shared memory sharing in the latest JDK's, thanks to Apple's research, not much has been done with MVM.Doesn't .Net handle the muliple application problem using Containers? Why hasn't Sun followed this path?
    Are you referring to AppDomains? AppDomain provide application separation in .NET, though it adds the cost of serialization between appDomains.peter

    Yes, sorry I meant AppDomain not Containers. Thanks for the correct Peter.
  90. Java 1.5 already shares[ Go to top ]

    "Scalability and Performance
    There are a number of areas where Sun has been tweaking Java to improve performance, emphasizing startup time and memory footprint. It has also introduced the concept of class data sharing in the JVM, where read-only data may be shared between multiple running JVMs, which is great for programs that use multiple JVMs, but it also means that many core JVM classes are pre-loaded by the first instance of the JVM." -- see more in http://www.devx.com/Java/Article/21810/0/page/3

    More direct from sun -- http://java.sun.com/j2se/1.5.0/docs/guide/vm/class-data-sharing.html
  91. Java 1.5 already shares[ Go to top ]

    No. The truth of class-data-sharing it not doing what you thinking.

    1. It is only supported HotSpot/Client on MS Windows.
    2. It is precompiled and cached J2SE classes only.
    Only the core classes are pre-loaded, (i.e. java.* packages)

    It does not share any other class/jar in you classpath.
    even non-core JRE/J2SE classes (e.g. charset.jar)
  92. Awesome[ Go to top ]

    MVM should also speed up the code-compile-run cycle. Very nice for productivity.
  93. I hope they will add some means to stop an isolate. As it is now, the only way to stop a rogue Java application is to kill the process.

    I also hope that MVM implementations won't bring the classloader fun (quick - how many causes for a NoClassDefFoundError can you think of) from app servers to desktop applications. All 5 of them ;).
  94. This should be good news for web hosting providers.

    There has been lot of demand for java based hosting and there are very few hosting providers in that space who could provide it for cheap and at the same time offer scalable solutions.

    Sounds similar to Virtuozzo software though.

    Cheers,
    Murali Kosaraju
  95. PHP killer[ Go to top ]

    This should be good news for web hosting providers. There has been lot of demand for java based hosting and there are very few hosting providers in that space who could provide it for cheap and at the same time offer scalable solutions.

    I think if implemented correctly and distributed freely, it's definitely going to kill PHP... or at least to chop off decent market share from it.
  96. There is a slightly older open source project called Jsh, basically a Java command line shell. It was interesting because it allowed you to launch multiple apps within the same VM.

    The trick was that the author used a modified System class loaded in the bootclasspath. Clever...
    http://gerard.collin3.free.fr

    As far as this MVM goes, this is a great idea - I also have the problem of Tomcat, Eclipse, et al running and consuming a huge amount of RAM. The only problem I foresee is if you have to kill one of the apps if it freezes or something like that, since there's only one java process you'll have to take down all the apps running inside that VM.
  97. This was needed 10 years ago...[ Go to top ]

    ...and someone could write a beta version of this in the matter of a few days.

    In fact. an application like Tomcat, already allows for multiple applications to run under the same JVM. And each application has it's own set of repositories (lib and classes directories). There is no reason that the "web.xml" in the "WEB-INF" directory can't be used to setup a regular application. I picture this "web.xml" file evolving to look more like the "beans.xml" file used to setup a Spring environment.

    Just use a Tomcat-like (sevlet container) approach to do this. But instead of only web apps, you can run any type of app. Picture having a tray icon that you can click on that lists all your running java apps. Almost like the windows "Start" menu, but operating system independent. You could just plop another "war" file somewhere and have the app "installed" on your system. With some common "Task" interface, any Java app could be wrapped to fit nicely in such an environment.

    What frustrates me is this will take Sun years to develop, and it will be over complicated when they finally finish.
  98. +1

    Couldn't agree more.
  99. This was needed 10 years ago...[ Go to top ]

    Just use a Tomcat-like (sevlet container) approach to do this. But instead of only web apps, you can run any type of app. Picture having a tray icon that you can click on that lists all your running java apps. Almost like the windows "Start" menu, but operating system independent. .

    That would work if the application and some APIs stop using System.getProperty(). I have no idea why JAAS requires one to specify the login module configuration using the system property. (I thought I must miss something from the spec, but JetSpeed2 uses the same mechnism to set up JAAS.)

    Things get more complicated if the app also uses native library via JNI (like Eclipse and many J2EE servers).

    That's why something need to be changed at the JVM level.

    But instead of reinventing another UI shell that don't integrate with your OS desktop, there should be a javaserver running in the background. The java executable should attach to this server JVM or start an internal JVM, depending on command line option or some META-INF config. That way, you can have some frequent-crashing application running in standalone JVM while others sharing one JVM server. Existing java application and applet then need no change.

    +1 for MVM
  100. For an ISP it is very common to use J2EE app clusters to gain high availability. In this situation it is also common to share the cluster among applications.

    The problemm arises when one of the applications in the cluster/instance wastes the memory (producing an OutOfMemory) and so the rest of the applications in the cluster begin to fail.

    Is it so difficult to implement memory assigment for applications? Nowadays nearly every app servers allow thread pool assigment. I think there are necessary improvements to do with JVM to have a really enterprise architecture before playing around other things like MVM. Does anybody agree with me?

    Oscar
  101. The problemm arises when one of the applications in the cluster/instance wastes the memory (producing an OutOfMemory) and so the rest of the applications in the cluster begin to fail. Is it so difficult to implement memory assigment for applications?

    I've been thinking about it too:

    http://www.jroller.com/page/cpurdy/20050308#on_multi_threaded_gc

    Peace,

    Cameron Purdy
    Tangosol, Inc.
    Coherence: Cluster your POJOs!
  102. I agree with you and I think it is something more conceptual than technical. At the end an application needs resources: memory, cpu, resources (db, jms, ...).

    Taking into account this approach the requirement might be:
    - memory: possibility to reserve a memory pool per application (classloader size limitation). Not implemented nowadays
    - cpu: possibility to reserve a cpu (threads pools). Nowadays implemented in some application servers.

    Oscar
  103. Think of Server with MVM as operating system can execute only java applications.
  104. About Time[ Go to top ]

    All I've _EVER_ wanted from my Java server (Tomcat, Resin, WebLogic, whatever) is for it to run 24/7 just like apache. Due to the way .ear files, or .war files can leak memory on redeploys (due to numerous classloading issues) a redeploy means a shutdown, startup. That is completely unacceptable. So now we're forced to run multiple app servers, one for each app. Now our memory requirements are high.

    I can't wait for this MVM to come out. If it delivers on the promise of isolated VMs in one process, I will jump for joy. Please allow me to run a .war file completely isolated. Maybe then you can put the Enterprise back into J2EE.
  105. IBM PRJVM?[ Go to top ]

    How far is this comparable to the IBM Persistent Reusable JVM on z/OS?
  106. IBM PRJVM?[ Go to top ]

    I wouldn't have thought it comparable at all. The IBM Reusable JVM is for short lived stateless transactions that run in a CICS environment. The JVM remains resident, but is reset between each transaction, so still only runs one thing at a time. Keeping the VM in memory and clearing it down is faster than starting a new JVM for each transaction.
    The Sun MVM would also run continuously, but would be able to handle multiple long running applications concurrently whilst keeping them apart from one another.
  107. We have a number of users, all on citrix. For us, this would be massively reduce the load on those servers...
  108. Well at least this advantage of dotnet vs J2EE cannot be denied by java zealots. :))
  109. is this like AppDomain in .NET[ Go to top ]

    is this like AppDomain in .NET?
  110. Memory comparisons between native apps and Java are a bit strange - as if they were entirely the same thing.

    Surely it is interesting to dwell on the memory consumption of Java apps, but on the other hand native apps do not run garbage collection or allocate large chunks of memory for 'future use' or other things that VMs seem to do. I am sure the memory footprint can and should be made smaller but there are just certain realities involved with garbage collection and VMs.

    Question: is VS .NET implemented with C#? It would good to see Microsoft build VS .NET with C# and eat their own cookings. Maybe someone can enlighten me what products MS has out there that were built with C#? I don't mean little nifty accessories - I mean really extensive pieces of software that they are selling as products? Then tell me, how is the memory looking - not much better than Java I bet.
  111. sounds good, at the moment the jvm is like a windows machine, when you change something it *might* work, but you usually have to reboot or kill in the process in this case. It would be great to /etc/init.d/[mywebap] restart and have it come back up cleanly, without leaking memory and without have to kill healthy applications.

    while they're at it, why not #!/usr/bin/janino for cgi ;)
  112. Great[ Go to top ]

    This is great. Because this way the java platform becomes a platform. It is broad and ready to go without waiting for something. It could have a taskmanager showing individual names for java processes instead of the current "java ..." that is not easy for beginners.
  113. Java is the old dog[ Go to top ]

    Can you teach old dogs to sit.

    Java is the old dog. It startet in 1991 as a language for writing Applets. Now as Java has grown older more and more features were added and it got bloated over time.

    Now we have 2005 and I still cannot use it for hosting? It still can bring down my Linux server easily? The untalented engineers of Sun have tried to kill Java from day one (standardization, etc.). If you can make something complicated they did it. JSP: Had to take care about Class Loader issues, complicated configuration files, etc. NIO: I have to write my own Thread Pool (look at the new Concurrency Utilies in 1.5 if you want to see something complicated again). Versioning of Class Libraries: Non existant. And so on...

    I am just wondering - if the people of Mono can work out their bugs - if I will see more hosting providers for .Net+Apache+Linux then I will ever see for Java. I am really hoping that there is coming something better than Java - for the sake of all developers around the world.
  114. Java is the old dog[ Go to top ]

    > Can you teach old dogs to sit.Java is the old dog. It startet in 1991 as a language for writing Applets.

    No. It started as a language for processor-independent device control.
    Now as Java has grown older more and more features were added and it got bloated over time.

    Java the language has changed little since it was designed. There were new language features added in 5.0. What has grown is the libraries. But, you don't need to use all the libraries. Java can be very small, as illustrated by its very widespread use in J2ME situations.
    Now we have 2005 and I still cannot use it for hosting?

    Of course you can. There are plenty of companies offering J2EE hosting - a quick Google search will show you.
    It still can bring down my Linux server easily?

    Java (or any other program) should not be able to bring down a well-set-up Linux server.
    The untalented engineers of Sun have tried to kill Java from day one (standardization, etc.). If you can make something complicated they did it. JSP: Had to take care about Class Loader issues, complicated configuration files, etc. NIO: I have to write my own Thread Pool (look at the new Concurrency Utilies in 1.5 if you want to see something complicated again). Versioning of Class Libraries: Non existant. And so on...I am just wondering - if the people of Mono can work out their bugs - if I will see more hosting providers for .Net+Apache+Linux then I will ever see for Java. I am really hoping that there is coming something better than Java - for the sake of all developers around the world.

    Java has some issues; any system does. I think you are being very optimistic if you think that Mono is going to be sigificantly different.

    By the way, I think the concurrency utilities in 1.5 are nice and simple, and make development easier.
  115. Java is the old dog[ Go to top ]

    > Can you teach old dogs to sit.
    Java is the old dog. It startet in 1991 as a language for writing Applets.
    No. It started as a language for processor-independent device control.
    "Java technology had been designed in parallel to move media content across networks of heterogeneous devices, but it also offered the capability to move "behavior" in the form of applets along with the content. HTML alone could not do that, but it did set the stage for Java technology."
    Java Birthday
    Now we have 2005 and I still cannot use it for hosting?
    Of course you can. There are plenty of companies offering J2EE hosting - a quick Google search will show you.
    Ok, I did a quick search. I found a lot of sites, you are right. But look for example at a comment in the FAQs of the first site I found:
    Can I restart the Tomcat service at any time?
    On a Shared JVM Plan you can't restart Tomcat on your own. You will need to email us when you need Tomcat restarted and we'll do it for you.
    Now this cannot be a serious platform for hosting, I want something that works as simple as PHP and has been designed for hosting (= the server side) and not for applets.
    By the way, I think the concurrency utilities in 1.5 are nice and simple, and make development easier.
    Try to use NIO and Concurrency together. This is one of the most complicated APIs I have ever seen. Why not have an application-wide Threadpool and a simple callback mechanism like with .Net?
  116. Java is the old dog[ Go to top ]

    Now this cannot be a serious platform for hosting, I want something that works as simple as PHP and has been designed for hosting (= the server side) and not for applets.

    Java just isn't very good when it comes to shared hosting environments. Unfortunately, it was not designed to be, and the result is obvious.

    I fundamentally believe that technologies like PHP are much better at that, because of their simplicity.

    I would like to see Java's design morph towards a technology that could support PHP-like deployment, not just for the purpose of supporting PHP-like deployment, but rather because those changes (isolation within a JVM, for example, and app-specific heaps within a multi-app JVM) would benefit Java's reliability in a variety of uses.
    Try to use NIO and Concurrency together. This is one of the most complicated APIs I have ever seen.

    Interesting. My guess is that you should not be using NIO then, because for what NIO does, it cannot be any simpler.

    There is a saying in software: Design a system that even a fool can use, and only a fool would want to use it. NIO does something that is relatively advanced; if it's too complicated for you, then it probably does not match the problem domain that you are applying it to.

    Regarding the concurrency APIs, they are about as simple as they could be for what they do.

    Regarding the combination, all I can say is that you should read the NIO documentation and understand its purpose before you try multi-threaded programming with it. Again, you are probably choosing the wrong tool for the task.

    If you aren't writing a web server, an application server, a database engine, a transaction logger, etc., then you probably shouldn't be using the NIO APIs. Just my $.02.

    Peace,

    Cameron Purdy
    Tangosol, Inc.
    Coherence: Cluster your POJOs!
  117. Java is the old dog[ Go to top ]

    Now this cannot be a serious platform for hosting, I want something that works as simple as PHP and has been designed for hosting (= the server side) and not for applets.
    Java just isn't very good when it comes to shared hosting environments. Unfortunately, it was not designed to be, and the result is obvious.I fundamentally believe that technologies like PHP are much better at that, because of their simplicity.I would like to see Java's design morph towards a technology that could support PHP-like deployment, not just for the purpose of supporting PHP-like deployment, but rather because those changes (isolation within a JVM, for example, and app-specific heaps within a multi-app JVM) would benefit Java's reliability in a variety of uses.
    At least someone who understands me ;) That was exactly the point I was trying to make, the Classloader concept was designed for Applets IMHO, and not for a shared hosting environment. But I would also like to see Java (especially JSP) to be as simple to use as PHP and *as stable and rock-solid* , I don't see a reason why it cannot be (except for political reasons). Asp.Net is trying to be as easy to use (I have a global.asx file with application-start, etc. events and when I change it the application restarts/reloads - I think this uses the AppDomains).
    Try to use NIO and Concurrency together. This is one of the most complicated APIs I have ever seen.
    Interesting. My guess is that you should not be using NIO then, because for what NIO does, it cannot be any simpler.There is a saying in software: Design a system that even a fool can use, and only a fool would want to use it. NIO does something that is relatively advanced; if it's too complicated for you, then it probably does not match the problem domain that you are applying it to.Regarding the concurrency APIs, they are about as simple as they could be for what they do.Regarding the combination, all I can say is that you should read the NIO documentation and understand its purpose before you try multi-threaded programming with it. Again, you are probably choosing the wrong tool for the task.If you aren't writing a web server, an application server, a database engine, a transaction logger, etc., then you probably shouldn't be using the NIO APIs.
    The Apache web server is built around non blocking IO, the idea is to have *scalable* network I/O. With Java before NIO I used to create a Thread for each Socket. This model is not a scalable and efficient solution especially on Linux without NPTL (but on the other hand with NPTL Java has still some issues). Jetty and Tomcat have not switched to NIO, guess why. Because it does not work out as promised. .Net has a very simple model, worker methods that are called back when a request arrives. Internally the framework checks out a thread from an application wide thread pool to run this method. I don't think (or know if) there is anything wrong with this .Net-"NIO"-Model, you just need a few lines of code for what you need maybe hundreds when using Java-NIO (where you have to code your own ThreadPools and stuff)...

    And I am writing a Chat Server, just for the records... and I am seriously considering Mono for that job because I am fed up with Java socket/threading/NIO/classloader/JSP/etc. bugs, issues and shortcomings. And I have also considered JSP for parts of the application, because I don't want to restart my server every now and then like I have to do with Java (Segmentation faults, etc.).
  118. Java is the old dog[ Go to top ]

    And I have also considered JSP for parts of the application, because I don't want to restart my server every now and then like I have to do with Java (Segmentation faults, etc.).
    JSP = PHP, sorry
  119. Java is the old dog[ Go to top ]

    The Apache web server is built around non blocking IO, the idea is to have *scalable* network I/O. With Java before NIO I used to create a Thread for each Socket. This model is not a scalable and efficient solution especially on Linux without NPTL (but on the other hand with NPTL Java has still some issues). Jetty and Tomcat have not switched to NIO, guess why. Because it does not work out as promised. ...And I have also considered JSP for parts of the application, because I don't want to restart my server every now and then like I have to do with Java (Segmentation faults, etc.).

    Do you have any URLs that describe the problems? I have potential projects in mind that would need reasonably high-peformance IO server-side. Having details of the problems, and of the Server/Java/OS combinations on which you experienced segmentation faults would be useful, if only to avoid the combination.
  120. Java is the old dog[ Go to top ]

    The Apache web server is built around non blocking IO, the idea is to have *scalable* network I/O. With Java before NIO I used to create a Thread for each Socket. This model is not a scalable and efficient solution especially on Linux without NPTL (but on the other hand with NPTL Java has still some issues). Jetty and Tomcat have not switched to NIO, guess why. Because it does not work out as promised. ...And I have also considered JSP for parts of the application, because I don't want to restart my server every now and then like I have to do with Java (Segmentation faults, etc.).
    Do you have any URLs that describe the problems? I have potential projects in mind that would need reasonably high-peformance IO server-side. Having details of the problems, and of the Server/Java/OS combinations on which you experienced segmentation faults would be useful, if only to avoid the combination.
    I don't have an URL. I just remember that my collegue used Debian Linux and had to switch back to an older version of Java because of stability problems. This might not be an issue today, but I would avoid using NIO and use NPTL only with extreme caution. You could also search the Java Bug Parade. Here is a link to Greg Wilkins from Jetty talking about NIO Servlets:
    http://www.mortbay.com/MB/log/gregw/?permalink=NIOServlet.html

    At some point in time I wanted to create a streaming HTML chat but learned that this is not possible with Java Servlets, because they are designed to be blocking. Bad luck ;)
  121. Java is the old dog[ Go to top ]

    but I would avoid using NIO and use NPTL only with extreme caution. You could also search the Java Bug Parade. Here is a link to Greg Wilkins from Jetty talking about NIO Servlets:http://www.mortbay.com/MB/log/gregw/?permalink=NIOServlet.htmlAt some point in time I wanted to create a streaming HTML chat but learned that this is not possible with Java Servlets, because they are designed to be blocking. Bad luck ;)

    Thanks - this is useful.
  122. Java is the old dog[ Go to top ]

    With Java before NIO I used to create a Thread for each Socket. This model is not a scalable and efficient solution especially on Linux without NPTL (but on the other hand with NPTL Java has still some issues). Jetty and Tomcat have not switched to NIO, guess why. Because it does not work out as promised. .Net has a very simple model, worker methods that are called back when a request arrives. Internally the framework checks out a thread from an application wide thread pool to run this method. I don't think (or know if) there is anything wrong with this .Net-"NIO"-Model, you just need a few lines of code for what you need maybe hundreds when using Java-NIO (where you have to code your own ThreadPools and stuff)
    You are a little mistaken: Tomcat and all the Java appserver/webservers I know use what you described as "Net-NIO-Model". It works pretty ok for the workloads you get with web apps.

    From what little I know, asynchronous IO (just a part of functionality of NIO!) is usefull only in extreme cases, like tens of thousands *concurrent* users per server. More specifically, async. IO is usefully only when your thread pool would have to be so large that context switching would take a significant ammount of time.
  123. Java is the old dog[ Go to top ]

    With Java before NIO I used to create a Thread for each Socket. This model is not a scalable and efficient solution especially on Linux without NPTL (but on the other hand with NPTL Java has still some issues). Jetty and Tomcat have not switched to NIO, guess why. Because it does not work out as promised. .Net has a very simple model, worker methods that are called back when a request arrives. Internally the framework checks out a thread from an application wide thread pool to run this method. I don't think (or know if) there is anything wrong with this .Net-"NIO"-Model, you just need a few lines of code for what you need maybe hundreds when using Java-NIO (where you have to code your own ThreadPools and stuff)
    You are a little mistaken: Tomcat and all the Java appserver/webservers I know use what you described as "Net-NIO-Model". It works pretty ok for the workloads you get with web apps.From what little I know, asynchronous IO (just a part of functionality of NIO!) is usefull only in extreme cases, like tens of thousands *concurrent* users per server. More specifically, async. IO is usefully only when your thread pool would have to be so large that context switching would take a significant ammount of time.
    I already posted the link of Greg Wilkins (Jetty):
    NIO Servlets have often been discussed as the holy grail of java web application performance. The promise of efficient buffers and reduced thread loads are very attractive for providing scalable 100% java web servers.
    And yes, I was talking about asynchronous non-blocking IO. Java Servlets are blocking. But you would be right if you say that Java Servers use Thread Pools, but as I said you have to write all the code that you get basically for free with .Net and it will be mostly blocking (except for if you use NIO, but I have yet to see a java server that effectively uses it).
  124. Java is the old dog[ Go to top ]

    PS.: The problem I am talking about is often refered as the C10k problem:
    http://www.kegel.com/c10k.html
    Up through JDK 1.3, Java's standard networking libraries mostly offered the one-thread-per-client model. There was a way to do nonblocking reads, but no way to do nonblocking writes.

    In May 2001, JDK 1.4 introduced the package java.nio to provide full support for nonblocking I/O (and some other goodies). See the release notes for some caveats. Try it out and give Sun feedback!
  125. Java is the old dog[ Go to top ]

    > Can you teach old dogs to sit.Java is the old dog. It startet in 1991 as a language for writing Applets.
    No. It started as a language for processor-independent device control.
    "Java technology had been designed in parallel to move media content across networks of heterogeneous devices, but it also offered the capability to move "behavior" in the form of applets along with the content. HTML alone could not do that, but it did set the stage for Java technology."Java Birthday

    Yes, that quote backs me up. It did not start as a language 'for writing Applets'. It started as a way to transmit code between different devices and OSes. Applets are only one use of that capability, and aren't even mentioned in early documents.
    Now we have 2005 and I still cannot use it for hosting?
    Of course you can. There are plenty of companies offering J2EE hosting - a quick Google search will show you.
    Ok, I did a quick search. I found a lot of sites, you are right. But look for example at a comment in the FAQs of the first site I found:
    Can I restart the Tomcat service at any time?On a Shared JVM Plan you can't restart Tomcat on your own. You will need to email us when you need Tomcat restarted and we'll do it for you.
    Now this cannot be a serious platform for hosting, I want something that works as simple as PHP and has been designed for hosting (= the server side) and not for
    applets.

    It is not as simple as PHP, and it may be complex, but you asked if it could be used for hosting, and many companies certainly do. Some companies allow you your own instance of Tomcat or JBoss.
    By the way, I think the concurrency utilities in 1.5 are nice and simple, and make development easier.
    Try to use NIO and Concurrency together. This is one of the most complicated APIs I have ever seen. Why not have an application-wide Threadpool and a simple callback mechanism like with .Net?
    I can't answer that, as I have never used that combination.
  126. Java is the old dog[ Go to top ]

    I found a lot of sites, you are right. But look for example at a comment in the FAQs of the first site I found:
    Can I restart the Tomcat service at any time?On a Shared JVM Plan you can't restart Tomcat on your own. You will need to email us when you need Tomcat restarted and we'll do it for you.
    Now this cannot be a serious platform for hosting
    Surely, this cannot surprise you? Would you want the other people that you are sharing your JVM with, to be able to bring down your application? You can still restart your application, but not the entire server. If you need to do that, don't get a shared JVM plan, purchase a dedicated JVM plan, and you can restart the server to your heart's content.
  127. Java is the old dog[ Go to top ]

    I found a lot of sites, you are right. But look for example at a comment in the FAQs of the first site I found:
    Can I restart the Tomcat service at any time?On a Shared JVM Plan you can't restart Tomcat on your own. You will need to email us when you need Tomcat restarted and we'll do it for you.
    Now this cannot be a serious platform for hosting
    Surely, this cannot surprise you? Would you want the other people that you are sharing your JVM with, to be able to bring down your application? You can still restart your application, but not the entire server. If you need to do that, don't get a shared JVM plan, purchase a dedicated JVM plan, and you can restart the server to your heart's content.
    What I wanted to say is that the Java classloader does not work well in a shared hosting environment. Maybe hot deployment can be made to work somehow, but at least there are problems with different versions of a class (or with static variables). Java does not have versioning like in .Net or isolation similiar to AppDomains (AppDomains provide for strong isolation in one virtual machine of .Net - something like lightweight processes; this is basically what this whole discussion thread is about). That's the reason why you have to restart the application server when you have to make more complex changes in a "web app". But correct me if I am wrong.
  128. Java is the old dog[ Go to top ]

    What I wanted to say is that the Java classloader does not work well in a shared hosting environment. Maybe hot deployment can be made to work somehow, but at least there are problems with different versions of a class (or with static variables).

    No, this is not the problem. Java has no problems with statics, because they are scoped by class instance, which can be properly scoped by class loader.

    The problems (as I see them) are as follows:

    1) It is extremely difficult to load certain classes, because the JVM depends on them directly. This includes the base of the Throwable hierarchy, java.lang.Object itself, etc.

    2) Somewhat as a result of the above, certain classes become very difficult to isolate across multiple class loaders, such as java.lang.System.

    3) Totally unrelated, Java does not provide the means to memory-limit threads or thread groups; in a way, all allocations come from a single conceptual heap (even if the implementation is much finer-grained than that). This allows one app in a multi-app environment to suck up more memory than it should.

    4) Somewhat related to #3, Java doesn't allow you to CPU-restrict threads ("thread group X can have up to 50% of the CPU resources .." etc.)

    In general, Java's design is 95% of the way there to supporting these multi-app environments, but the last 5% is a bitch.

    For more info, go to the experts on this subject:

    http://www.jdistro.com/

    Peace,

    Cameron Purdy
    Tangosol, Inc.
    Coherence: Cluster your POJOs!
  129. I went to JDistro[ Go to top ]

    These people truly deserve some kind of medal or recognition of some kind for not giving up.

    "Sun JRE 1.5 has now some sharing features. This is a big improvement but still limited. Tests report a shorter startup (saving 20% of time) and a reduced memory usage (5-6 Mb). This is very good news but honestly, you can not yet run a dozen of java apps at the same time on a typical box."

    Only 10 years now. Looking good.

    And in 2 -3 years maybe the EJBs will be fixed too..

    Best regards
    Rolf Tollerud
    (Hope is the last to die!)
  130. P.S. I have a suggestion[ Go to top ]

    Why don't Sun, Oracle and IBM put some money together and hire Microsoft to solve the problem(s)?
  131. P.S. I have a suggestion[ Go to top ]

    Why don't Sun, Oracle and IBM put some money together and hire Microsoft to solve the problem(s)?
    It wouldn't work, as MS would have no one to copy from. :)
  132. P.S. I have a suggestion[ Go to top ]

    Why don't Sun, Oracle and IBM put some money together and hire Microsoft to solve the problem(s)?
    It wouldn't work, as MS would have no one to copy from. :)

    Excuse me! Microsoft doesn't copy! They either purchase a technology (and then claim they invented it) or "Embrace, Extend and Extinguish".
  133. P.S. I have a suggestion[ Go to top ]

    Why don't Sun, Oracle and IBM put some money together and hire Microsoft to solve the problem(s)?
    It wouldn't work, as MS would have no one to copy from. :)
    Excuse me! Microsoft doesn't copy! They either purchase a technology (and then claim they invented it) or "Embrace, Extend and Extinguish".
    Actually what *I* would like to see is IBM supporting Mono (=.Net on Unix). IBM is very good at working around "architectural flaws" in Java (e.g. the native Widgets for Eclipse) and a strong supporter of Linux. At least C# is an ECMA standard.
  134. P.S. I have a suggestion[ Go to top ]

    Actually what *I* would like to see is IBM supporting Mono (=.Net on Unix). IBM is very good at working around "architectural flaws" in Java (e.g. the native Widgets for Eclipse) and a strong supporter of Linux. At least C# is an ECMA standard.

    C# and some part of .NET is an ECMA standard, but as I understand it that will not be of any benefit if Microsoft decides to use patents on .NET to obtain royalties. I have a very uncomfortable feeling about Mono - it is a port of a Microsoft technology done without the backing of Microsoft, and Microsoft has ominously called Mono "an attempt to reverse engineer" parts of .NET. I see possible trouble ahead if Microsoft decides that .NET developers have too easy a transition to non-Microsoft platforms. It is too risky for me.
  135. P.S. I have a suggestion[ Go to top ]

    Actually what *I* would like to see is IBM supporting Mono (=.Net on Unix). IBM is very good at working around "architectural flaws" in Java (e.g. the native Widgets for Eclipse) and a strong supporter of Linux. At least C# is an ECMA standard.
    C# and some part of .NET is an ECMA standard, but as I understand it that will not be of any benefit if Microsoft decides to use patents on .NET to obtain royalties. I have a very uncomfortable feeling about Mono - it is a port of a Microsoft technology done without the backing of Microsoft, and Microsoft has ominously called Mono "an attempt to reverse engineer" parts of .NET. I see possible trouble ahead if Microsoft decides that .NET developers have too easy a transition to non-Microsoft platforms. It is too risky for me.

    "Software patents affect everyone writing software today":
    Interview
    Software patents suck anyway.

    For me the point is that we need something better than Java. Something that actually makes our lifes as developers easier, not harder (like EJBs or NIO or ...). That really integrates with Apache and Linux. We need to make some progress in software development again. That's the reason why I think Mono is something that's worth supporting. Don't be afraid of the future!
  136. P.S. I have a suggestion[ Go to top ]

    PS.: Here is the slashdot discussion about Mono:
    http://developers.slashdot.org/article.pl?sid=05/03/23/1317206&tid=156&tid=106
  137. IMO, the best think with .NET (and Mono) is that Java code can be used directly, with IKVM and GNU classpath. I was to build a HTML to WML converter and needed a parser that could parse raw HTML, no matter what, and turn it into correct XML for XSLT transformation. HTML Tidy could not do the job (sometimes it gives up). Then I found the Java Tagsoup that never stops. Just one line and it was converted to a .NET library!

    So you do not have to wait for Microsoft you can just run Tomcat on CLR. Then you get both "Net-NIO-Model" performance and AppDomain isolation in one stroke.

    Regards
    Rolf Tollerud
  138. P.S. I have a suggestion[ Go to top ]

    "Software patents affect everyone writing software today":InterviewSoftware patents suck anyway.

    Well, of course. However simply saying that "Patent's suck" is not going to help much if Microsoft comes after you. Of course software is going to be affected by patents. The matter is who do you trust? Sun (Java) or Microsoft (Mono/.NET). I just don't trust Microsoft.
    For me the point is that we need something better than Java. Something that actually makes our lifes as developers easier, not harder (like EJBs or NIO or ...).

    If you don't like those, don't use them. There are alternatives, or you can write your own.
    That really integrates with Apache and Linux.

    I would argue that most developers don't want that at all. We would rather have something that does not tie us down to a particular web server or OS.
    We need to make some progress in software development again.

    Java has not been static.
    That's the reason why I think Mono is something that's worth supporting.

    I don't see how Mono/.NET is any more forward-thinking than Java. Also, if you are after innovation, why not come up with something entirely new? Why copy a Microsoft technology?
    Don't be afraid of the future!

    I am afraid of a future that can be threatened by Microsoft, which is why I am going nowhere near Mono.
  139. Java is the old dog[ Go to top ]

    In general, Java's design is 95% of the way there to supporting these multi-app environments, but the last 5% is a bitch.
    Thanks Cameron, that's very interesting. But if I were Sun, I would have worked on this from day 1. Honestly I could live without Swing if I had some serious replacement for PHP (in terms of stability and performance). But does Sun really care?
  140. Java is the old dog[ Go to top ]

    In general, Java's design is 95% of the way there to supporting these multi-app environments, but the last 5% is a bitch.
    Thanks Cameron, that's very interesting. But if I were Sun, I would have worked on this from day 1. Honestly I could live without Swing if I had some serious replacement for PHP (in terms of stability and performance). But does Sun really care?
    And ease-of-use, of course ;)
  141. Do try out the following link.
    http://www.javagroup.org/echidna/

    Of course I dont think it will be as robust, scalable and feature-rich as Sun's proposed implementation. Still its a nice try. :-)
    I tried it out for some simple applications and found that it indeed ran multiple applications faster and with smaller memory footprints compared to when running those same applications in standalone JVMs. It is based on the concept of running each application main class in a separate thread in a single JVM.
    Did I mention that the code base actually did not compile in JDK 1.5? May be I had a previous version. However, it required a simple fix (addition of couple of import statments pointed out by Eclipse IDE).

    Regards,
    Raja