• 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 Part II and III, thanks JavaRanch

 
Greenhorn
Posts: 10
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi All

I've mostly been a lurker here and just wanted to say a big thank you to all the people who have contributed to this group. I found most of my invaluable study material here, many thanks to all the members, the list is too large to mention. Without a doubt I wouldn't have done as well without the guidance I found by trawling all the FAQs here. It took a while but was well worth it. After three weeks I received my part 2/3 result and I'm glad to say I passed:

Sun Certified Enterprise Architect for Java 2 Platform Enterprise Edition Technology Part II (310-061)
Date Taken: 2006-06-16 07:41:52.717
Registration Number: *********
Site: ****
Grade: P
Score: 100
Comment: This report shows the total points that could have been awarded in each section and the actual amount of points you were awarded. This information is provided in order to give you feedback on your relative strengths on a section basis. The maximum number of points you could have received is 100, minimum to pass is 70.
Class Diagram (44 maximum) .......................... 44
Component Diagram (44 maximum) ...................... 44
Sequence/Colloboration Diagrams (12 maximum) ........ 12

In addition to all the posts here I found the following resources helpful:

All parts - Sun Certified Enterprise Architect for J2EE Technology Study Guide - Mark Cade, Simon Roberts
Part 2/3 - Core J2EE Patterns - Deepak Alur et al
The J2EE blueprints documentation
Designing Enterprise Applications with the J2EE Platform- Singh et al

I don't think my architecture/design was anything spectacular. The most important objective to keep in mind is that you need to communicate the major parts of the system in a simple way to provide a guide for designers to further refine the system. Harish Ramchandani has a great thread that describes his approach and I think that a well laid out document which leads an evaluator through the design is a good start. That is how most developers will read your document and it is important to start with an overview and then delve into the system details as necessary. Another key point is to thoroughly read the requirements and mark those that need to be addressed by you design. Use these as your milestones, I don't think you need to create new requirements unless they clarify existing requirements.

I tried to keep my diagrams simple and only provided what was required with an additional deployment diagram to make things a little clearer with respect to the physical structure of the system. My sequence diagrams were perhaps oversimplifications but I tried to describe the major component interactions in more detail either through UML notes or the supporting document. The Cade diagrams are a good guide here but you should also use your judgement to decide whether a competent developer could pick up your document and have a good understanding of the principles communicated.

Overall the most important thing is to keep the design concise. Set aside a few weeks after you have digested the requirements and just get it done. There is no right answer; reinforce your design choices with valid reasons and you should be fine. Please use design patterns where possible but don't get too attached to minor details; start with a rough system and improve the parts that don't seem clear enough. It's hard to know when to stop refining but if you focus on making a system of well-defined components your design decisions will be justified. I wasn't satisfied with my submission but I felt I was going round in circles trying to add more to it when I decided that I should just submit it. As long as you can list all the requirements you've identified and can illustrate how you address them then you should be ready.

Hope this helps

Yilmaz
 
Ranch Hand
Posts: 2023
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Congratulations!!
 
Ranch Hand
Posts: 164
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Congratulation! Perfect score!
 
Greenhorn
Posts: 13
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Congratulation! Perfect score!

I'd be greatful if You could clarify some doubts.
1) Did You save itineraries/segments to the DB even before paying them?
2) The use case addresses the possibility to select seats but does not explain if it means selecting phisical seats on an airplane or only their class (business economic...) ? How did you address this matter? Did You consider the possibility of a Customer to select several seats for each flight?
3) How did you address the problem of selecting seats avoiding race conditions? If I look at the prepare itinerary use case, I see that there are several intercations between the system and the customer (user selects flights, then select seats for each segment and so on..) . Being interaction performed with a human being, there could take some time between one action and the other and so I think that it's not possible to use a single transaction. In this light, how do you manage the problem? To better explain, when the user selects a list of flights (representing the itinerary), the system looks the available seats for each flight and return this info to the user. Then the user select seats for each route (or flight). In this time frame, it's certainly possible someone else to have booked some of the seats and so there's the possibility that the seats are no more available when coming back to the business layer to save them. How did you manage this problem? I know that there are two strategyes (optimistic and pessimistic locking) and that you can rely on entity ejb's isolation levels but being not standard specifications , I have some doubt about them. Which is your opinion? And if you you check seat availbility again, what do you do if some of the selected seats of the itinerary is no longer available? Would the customer select all the seats again?
4) The prepare itinerary use case is very ambiguous and at the eginning it refers to the possibility of the system to return alternative flights if less then selcted and within one hour. I think that this is very confusing since an airline system should return the list of all the available flights within a time frame and moreover, pricing has not yet been valuated at this point. Only a flat (class independent price) may be available at this time. My idea is to skip this point and only address the flight search and retrieval part. Which is your opinion as far as the matter? How did you interpret this point?

Thanks in advance.
Antonio.
 
Ranch Hand
Posts: 39
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Awesome score. Congratulations!!
 
Ranch Hand
Posts: 224
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Perfect sore and good explanation for all future SECA part II/III aspirants.


Congratulations!!!
 
Ranch Hand
Posts: 174
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Congrats Yilmaz
Superb peromance. Few questions
1. Did your design depicted security in any way or you just mentioned it in your notes.? Can you give us any link how to deal with data security in rich client application ?
2. Did you assumed that some data would be predefined in system for eg the flights between one city to another and system would search on it ?
3.Did you include TO & VO in your component diagrams ?

[ June 18, 2006: Message edited by: Vinays Singh ]
[ June 18, 2006: Message edited by: Vinays Singh ]
 
Ranch Hand
Posts: 311
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hello Yilmaz,
congratulations! Realy a perfect score!

I saw this was you first post - and wunder why.

Hope youn will join us for some weeks even though you have passed now.


Originally posted by Vinays Singh:
Can you give us any link how to deal with data security in rich client application ?


The more important point might be that the agents using the rich clients are in an intranet, not in the internet, so security in my opinion is not the issue here.

Thomas
 
Greenhorn
Posts: 15
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Congrats !
Can you please clarify the following
1. How did you handle login? Declaritively in EJB & handling the sec. exception or Using Intercepting Filter?

2. How did you handle security for swing clients?

Any pointers to these are highly appreciated.
[ June 19, 2006: Message edited by: Johnty Rhodes ]
 
Ranch Hand
Posts: 547
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Congrats !
 
Ranch Hand
Posts: 156
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Congrats ... excellent score ...

Regards!
 
Yilmaz Oztanir
Greenhorn
Posts: 10
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
To Antonio,

Thanks for the reply. Unfortunately I cannot directly answer most of your questions as I don't want to violate any rules of this site but I'll try to give you as much direction as possible.

> 1) Did You save itineraries/segments to the DB even before paying them?

This question bugged me for a while and I have to say that you can choose whichever way makes it easy for you to maintain system integrity. If you justify why you are doing it a certain way then you'll be fine as long as no one can point out any major holes in your process.

> 2) The use case addresses the possibility to select seats but does not explain if it means selecting phisical seats on an airplane or only their class (business economic...) ? How did you address this matter? Did You consider the possibility of a Customer to select several seats for each flight?

I kept my reasoning consistent with my class diagram. Whatever classes you have ensure that you demonstrate how they are used. I would really stick closely to the use cases here. I didn't unnecessarily complicate things. I know this may not help but just pick each option you have and walk through them to see if they both communicate the same idea.

> 3) How did you address the problem of selecting seats avoiding race conditions? If I look at the prepare itinerary use case, I see that there are several intercations between the system and the customer (user selects flights, then select seats for each segment and so on..) . Being interaction performed with a human being, there could take some time between one action and the other and so I think that it's not possible to use a single transaction. In this light, how do you manage the problem? To better explain, when the user selects a list of flights (representing the itinerary), the system looks the available seats for each flight and return this info to the user. Then the user select seats for each route (or flight). In this time frame, it's certainly possible someone else to have booked some of the seats and so there's the possibility that the seats are no more available when coming back to the business layer to save them. How did you manage this problem? I know that there are two strategyes (optimistic and pessimistic locking) and that you can rely on entity ejb's isolation levels but being not standard specifications , I have some doubt about them. Which is your opinion? And if you you check seat availbility again, what do you do if some of the selected seats of the itinerary is no longer available? Would the customer select all the seats again?


Ah, now this is where things get interesting. I don't know how much to say here except that you probably need to use locking at various points in a concurrent system such as this. The best advice I can give is that you break down your interactions to isolate the critical parts in one place. This will allow you to use locking only where necessary. Even if you don't implement locking I think mentioning why you didn't do so would be sufficient.

> 4) The prepare itinerary use case is very ambiguous and at the eginning it refers to the possibility of the system to return alternative flights if less then selcted and within one hour. I think that this is very confusing since an airline system should return the list of all the available flights within a time frame and moreover, pricing has not yet been valuated at this point. Only a flat (class independent price) may be available at this time. My idea is to skip this point and only address the flight search and retrieval part. Which is your opinion as far as the matter? How did you interpret this point?

True, ambiguity seems to be very common in the spec. The fact that you have to make assumptions gives you the leeway to explain yourself out of these problems. I would try to cover all possible steps in a use case, however briefly. Remember that you do not have to provide detailed algorithms so it should be easy to delegate things to a black-box process. I may be wrong here but I think it is important that you don't skip anything without saying why.
 
Yilmaz Oztanir
Greenhorn
Posts: 10
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
To Vinays,

> 1. Did your design depicted security in any way or you just mentioned it in your notes.? Can you give us any link how to deal with data security in rich client application ?

Quite a direct question. It's important to discuss the security aspect and whatever way you choose should be fine.

> 2. Did you assumed that some data would be predefined in system for eg the flights between one city to another and system would search on it ?

Since this is an architecture assignment mostly I don't think we have to deal with data design in such detail. Keep it simple, it's okay to mention an assumption. As long as your options are feasible in reality then that should work.

> 3.Did you include TO & VO in your component diagrams ?

I followed the convention in the Cade book.
 
Yilmaz Oztanir
Greenhorn
Posts: 10
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Thomas

Thanks for the kind words. Yes, that was my first post for a while. I used to have a prior account when I got my SCJP certification but I had to re-register. While doing my SCEA I though of posting but since I hadn't finished I wasn't sure if I could give any useful advice. I do owe the group quite a lot so I'll hang around and try to chime in if I can. BTW, your posts/advice were very helpful when I was completing the assignment, definitely helped me not to get out of hand with doing way too much.

Yilmaz
 
Yilmaz Oztanir
Greenhorn
Posts: 10
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Johnty,

Thanks for the kind words! I'll try to help as much as I can.

> 1. How did you handle login? Declaritively in EJB & handling the sec. exception or Using Intercepting Filter?

I mentioned my approach but did not create a large workflow for it or anything. Just describe the option you are going with and that should suffice. The easiest way to think about it is to ask yourself the question 'How will login be handled?'. If you can provide a simple answer in a few sentences or less that should be all you need. If it's too complex to explain in brief then you're probably doing too much.

> 2. How did you handle security for swing clients?

It all depends on how your swing clients are connecting to the server. Since the web site is suppsed to be secured via SSL you need to mention how you plan to secure whatever swing client protocol you're using. I think there are many alternatives here so you should be fine with any one that is considered a possibility in J2EE. The Cade book has some good info on protocols and how to secure them. Another hint I can give you is to try and look at the system from a physical deployment perspective and see where it can be hacked. Secure whatever is vulnerable.

Thanks

Yilmaz

- PS Any relation to the cricketer?
 
Samuel Pessorrusso
Ranch Hand
Posts: 164
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi, congrats!

How were your sequence diagrams? Was it detailed or just you objects from class diagram?

Thanks in advance
 
Ranch Hand
Posts: 85
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
"communicate the major parts of the system in a simple way to provide a guide for designers to further refine the system. "

wonderful!
 
Greenhorn
Posts: 6
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hello,
I am in a delimma whether to model the BOM using Coarse grained
Entoty Beans using BMP and DAO pattern or to model using CMP and
justify performance using the good features available of EJB
containers that comply to EJB 2.0 specification. Some of the
features I would list as a justification to going for CMP are
1. FINDERS_LOAD_BEAN
2. RELATIONSHIP_CACHING
3. INHERENT LAZY LOADING
4. OPTIMISTIC CONCURRENCY coupled with CACHE_BETWEEN_TRANSACTIONS
etc.

However I am worried that this appraoch will make my solution
depending on the container and will need considerably amount of
effort while porting to another container.

If Coarse-grained BMP solution is used then I would like to justify
that solution by listing the following design mechanisms I would
employ.

1. Lazy Loading, i.e do not load all dependent Java Objects that are
hanging out of the Coarse grained entity in ejbLoad() but load it
only when a get<<Dependent>>() method is called.

2. Dirty Marker- Moreover, make a JDBC call to load the dependent
POJOs only if they are marked as Dirty.

What do you guys think? Which approach is more justifiable for the
FBN application?

Regards
Raj
 
Greenhorn
Posts: 17
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Yilmaz,

Great !!! Congratulations ...
U did a very gud dude...

Could u please mail me (adeshy@gmail.com) ur submitted project for me so that I can learn some more things from it.

Thanks in Advance.
Adesh
adeshy@gmail.com
 
Samuel Pessorrusso
Ranch Hand
Posts: 164
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator


Could u please mail me (adeshy@gmail.com) ur submitted project for me so that I can learn some more things from it.



You must be kidding or you are too silly.
 
Yilmaz Oztanir
Greenhorn
Posts: 10
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Samuel,

My sequence diagrams had both class diagram and component diagram objects/components. I tried to view them as the glue that showed how the structural pieces of the system interacted dynamicall. I don't think they would be complete if they only showed class diagram objects.

Yilmaz
 
Yilmaz Oztanir
Greenhorn
Posts: 10
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Adesh

Sorry, but I cannot send you my submission. While this would certainly be unethical it's more important that you use this assignment as a learning experience to help you discover where you need to strengthen your skills. I learnt a lot from this by struggling to figure out what the right solution was to variuos parts of the exam. Just trying to "solve" this assignment for the sake of certification by cobbling together other peoples' work is not really the point and you won't have the same knowledge as a truly certified professional.

Yilmaz
 
Consider Paul's rocket mass heater.
reply
    Bookmark Topic Watch Topic
  • New Topic