From: 明. <li...@gm...> - 2008-04-07 13:09:43
|
Dear Mr./Mrs.: I am really interest in JPF and want to participate in the summer of code of google. My application is sumitted and my profiles are listed as follows. Name: Mingxin Li Project Title (or brief description): Reducing State Storage Costs by Using Network Interface to Store and Retrieve Program States Data from an External Server. Education and Software Development Experience: I'm a doctor candidates of Beijing University of Posts and Telecommunications (BUPT) and my major is computer science. I have almost six years software development experience in java including three years software development experience as a full time developer when I graduated and got the master degree from BUPT in 2004. In addition, I was awarded in 2006 BEA software innovation and development competition. And I have been the main developer of Extrem Blue Porject of IBM in the summer of 2007. I got the topmost quality of national certification systems analyst in 2006. Why I'm interested in working on Java PathFinder: When I learn some information about JPF through its website I think it is an amazing project and it has good ideas to resolve the problems in the process of software test.Therefore I decided to do some contribution to the project. Have you contacted anyone on the JPF Team about this proposal (if yes, who): I didn't contacted anyone at present. Experience with Java and object-oriented design patterns: I have almost six years software development experience in java. And I have good experience of object-oriented design. Experience or knowledge of software testing and verification tools: I am familiar with junit and have the experience of using test tools such as loadrunner. Project Details: In order to resolve the issue of storing and retrieving huge program states. The application proposes several possible methods to deal with the hidden trouble. In my opinion, the resolving methods are described as follows. Firstly, a large number object of program states is serialized by java serialization interface. Object serialization is the process of saving an object's state to a sequence of bytes, as well as the process of rebuilding those bytes into a live object at some future time. The Java Serialization API provides a standard mechanism for developers to handle object serialization. Secondly, the store formate should be considered, for example we can refer to the design ideas of index files in lucene. Finally, the objects of program states serialized is stored and retrieved on/from external server by network communications. The methods of communications can be classified as follows. The first one is the C/S mode based on socket connections. The communications built on the RMI technology of java is the second method. The third method is to refer to the good design ideas of distributed file system such as the open source project hadoop which is a part of lucene. The last one is that setting up the C/S by jetty which is an open source web server and designed to be a good component. Furthermore, it can easily be embedded in an application and set up the connection of C/S. Deliverables: I think deliverables should at least contain analysis documents, detailed design documents, test reports, user manuals and codes. The new JPF version can store and retrieve program states on/from a server, which is more easy to use JPF on huge state spaces. Yours Sincerely, Mingxin Li 2008-4-7 |