just like to thank everyone who's hepled me with this cert, especially mark spritzler and sai prasad (who were always there to lend a hand). as for my design, from a high level it was based on the RMIFactory pattern you'll read lots about on here. i have been very nervous over the last 4 weeks becasue i felt that i hadn't stuck to some of the requirements, but think if you have a good reason for changing aspects of the supplied code, that is not specifically asked for, they obviously dont mark you down. infact i think it might be such a decision that gets you the extra few points (assuming the reason's were valid) if you want to ask me any specific questions, please post and i'll try and help as many of you as possible. cheers, dean [ July 04, 2002: Message edited by: dean tomlinson ]
Congratulations for your perfect score . You deserve to be proud of it. It's pretty tough. How did you tackle the asignment? Step 1: Get a working prototype first. Step 2: Apply patterns as you saw the need and as recommended on this site Or did you design the patterns in isolation first e.g a Connection object is required for remotely accessing your data source , as I found out today ( thanks Mark Spritzer). Probably a combination of both. Any tips with hindsight to cut down on the learning curve ?
Hi guys, Thanks for the congrats - here are a some answers to your q's...
Could you please explain your design..? How did you implement the lock/unlocl
In exactly the way described by the many posts on this forum on locking using the remote connection object approach
did you include dynamic code downloading?
No
Also, do you have a feeling for what it was that Sun particularly liked about your project?
I was actually very worried that I may have blown it. I didn't strictly adhere to the requirement that you must modify or subclass Data (i did both), and I also changed the exception thrown by the lock method so it threw DatabaseException instead of the IOException supplied (even though i was strongly advised not to change anything but the deprecated methods in Data). My design was simple and did the job. i did embelish the data server, and provided it with a GUI console that could be used to stop and restart the service. it also kept track of the number of active clients which was nice, becasue it allowed the administrator to close the database service when there are no client connections.) used observer and observable to decouple the gui from the server, the idea here was too keep the dataserver bound to the registry as light as possible. I think the main reason I got top marks is becasue I had good sound reasons backing up each of my design choices. I read posts from others who seemed to have done much more. Dont get bogged down attempting to provide the most functional system, instead perhaps tackle the assignment more from an object oriented design perspective. Design a generic database subsystem (and also anything else that isn't application specific). Design around interfaces, and connect subsystems using interfaces (where appropriate !). Chain exceptions so an operation only throws an exception that is at the same level of abstraction, and use design patterns where appropriate, but dont try too hard to make things fit to a pattern just for the sake of it. Note any assumptions you have made. Inter layer coupling should only be from higher layers to lower layers, use a package structure that illustrates which packages are generic and which are application specific. I know that the reason I got top marks was due to the tremendous help i got from this forum, but i did find myself often becoming overly influenced to the point twhere I changed aspects of my design that I was obviuosly right on, after reading post's saying "i did it this way and passed". I blitzed the assignment in the final 2 weeks and ended up going back to my own ideas on many of these issues, try not to take what someone else has done as being the only correct solution, i think as long as you can back up your design choices you will pass easily. Most of all, use this assignment as an opportunity to learn ! I hadn't done any Swing or RMI until this, but to me, the important lesson is that in OO design. API's are easily learned and are really just remebered. The OO stuff though requires an understanding, that can be applied to any develpoment projects, whether Swing, Servlet or J2ME ! Try not to rush through it, the longer you spend on it, the more you will gain from the experience. Cheers, Dean
Congrats Dean on your great score. I am really glad that you got a great score and that you really learned a lot from the experience. If there is one thing that I think is most important in this Certification is to learn from it. For me this was the one where I really saw the importance of Interfaces, Decoupling, Exception Handling/Chaining, and Other OOP concepts that I could recite, but never had gotten a real handle on the implications of till this cert. Good Luck and stay around to help us out in this forum. I do need to move this thread to the Certification Results Forum, that way more people can see your great success, and maybe hook some of them into signing up for this Certification. Mark
Hi dean tomlinson, Congrats for ur GREAT score. On top of this posting u told that u have used RMIFactory pattern in this factory. Let me know what is the need for RMIFactory pattern. What is the need for u to change the DatabaseException to IOException. If u did any coding changes in the Data class please explain. Thanks & goodluck, -rameshkumar
Dean, Stellar, outstanding! As far as I've been able to tell, there are no other 155 scores posted on JavaRanch, so this is quite something. Can you tell me something of your professional background? Are you a long-time Java programmer, or new to the language, like me? Debra Bellmaine SCJD