Hi, I am Nirjonota Islam, a student of CSE final year in Shahjalal University of Science & Technology located at Sylhet, Bangladesh. You know, Bangladesh is not a poor country and hence we, the students, are also poor here. So many of us can't afford to buy many advanced books about Programming and Books covering Rare & Advanced topics are not found here. So for many perposes we are fully dependent on the online tutorials and help systems. Anyway lets come to the main point. For my final year project I've choose "Java Thread Migration" as my project topic. I know its really hard & challenging for me But I like to take challenges abt programming. I studied a lot about this topic on various papers but they r very technical and most of th
More>>

Hi,
I am Nirjonota Islam, a student of CSE final year in Shahjalal University of Science & Technology located at Sylhet, Bangladesh. You know, Bangladesh is not a poor country and hence we, the students, are also poor here. So many of us can't afford to buy many advanced books about Programming and Books covering Rare & Advanced topics are not found here. So for many perposes we are fully dependent on the online tutorials and help systems. Anyway lets come to the main point. For my final year project I've choose "Java Thread Migration" as my project topic. I know its really hard & challenging for me But I like to take challenges abt programming. I studied a lot about this topic on various papers but they r very technical and most of them are written by people while doing their MS or Phd. Moreover, most of them talks about byte level analysis of java programming which is too much difficult for me with my sourrounding circumstances. So I Actually Need Some Guideline to eshtablish a source level mechanism ( or algorithm ) to provide Thread Migration. Any how, after studying a lot I concluded that I have to design a preprocesor such that it can add proper codes to the Java Source File To eshtablish Thread Migration. I also have to develop a mobile agent system such that the agents can perform the migration of Threads as needed in a distributed System to balnce the load of a specific machine dynamically. After analysing according my capability i found that an efficient Thread Serialization Mechanism in Source Level can help me in many ways and for doing so I also need a way to capture the state of a running thread in Source Level before serializing that. And again, it would be very benefitial for me to understand if it processes all the things in Source Code Level. I've searched using many search engine but could not find any algorithm or source code to help me serialize a thread with all of its internal variables & methods & Objects. And More Specificly I couldn't find any algorithm or mechanism to capture the actual running state of a Java Thread in Source Level. So can you please help me providing help or guide line to solve my problem?????

Please don't double post. Please use some HTML tags to format your questions so that they are more readable

Wow, this is certainly one of the more interesting questions I've seen go by jGuru in quite a while. My understanding is that you need a way to bundle up a thread and it's state, and move it to a different jvm, where execution could continue. Depending on how you view the problem, Java's Thread is either too high-level, or too low.

From within the JVM, you would have access to the entire stack and heap that your thread is working with. There are a lot of terrible problems here though, especially with Object values in the heap being kept consistant.

From withing the existing Java framework, maybe coming up with some sort of Process object is better than trying to make a java.lang.Thread do something it's not meant to - Thread.suspend() and Thread.resume()are deprecated, but you need a way to get execution to start at some pre-existing suspended state. If you had one of these mythical Process objects (that you'd have to create), and it had your chain of method calls, kept track of all objects used and guaranteed that they were not referenced from outside it, and enforced all methods used within it were atomic, you might find it's possible.. I guess you could use a preprocessor to mung your java source to insert the necessary code, or you could just provide a set of interfaces, which might be nicer.

Anyway, this is just some idle speculation, just trying to get some thoughts out there. It's an interesting idea, what advantages to you see with this over other existing load balancing technologies? What problem are you trying to solve?