So I've decided to take the Sun Certified Enterprise Architect for J2EE Platform exam. This certification covers a variety of J2EE topics and should compliment my SCJP (programmer) certfication pretty well. It actually surprised me as I was reading about the requirements that they're pretty much exactly the things that I wanted to improve my knowledge about. It's going to a pain in the butt to do, actually. There's three exams, the first is a multiple choice, the second is a project and the third is an essay about a specific topic. The total cost is going to be at least $550, not including the cash I've already laid down for books and stuff. Whew, I hope it's worth it.
Here's the topics covered by the exam:
ï¿½Given an architecture described in terms of network layout,list benefits and potential weaknesses associated with it
ï¿½Distinguish appropriate from inappropriate techniques for providing access to a legacy system from Java technology code given an outline description of that legacy system
ENTERPRISE JAVA BEANS ï¿½
ï¿½List the required classes/interfaces that must be provided for an Enterprise JavaBean ï¿½component
ï¿½Distinguish between stateful and stateless session beans
ï¿½Distinguish between session and entity beans
ï¿½Recognize appropriate uses for entity,stateful session,and stateless session beans
ï¿½State the benefits and costs of container-managed persistence
ï¿½State the transactional behavior in a given scenario for an enterprise bean method with a specified transactional attributed as defined in the deployment descriptor
ï¿½Given a requirement specification detailing security and flexibility needs,identify architectures that would fulfill those requirements
ï¿½Identify costs and benefits of using an intermediate data-access object between an entity bean and the data resource
ENTERPRISE JAVABEANS ï¿½CONTAINER MODEL:
ï¿½State the benefits of bean pooling in an Enterprise JavaBeans container
ï¿½Explain how the Enterprise JavaBeans container does lifecycle management and has the capability to increase scalability
ï¿½Given a list of some of its features,identify a protocol that is one of the following:HTTP,HTTPS,IIOP, or JRMP
ï¿½Given a scenario description,distinguish appropriate from inappropriate protocols to implement that scenario
ï¿½Select common firewall features that might interfere with the normal operation of a given protocol
APPLICABILITY OF J2EE ï¿½TECHNOLOGY:
ï¿½Identify application aspects that are suited to implementation using J2EE technology
ï¿½Identify application aspects that are suited to implementation using Enterprise Java Beans
ï¿½Identify suitable J2EE technologies for the implementation of specified application aspects
ï¿½Identify the most appropriate design pattern for a given scenario
ï¿½Identify the benefits of using design patterns
ï¿½State the name of a Gamma et al.design pattern given the UML diagram and/or a brief description of the pattern's functionality
ï¿½Identify benefits of a specified Gamma et al.design pattern
ï¿½Identify the Gamma et al.design pattern associated with a specified J2EE technology feature
ï¿½Identify scenarios that are appropriate to implementation using messaging,Enterprise JavaBeans technology,or both
ï¿½List benefits of synchronous and asynchronous messaging
ï¿½Identify scenarios that are appropriate to implementation using messaging
ï¿½Identify scenarios that are more appropriate to implementation using asynchronous messaging, rather than synchronous
ï¿½Identify scenarios that are more appropriate to implementation using synchronous messaging, rather than asynchronous
ï¿½State three aspects of any application that might need to be varied or customized in different deployment locales
ï¿½List three features of the Java programming language that can be used to create an internationalizable/localizable application
ï¿½Identify security restrictions that Java 2 technology environments normally impose on applets running in a browser
ï¿½Given an architectural system specification,identify appropriate locations for implementation of specified security features and select suitable technologies for implementation of those features
This is a lot of good stuff, actually. I really like the patterns and UML requirements since I wanted to get into those subjects anyways. Some of the test is obvious marketing crap, but the rest seems like really useful knowledge which I like. I've already bought most of the recommended books and am working through them now:
- UML Distilled (Martin Fowler+) - not too bad so far. Really distilled, but not many examples.
- Design Patterns (The "Gang of Four" book) - Ugh. C++ and Smalltalk examples? I should've looked to see if there was a Java version first. Ward Cunningham's wiki has a bunch of great EJB Design Patterns, so I'll go from there I think.
- Enterprise Java Beans (O'Reilly) - Some O'Reilly books really aren't that great. I prefer Master Enterprise Java Beans. Much more information in a much clearer format.
- SCEA Technology Study Guide (Mark Cade, Simon Roberts) - Woohooo! I hope this is good... I just ordered it via Amazon. Since I'm not taking any courses, I really hope this book can help me focus on the important points that will be on the test.
There's also a book on JMS and Java Network Security, but it seems that these two books are a bit overkill right now. I would like to read that Security book, actually, but I've got a couple O'Reilly Security books that should give me the info I need for now.
In other news, I'm still in love with JDeveloper, though it takes up A LOT A LOT A LOT of memory on my machine. Having only 256 megs of RAM I can't run JDeveloper AND Oracle... so that sort of sucks for now. But it's definitely helping while doing preliminary development for EventEngine.org.
I also downloaded BEA's new WebLogic Workshop and that's pretty cool too. Like I said below, really wild interface. But it's nice to see that the Java guys are taking Web Services seriously. I just downloaded Sun's newest Java XML Pack and the Web Services Pack for the Spring and am about to start playing with these too...
So in recap, here are the projects I'm trying to get out of my head and down in the computer... too many I know. Focus, focus!
- J2ME Sample app: Crossword
- WebLogger - a RSS Reader, Web server, weblog posting, extensible application like Radio. (Some of the cooler stuff is already done on this one.
- PayStation - I want to use Struts to continue my development I started at Terra. My own MVC version was a bit week, so I think this might be the ticket.
- EventEngine.org - I'm still working on this. I've got the code for the scheduling part, now I need to integrate that with a J2ee backend and DB. I'm trying to work with the Hyperion JavaDB stuff so it's very portable, but I think it's a bit weird... more on this later.
- Wiki - I'd like the WebLogger above to have a Wiki piece. I've got a lot of this written, but I'd like to move it over to Struts, because I think it's a better way to do JSP pages than what I've done before. A bit more complex, but hey.
I've scrapped the C++ and Palm stuff for now. I only have so many braincells and between studying for the J2EE exam and doing my pet projects, there's no way I'm going to truly pick up another programming language right now. It seems better to just focus on improving my Java skills (since that will actually get me paid, unlike Palm programming.) I'm going to really cringe if in 7 months there's this HUGE demand for Palm and Symbian programmers because of all the mobile "smartphones" out there.
It'd be nice to develop some sort of Manywhere front end to the Sputnik stuff and launch it here in Europe. That would really rock, actually.
Okay, that's enough for now. Back to studying.