Archive

Posts Tagged ‘SCEA’

SCEA Certification Practice test – Part 1

January 29th, 2011 No comments

SCEA architect Certification (Part 1) CX 310-052 consists of objective questions and answers on various topics like security, Design patterns , EJb etc. There is practice test on part 1

SCEA Certification Practice test

Apart from this test, you will find other related tests which will will help you in preparation for SCEA.

There is another tests for Design patterns Design pattern practice test

One test on EJB, Enterprise java bean – EJB quiz

JSP and Servlet Quiz Read more…

What is asymmetric clustering – Part 1

January 9th, 2011 No comments

Symmetric and asymmetric clustering is one of the very important topics in SCEA. In this post , we will talk about asymmetric clustering.

Traditional J2EE application servers work well for a large class of applications. This class can broadly be categorized as applications that run in a stateless cluster in front of a database. I call this a symmetric cluster:

– All the cluster members can perform any task at any time.

– The application is stateless.

– The application is modal which means it only performs work synchronously in response to a client request which can be received using HTTP/IIOP or JMS.

There are other applications that do not work well in such an environment, for example, an electronic trading system in a bank. Such applications typically use tricks that can greatly improve performance such as partitioning, multi-threading and write through caching. These are applications that can exploit asymmetric clustering. An asymmetric cluster is practically the opposite of a symmetric cluster:

– applications can declare named partitions at any point while it’s running

– partitions are highly available uniquely named singletons and run on a single cluster member at a time

– incoming work for a partition is routed to the cluster member hosting the partition

– The application is amodal. Partitions have a lifecycle of their own and can start background threads/alarms as well as respond to incoming events whether they are IIOP/HTTP or JMS/foreign messages.

WebSphere XD offers a new set of programming API’s called the “Partitioning Facility”. These APIs allow applications that require an asymmetric cluster to be deployed on a J2EE server for the first time to my knowledge.

How can partitioning improve application performance? Read more…

J2EE Architect Study material

January 9th, 2011 2 comments

In the last post I had written about SCEA – Sun certified J2EE Architect certification topics and  J2EE architect sample questions.

Based on my experience studying for and taking the part 1 of the certification, here is what I would suggest that you read before taking the exam. You could skip a couple of the following references and still pass (don’t skip the EJBs though).

Material Usage
Enterprise JavaBeans, 2nd Ed., by Richard Monson-Haefel, O’Reilly, ISBN: 1-56592-869-5 Read chapters 1 – 9 and discuss in a study group. Cover around 50 – 60 pages per week. While this book is pretty good, it goes into more detail than I think you need in order to pass part 1. If you can find a more concise introduction to EJBs, you may be able to spend less time studying EJBs. Some chapters are interesting in this book while others seem very dry to me (however, still useful).  Forming a study group will really help you get through this book and help you retain what you learn.
EJB 1.1 Specification Reference from time to time while reading the EJB book by Haefel for clarification.
Java Messaging Service Tutorial, Chapters 1 & 2 (15 pages total) http://java.sun.com/products/jms/tutorial/doc/jms_tutorialTOC.html’ Good intro to JMS and just about right for what you need on the exam.
Fault Tolerance for CORBA-based Distributed Computing.

http://dantanner.tripod.com/FT.htm

Nice short article that gives you the concepts.
Jguru article on Internationalization

http://d23xapp2.cn.ibm.com/developerworks/education/unicode/i18n_eng

Just about right for the exam. However, someone said that there was a pretty good tutorial on Sun’s website. You might try Suns tutorial first. While pretty good, I thought this article wasn’t as clear as it could have been. However, it is about the right amount for the test.
Network Security: A Simple Guide to Firewalls

http://www.3com/other/pdfs/infra/corpinfo/en_US/50309001.pdf

Easy to read and short article that introduces the concepts and terms of firewalls. Another article on firewalls in addition or instead of this one would be useful. However, I don’t know of any others.
JavaWorld article on RMI over IIOP

http://www.javaworld.com/javaworld/jw-12/1999/jw-12-iiop_p.html

Pretty good, but you might check for a related tutorial on Suns website instead.
Java Security Evolution and Concepts, Part 1 and Part 2

http://www.javaworld.com/javaworld/jw-07-2000/jw-0728-security_p.html

From my experience on the exam, you just need to know very basic concepts and terminology about encryption and security in general as well as something about JDK 1.2 security model and possibly the difference between JDK 1.1 and JDK 1.2 security models. You might want to read another article about JDK security. However, I don’t have any other references.
Introduction to SSL

http://developer.netscape.com/docs/manuals/security/sslin/contents.htm

I’m not sure this one is necessary. Consider skipping this one. I don’t recall any questions specifically about SSL on the exam, but other people’s exam notes often include SSL suggesting that you might get a question on it.
The book Design Patterns by Gamma, Helm, Johnson and Vlissides (often referred to as the Gang of Four (GoF)), Adddison-Wesley Do not try to read this book front to back. I recommend reading roughly the first four pages of each pattern and that may be more than you need for the test. The questions were very basic, straight forward questions about the easier to remember patterns such as singleton, proxy and iterator. We covered 5 patterns per week discussing all five patterns in one hour. We used the rest of the meeting time to do practice exam questions on other topics. In order to touch on 5 patterns in an hour, someone needs to come prepared with discussion questions and lead the discussion with quite a bit of authority without being overbearing. The goal during the meeting is not to discuss each pattern in detail, but to at least touch on each one briefly. The primary benefit of the study group is that it encourages you to read about the 5 patterns on your own time because you know that you are going to come and discuss it. You get the most benefit from the reading. The meeting just encourages you to read and also helps you retain what you learned.
The Design Patterns Java Companion

http://patterndepot.com/put/8/JavaPatterns.htm

This book illustrates the GoF patterns with implementations in Java. Skim through the sections in this book on any patterns that aren’t real clear to you after reading about them in the GoF. However, don’t spend too much time on this book. Use it as a reference only.
UML Distilled Read the front and back covers and skim through as much of the book as necessary to understand how the notation on the front and back covers of the book is used.

J2EE Architect Certification Topics

January 9th, 2011 No comments

In this next series of posts, I will post tons of articles and notes on Sun’s J2EE architect certification (SCEA). I had taken this exam way back in 2005 . I could not find the study materials until few days back. Now I am posting this stuff and although this might have gone under upgrade, it still could be useful.

The following topic areas are not how Sun breaks it out. Rather, it is how I would break it out in terms of the topics that you need to study. At least 16 out of the 48 questions on the exam when I took it where related to EJBs. There were between 2  and 5 questions on all other topic areas.

Topic Area Comments
Architecture Concepts and Terms General stuff like what affects scalability, maintainability, availability. Also, things like HTTP tunneling and screen scrappers.
Clustering You need to know what clustering is in general and what quality attributes (e.g. scalability, maintainability, etc. it affects). I have a general idea what clustering is, but I didn’t read anything on clustering and probably got a question or two wrong as a result.
EJBs
Security Need to know very basic/general terms and concepts about encryption. Also need to understand JDK 1.2 and possibly JDK 1.1 security model.
UML Had 3 or 4 very simple questions about UML notation and terminology. The questions were about class diagram notation and sequence diagram notation. Very basic. You don’t need to read a whole book or even most of a book to get these right. Just review a summary of UML notation such as the front and back pages of the UML Distilled book.
Patterns Very straight forward questions about the purpose of simple patterns such as iterator, singleton and proxy.
Internationalization
Protocols Requires general understanding of SHTML, IIOP, RMI-IIOP.
JMS Very basic questions that had to do with what is JMS good for and the terms such as publish/subscribe, topics, queues, point-to-point, asynchronous.
Firewalls/DNS Round-Robin Need to understand a little bit about firewalls and DNS round-robin relate as well as what might happen in different scenarios involving a client trying to access some resource through a firewall on a given ip address and port number considering what the firewall is configured to allow/disallow and what kind of firewall it is.

Command Design Pattern

January 9th, 2011 No comments

Problem

How can we issue request to other objects in a system, without having to know who will receive the request, or even what the request is? This can be useful for implementing functionality such as a menu system, where each menu item has a command that it executes, but it doesn’t want to know what it is, it only needs to trigger the command at the right time. How can this be done?

Solution

The command pattern is simple the use of objects as commands in a system. The command class has a virtual member called Execute(). In our above example, the menu item could take a command object as an initialization parameter, and when the application runs, then menu item gets a command, the when the menu item is clicked it calls Execute() on the command.

Consequences

Commands are very powerful, and can support a lot of different functionality. For example, if the command registered itself with some global undo class when it executes, then simply by reversing each command in reverse order (I smell a stack…) we can undo any sequence of commands provided every command class can be undone. Command object separates the object that triggers an operation from the one that executes the operation. By using the Composite pattern you can extend a command to execute multiple commands. And since all commands derive from the command base class, adding new commands is easy.

I myself have used this pattern to implement a dynamic console in a game. At run-time, sections of code register commands into the console. The console then accepts textual input, and pattern matches against a Name() method of each command, and upon finding a match it calls Execute() on the command. I had implemented this before discovering Design Patterns, so could have saved myself a lot of work in knowing the intricacies of this pattern if I had read the book.

What is asymmetric clustering – Part 2

January 7th, 2011 No comments

Symmetric and asymmetric clustering is one of the very important topics in SCEA .In last part we had covered , what is asymmetric clustering – part 1.

In this post , we will discuss come questions and concepts on asymmetric clustering.

What kind of applications typically implemented on symmetric clusters might benefit from being refactored into asymmetric ones?

Applications with smaller data sets that experience high request volumes and a relatively high write to read ratio. This kind of application typically doesn’t scale horizontally because of contention between cluster members even using approaches such as optimistic locking.

Applications that require sequenced request handling where a subset of the incoming events must be processed using some sequence or order. This can be implemented more efficiently using partitioning than with approaches using database locking.

Applications that have dynamic messaging requirements. If the set of message queues or topics used by an application changes dynamically during the time the application is deployed then a dynamic POJO message listener framework can be easily constructed with the exact threading model needed by the application rather than the normal cookie cutter approach.

Applications that have very high incoming message rates and where it makes sense to split the incoming message feed so that a specific subset only goes to a single cluster member. We’re partitioning the incoming topics into groups using hashing or some deterministic approach and each cluster member only receives messages for topics assigned to partitions hosted by that cluster member. This cluster member can then aggressively cache state for this subset and this improve performance as well as offloads the database. This again enables horizontal scale up especially when message order is important.

Can you give an example of a large scale application and how you might re-factor it into a partitioned, asymmetric model? Read more…

Sun Certified Enterprise Architect Assignment

November 25th, 2009 No comments

The  Sun Certified Enterprise Architect(SCEA) consists from Sun consists of 3 parts

a) Objective questions and answers

b) Assignment

c) Essay

The details can be found here Sun Certified Enterprise Architect . The assignment is one of the challenging parts. I had prepared for examination way back in 2004 and had prepared some notes. I am trying to dig up the notes from my old cd and today I found a document which helped me in clarifying my doubts on Part 2. I am not posting the solution but only some questions and answers which will help you understand the assignment better. Read more…