• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Passed SCJD with 152/155

 
Ranch Hand
Posts: 82
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Finally the waiting is over. I just recieved my results and am very pleased with a 152 out of 155. The breakdown of points as follows:
General Considerations(maximum = 58): 58
Documentation(maximum = 20): 20
GUI(maximum = 24): 23
Server(maximum = 53): 51
I can't thank everyone enough here for the excellent help and advice. Especially Mark and Peter. I will be hanging around the Developer forum to provide help to others and to try to give a little back of what I have taken.
Anybody having any questions about my design or implementation, feel free to ask.

Mike
 
Ranch Hand
Posts: 69
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Great job Mike. I'm debating about which certification to get next...One one hand the SCEA (in my mind) is the top of the ladder. In saying that I need to get the SCJD, so I won't skip a rung. However, it seems that the industry is moving toward web based application development and less pure desktop based application software.
Anyway, when you got your assignment how did you start ? Also, how long did it take from start to finish.
Again great job, that's an excellent score.
-PP
 
Ranch Hand
Posts: 117
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Way to go! Great score!
Since you offered, I'd be interested in any design info you'd be willing to share. Did you add extra features or stay with a simple solution?
Thanks!
 
ranger
Posts: 17347
11
Mac IntelliJ IDE Spring
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Congrats Mike. Great Score. And thanks for sticking around and helping us out.
Mark
 
Ranch Hand
Posts: 180
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
What a close finish to the top touch line ! lol.
Massive score Mike, keep at it ! Many congratulations.
 
Ranch Hand
Posts: 40
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Great job. What a score!
Debra Bellmaine
SCJD
 
Mike Piotrowski
Ranch Hand
Posts: 82
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thank you to you all.
Peter,
I agree with you about the way the industry is moving towards web based applications. Though I believe the SCJD holds some more weight over the others certs because you are actually proving your ability at using Java to solve a real business problem. Not just taking a multiple choice test. Now I am working on the SCWCD and plan on the architect exam maybe later in the year or next year.
I downloaded my assignment in March and spent a couple of many hours each night working on it for about 3 months(and some real late nights at times). I don't have a great deal of industry work experience, so I used the developer assignment as way for me to learn more. First I started with reading the specs, then reading them again, and again and again. Then I worked on the client GUI first then on to the network server, which originally I implemented using sockets. I had no experience with RMI and not much with design patterns except MVC. So I was a little hesitant with using RMI(until I saw how much easier it made things!!). I had a working(or so I thought) model the project in a couple weeks. Thats when I found the JavaRanch and realized how bad my design was. It was very hard to maintain, not scalable, etc, etc.
So I read up on RMI and design patterns and did alot searching through posts here to get some great advice from people. I then reworked my design with RMI, Facade pattern, MVC and Factory Pattern. Then things all fell into place.
For people worried about If they are ready or not to tart the assignment. My advice is download it and start with what you can do. You have to be at least a SCJP, so you have a good idea about the core Java language. There is no time limit, so use it as a learning experience. No better way to learn something than to do it and especially true with programming.
I'll post about my design in a bit, got a couple things to do
Mike
 
Author & Gold Digger
Posts: 7617
6
IntelliJ IDE Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Great job Mike
 
Ranch Hand
Posts: 44
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Mike,

You did a great job !!!
It sounds very great!!!
Would you like to share your invaluable experience?
Everyone keep going...
Larry
 
Mike Piotrowski
Ranch Hand
Posts: 82
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Here are my major design decisions.
1. Used RMI vs Sockets for network communication, using the Factory Pattern on the server to assign each client their own unique connection object(my RemoteDataImpl class). Simple command line interface for the server.
2. Modified the Data class, with the same method signatures.
3. For record locking I had each client's connection object keep track of which locks they owned. All remote calls to the Data class passed through the clients connection object.
4. Packaged the stub classes with the client.jar executable jar file.
5. Used the Facade pattern to seperate all of the business logic from the client GUI.
6. Kept the client GUI simple with a help menu to display user instructions.
7. Command line arguments for the client were operating mode and server address. Client GUI stayed in either Local or Network mode after starting. Command line args for the server was just the server address.
Overall tried to keep things as simple as possible and and not try to create any unneeded problems. From what I've experienced talking to people it doesn't seem to help in your score by adding extra features that are not required. The more complex you make things the more problems you are asking for.
Mike
 
Greenhorn
Posts: 15
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Mike
Contratulations, a you did a very good job!
Creative idee to have a connection object. Can you tell something about it? Where there as many instances of the connection object as there are client sessions? And if so, how did the connection objects communicate?
Thanks in advanance.
/Hugo.
 
Ranch Hand
Posts: 163
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Congrats! Mike. Fantastik score!
BTW, I need your help in creating executable jars.
 
Ranch Hand
Posts: 32
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Mike, Rich McCoy asked if you used SemanticNet
 
Mike Piotrowski
Ranch Hand
Posts: 82
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Creative idee to have a connection object. Can you tell something about it? Where there as many instances of the connection object as there are client sessions? And if so, how did the connection objects communicate?


I must give credit for the idea to my fellow ranchers especially Mark and Peter. Try searching some old posts and you will find some extremely useful information on the topic.
Here is a brief overview though.
I have a ConnectionFactory which is bound to the to the RMI Registry. The ConnectionFactory holds a private instance of the Data class and has a method getConnection() which returns a RemoteDataImpl object thats implements DataInterface. A reference to the ConnectionFactory's Data object will be passed to the constuctor of the RemoteDataImpl object for the clients unique connection object to the Database. All calls to the Data class will pass through the clients connection object
There is no need for the different connection objects to communicate directly with each other. The Data class kept track of which records were locked. Also somewhere on Sun's website they have a qood explanation on the Factory Pattern that is useful, but I can't seem to find it now.

Mike, Rich McCoy asked if you used SemanticNet


No, I am not familiar with it.
Mike
 
Ranch Hand
Posts: 2379
MySQL Database Spring Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
performance Mike! congrats...
 
Ranch Hand
Posts: 109
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Congrats Mike, great job
I have a question about MVC Pattern, I've read about this pattern here from Mark and Debra, I haven't had any experience with this Pattern, It seems the way Mark did it was straight forward and easy to use (Using Hook method in GUI and assign listener to them in Controller) and honesty I didn't understand anything about what Debra said about MVC so Can you elaborate the was you used this Pattern in your assignment?

Sam
 
Mike Piotrowski
Ranch Hand
Posts: 82
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Sam,
In my main frame for my GUI (FBNMain.java) I have a DisplayPanel which contains the JTable for displaying available flights. Then I create a SearchPanel and BookPanel, they get passed a reference to the JTable from the DisplayPanel.
When a user clicks a button to search or book a flight the events are handled by inner classes which implement ActionListener in the SearchPanel and BookPanel class. From the reference to the JTable I get the model used for the JTable to update the view.
Don't know if this is the best way to use the MVC pattern but it was simple, worked very well and easy for a junior programmer to understand.
Any more questions feel free to ask.
Mike
 
Consider Paul's rocket mass heater.
reply
    Bookmark Topic Watch Topic
  • New Topic