Sunday, July 17, 2011

SCEA 5
SCEA 5 part 3 Essay
SCEA 5 part 3 EXAM
Oracle Certified Master PART3 EXAM
Java EE 5 Enterprise Architect PART 3 EXAM
OCMJEA PART 3
OCMJEA 5 PART 3


SCEA 5/
OCMJEA 5
-PART3 - Essay Exam

Earlier we could take part 3 before submitting the part-2 assignment to oracle but now after September 1st 2011 we need to upload part-2 assignment in pearsonvue.com/oracle and then it will allow you to book for part 3 exam.

The part 3 will be based on what you have done in part 2 and why you choose a particular frame work what was the reason etc.
I will list out some topics which if you can correlate to your assignment you will be able to answer most questions in Part3 essay exam.

I personally had prepared notes for each of the questions.
Most importantly make sure you relate this questions to the assignment and ask your self how you have handled in your design.
  1. Why have u chosen framework If any If not why not ?
  2. What technology u have used in presentation and business tier why ?
  3. Set of design patterns on which layer and why ?
  4. Security (network security and application security)
  5. what changes you suggest or how will you handle if the volume increases ?
  6. How you have handled security threats ?
  7. Why you choose EJBS if not why ?
In general prepare for the following.
( I guess I got these below questions from some other blog)
1) How does your design handle Scalability?
2) How does your design handle performance?
3) How does your design handle security?
4) How does your design handle Reliability?
5) How does your design handle Availability?
6) How does your design handle Extensibility?
7) How does your design handle Manageability?
8) How does your design handle Maintainability?

Each of the below question also ask , "Why did you choose?"

1) How does your design support session/state handling?
2) How does your design handle persistence?
3) How does your client tier talk to business tier?
4) How does your design handle Qos 5 Sec in peak time?
5) How does your design handle transactions?
6) How does your design handle authentication and authorization?


I gathered some notes in general for any application which helped a lot. Here are some tips for the above questions.
1) How does your design handle Scalability?
- Scalability by deploying apps on mutiple clusters if Required....??? EXPAND more on this. , The business components and presentation can be deployed on seperate servers if required which supports Scalability.
- Also stateless beans can be more easily load balanced across clusters.
- Use connection pooling for any data base connections to improve Scalability.
- Application is designed to be deployed on mutiple srevers which can be clustered it supports bothe vertical and horizontal scaling.
2) How does your design handle performance?
- One way to improve performance is to reduce the amount of data passed between components. So whereever possible between layers presentation<->business<->Data access layer send or receive only required information and use Data transfer Objects (DTO).
- Use Fast lanereader when browsing the catalog or products as the data is read only and using fast lane reader we can directly access the data using JDBC components.
The improved performance with fast lane reader is due to the fact that the component reads data in a form in which we wnat to use it. Using entity beans will be an over head in such cases.
- Using Service locator to improve performance.Any lookup for remote object (In case if we want to deploy business components on a different server) can be cached and we can eliminate redundant lookups which improves performance.
- If the EJBS are on Same server use Local Interfaces instead of remote interfaces.
- Using Busines Delegate pattern to reduce the number of round trips between presentation and Business logic layer.
- Use connection pooling for any data base connections to improve performance.
- Also the request across server will be evenly distributed by the load balancer to ensure good utilization of resources.

3) How does your design handle security?
- Using HTTPS for all external connections (Explain more)
- The servers itself will be within a DMZ (De militarized Zone)
- For JMs communicataion there are few options.
- Enabling JMS Provider authentication and access control
- JMS Queues and Topics protection, so that the desinations are available for access to privileged applications
- JMS Message-level (Using Encryption and Digital signatures) and Transport-layer security (Using SSL).
These options depends upon JMS provider and not specified by JMS standards.


4) How does your design handle Reliability? (????????????????? correct the numbers here.)
- We have two load balancer so even if one goes down other load balancer can pick and serve the requests.
- If one of the server goes down the loan balancer will ensure the new request will be routed to a server that is running.
- We have total Four clusters on which the application is running and two Hot stand by Databases.
- Session migration will be enabled so that if one server goes down the user will still be able to continue his shopping without any problems as the session will be migrated to the server thats up and running.


5) How does your design handle Availability?
- Application is designed for high avaibility. This is made possible by having two load balancers so that if one goes down the other load balancer will serve the requests/
- We have two clusters each with two nodes and each node can have multiple servers. To start with, each node has one server.
Since Cluster itself is on a seperate physcial machine at any given point of time we will have a server up and running all times even if the physcial machine has issues

6) How does your design handle Extensibility?
- The applicataion is designed with seperation of concerns- Presentation layer, Business layer, Data access layer.
Each layer is loosely coupled with each other with good usage of design patterns, interfaces and best practices of Object oriented design like encapsulation, inheritance.
So any change to sub systems will have less impact on systems which are using it as long the interfaces remain same. Even if there are changes the impact will be minimal for adpating new changes.


7) How does your design handle Manageability?
- Since application uses J2ee we can pluging in any JMX based tools for application and network management and monitoring. In addition we can also have good logging mechanism to indicate any Fatal or Error conditions.
Using JMX we can also trun on different logging levels at run time if required. (Eg: Say if there is some error that happens only in production we can trun on debug levels for a while using JMX modules)

8) How does your design handle Maintainability?
- Due to the layered architecrture each layer address a particular need so any enhancement can be made easily. Also each layer is loosely coupled with best deisgn practices which makes understanding functionality and making changes easier.
This can also be supported with good documentation of the application (Architecture diagrams, Interface agreements with extenal systems, Class diagrams, Sequence diagrams, Java doc etc)


1) How does your design support session/state handling?
- For maintaining the shopping cart application uses stateful session bean.

2) How does your design handle persistence?
- Using JPA and Entity Beans. The access is through Data Access Object (DAO).

3) How does your client tier talk to business tier?
- The presentation tier call's Business Facade <--> Business Delegate <---> DAO. The business facade is used to make sure there is less coupling between
presentation and business layer.The business delegate uses Service locator for invoking any EJB (RMI/IIOP) and DAO's.

4) How does your design handle Qos 5 Sec in peak time?


5) How does your design handle transactions?
- Using EJBs CMT through JPA.

6) How does your design handle authentication and authorization?
- When user completes his shopping we can give a provision to check out as guest or the user can create a profile in which case the the future logins will involve FORM based authentication mechanism.
- For internal users who maintian the applicataion in production, run reports for future projections or analysis etc we have LDAP based authentication mechanism.Here users can be put to different roles
so that not every internal user is authorized to run reports or view some critical data (eg: related to orders placed and payment relatred data)



NOTE/WARNING: After completing part-3 exam I got a message saying completed successfully and that I will get the results in 4-6 weeks with a print out at the exam center. But when I logged into pearson vue account the status for part-3 was showing as error. When I called Pearson initially they said its not an issue but later of my continuous questioning I was informed that the part 3 essay was not uploaded to oracle site due to net work error in Pearson application. Frankly I went though such a pain calling pearson, oracle. Pearson support doesnt have any mail access so the only way is to call them and each time they would tell some story. Finally after 21 days they resolved the problem. (yes it took them 21 days to upload my essay to oracle. I am hoping they have submitted what I have answered and not an empty file).
Hope no one will have this trouble.

Good luck and after September 1st all folks need to take a mandatory Part-4 which is a training from oracle. My personal opinion is it will be to expensive for any one to pay entire certification cost and it may discourage more people. As the Part-4 training I heard is very expensive.

Resources:



5 comments:

  1. Just a small correction, Mandatory training comes into effect from Oct 1st and not September 1st.

    ReplyDelete
  2. SP,
    When I wrote the blog it was Spetember end. I came to know that they now extended to Oct 1st. I will update it shortly.

    Thanks
    Reddy

    ReplyDelete
  3. thanks for sharing your experience ...
    good tips for those who preparing for ocmjea...

    ReplyDelete
  4. Thanks man. Is it allowed to take your notes to the exam hall?

    ReplyDelete