Java User Group Torino

English spoken people, click here
AltriJug
Articoli
Blog
Bookmarks
ChiSiamo
Cinema
Eventi
FAQ
IscriversiAlJug
FunnyJug
HobbiesAndSports
ImparareNuoveCose
JavaJobs
JavaTraining
Libri
MailingList
Meeting
News
ProgettiAttivita
Shop
Software
StoriaDelJug
SunItalia

RSS Feed
RSS Meetings Feed


I have joined Anti-IF Campaign


Spread Firefox Affiliate Button




Logo Csp

Logo Louis Urban



CoordinamentoJug
PagineDiServizio
Manutenzione
SCBCD

<h2>Sun Certified Business Component Developer for J2EE (EJB Certification)</h2>
JUG Torino offre ai propri iscritti gratuitamente un prodotto della WhizLabs, che sarà certamente un prezioso aiuto per ottenere questa certificazione: vedi WhizlabsPartnership

Attualmente questi sono gli objectives:

Sun Certified Business Component Developer for J2EE

1 EJB Overview
1.1 Identify the use, benefits, and characteristics of Enterprise JavaBeans technology, for version 2.0 of
the EJB specification.
1.2 Identify EJB 2.0 container requirements.
1.3 Identify correct and incorrect statements or examples about EJB programming restrictions.
1.4 Match EJB roles with the corresponding description of the role's responsibilities, where the
description may include deployment descriptor information.
1.5 Given a list, identify which are requirements for an EJB-jar file.

2 Client View of a Session Bean
2.1 Identify correct and incorrect statements or examples about the client view of a session bean's local
and remote home interfaces, including the code used by a client to locate a session bean's home
interface.
2.2 Identify correct and incorrect statements or examples about the client view of a session bean's local
and remote component interfaces.

3 Session Bean Component Contract
3.1 Identify correct and incorrect statements or examples about session beans, including conversational
state, the SessionBean? interface, and create methods.
3.2 Identify the use of, and the behavior of, the ejbPassivate method in a session bean, including the
responsibilities of both the container and the bean provider.
3.3 Identify the interface and method for each of the following: Retrieve the session bean's remote home
interface, Retrieve the session bean's local component interface, Determine if the session bean's caller
has a particular role, Allow the instance to mark the current transaction as a roleback, Retrieve the
UserTransaction? interface, Prepare the instance for re-use following passivation, Release resources
prior to removal, Identify the invoker of the bean instance's component interface, Be notified that a new
transaction has begun, be notified that the current transaction has completed.
3.4 Match correct descriptions about purpose and function with which session bean type they apply to:
stateless, stateful, or both.
3.5 Given a list of responsibilities related to session beans, indentify those which are the responsibility of
the session bean provider, and those which are the responsibility of the EJB container provider.
3.6 Given a list of requirements, identify those which are the requirements for a session bean class,
remote component interface, remote home interface, create methods, business methods, local
component interface, remote component interface.

4 Session Bean Lifecycle
4.1 Identify correct and incorrect statements or examples about the lifecycle of a stateful or stateless
session bean instance.
4.2 Given a list of methods of a stateful or stateless session bean class, define which of the following
operations can be performed from each of those methods: SessionContext? interface methods,
UserTransaction? methods, JNDI access to java:comp/env environment naming context, resource
manager access and other enterprise bean access.
4.3 Given a list of scenarios, identify which will result in an ejbRemove method not being being called on
a bean instance.

5 Client View of an Entity
5.1 Identify correct and incorrect statements or examples about the client view of an entity bean's local
and remote home interface, including the code used to locate an entity bean's home interface, and the
home interface methods provided to the client.
5.2 Identify correct and incorrect statements or examples about the client view of an entity bean's local
component interface (EJBLocalObject?).
5.3 Identify correct and incorrect statements or examples about the client view of a entity bean's remote
component interface (EJBObject).
5.4 Identify the use, syntax, and behavior of, the following entity bean home method types, for CMP:
finder methods, create methods, remove methods, and home methods.

6 Component Contract for Container-Managed Persistence (CMP)
6.1 Identify correct and incorrect statements or examples about the entity bean provider's view and
programming contract for CMP, including the requirements for a CMP entity bean.
6.2 Identify correct and incorrect statements or examples about persistent relationships, remove
protocols, and about the abstract schema type, of a CMP entity bean.
6.3 Identify correct and incorrect statements or examples about the rules and semantics for relationship
assignment, and relationship updating, in a CMP bean.
6.4 Match the name with a description of purpose or functionality, for each of the following deployment
descriptor elements: ejb-name, abstract-schema-name, ejb-relation, ejb-relationship-role, cmr-field,
cmr-field-type, and relationship-role-source.
6.5 Identify correctly-implemented deployment descriptor elements for a CMP bean (including containermanaged
relationships).
6.6 Identify the interface(s) and methods a CMP entity bean must and must not implement.

7 CMP Entity Bean Lifecycle
7.1 Identify correct and incorrect statements or examples about the lifecycle of a CMP entity bean.
7.2 From a list, identify the purpose, behavior, and responsibilities of the bean provider for a CMP entity
bean, including but not limited to: setEntityContext?, unsetEntityContext?, ejbCreate, ejbPostCreate?,
ejbActivate, ejbPassivat, ejbRemove, ejbLoad, ejbStore, ejbFind, ejbHome, and ejbSelect.
7.3 From a list, identify the responsibility of the container for a CMP entity bean, including but not limited
to: setEntityContext?, unsetEntityContext?, ejbCreate, ejbPostCreate?, ejbActivate, ejbPassivate,
ejbRemove, ejbLoad, ejbStore, ejbFind, ejbHome, and ejbSelect.

8 Entity Beans
8.1 From a list of behaviors, match them with the appropriate EntityContext? method responsible for that
behavior.
8.2 Identify correct and incorrect statements or examples about an entity bean's primary key and object
identity.

9 EJB-QL
9.1 Identify correct and incorrect syntax for an EJB QL query including the SELECT, FROM, and WHERE
clause.
9.2 Identify correct and incorrect statements or examples about the purpose and use of EJB QL.
9.3 Identify correct and incorrect conditional expressions, between expression, in expressions, like
expressions, and comparison expressions.

10 Message-Driven Bean Component Contract
10.1 Identify correct and incorrect statements or examples about the client view of a message-driven
bean, and the lifecycle of a message-driven bean.
10.2 Identify the interface(s) and methods a JMS Messaged-Driven bean must implement.
10.3 Identify the use and behavior of the MessageDrivenContext? interface methods.
10.4 From a list, identify the responsibility of the bean provider, and the responsibility of the container
provider for a message-driven bean.

11 Transactions
11.1 Identify correct and incorrect statements or examples about EJB transactions, including beanmanaged
transaction demarcation, and container-managed transaction demarcation.
11.2 Identify correct and incorrect statements about the Application Assembler's responsibilities,
including the use of deployment descriptor elements related to transactions, and the identification of the
methods of a particular bean type for which a transaction attribute must be specified.
11.3 Given a list of transaction behaviors, match them with the appropriate transaction attribute.
11.4 Given a list of responsibilities, identify whose which are the container's with respect to transactions,
including the handling of getRollbackOnly?, setRollbackOnly?, getUserTransaction?,
SessionSynchronzation? callbacks, for both container and bean-managed transactions.

12 Exceptions
12.1 Identify correct and incorrect statements or examples about exception handling in EJB.
12.2 Given a list of responsibilities related to exceptions, identify those which are the bean provider's, and
those which are the resopnsibility of the container provider. Be prepared to recognize responsibilities
for which neither the bean or container provider are resopnsible.
12.3 Identify correct and incorrect statements or examples about application exceptions and system
exceptions in entity beans, session beans, and message-driven beans.
12.4 Given a particular method condition, identify the following: whether an exception will be thrown, the
type of exception thrown, the container's action, and the client's view.
12.5 Identify correct and incorrect statements or examples about the client's view of exceptions received
from an enterprise bean invocation.

13 Enterprise Bean Environment
13.1 Identify correct and incorrect statements or examples about an enterprise bean's environment JNDI
naming.
13.2 Identify correct and incorrect statements about the purpose and/or use of the deployment descriptor
elements for environment entrys, ejb references, and resource manager connection factory references,
including whether a given code listing is appropriate and correct with respect to a particular deployment
descriptor element.
13.3 Given a list of responsibilities, identify which belong to the deployer, bean provider, application
assembler, container provider, system administrator, or any combination.

14 Security Management
14.1 Identify correct and incorrect statements about the EJB support for security management including
security roles, security role references, and method permissions.
14.2 From a list of responsibilities, identify which belong to the application assembler, bean provider,
deployer, container provider, or system administrator.
14.3 Given a code listing, determine whether it is a legal and/or appropriate way to programmatically
access a caller's security context.
14.4 Given a security-related deployment descriptor tag, identify correct and incorrect statements and/or
code related to that tag.


<h3>Discussioni dalla mailing list del JUG</h3>
From: "LuigiViggiano"
Date: Thu Jun 12, 2003 12:36 pm
Subject: SCBCD (Sun Certified Business Component Developer : EJB Certification)

A proposito di questa certificazione, per ottenerla dovete avere
superato la SCPJ. Per i primi 400 che daranno l'esame, sarà gratuita
(beta test). Quando tale numero sarà raggiunto verranno revocati i
voucher spediti.
Io ho spedito una mail ieri e ho ricevuto oggi il voucher. Se volete
saperne di più:

http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=forum&f=70

Prima di spedire la vostra mail di richiesta, assicuratevi di essere
già in possesso della certificazione SCPJ (Sun Certified Programmer
on Java 2 Platform)

Io oggi registro il mio voucher per la prossima settimana: gli
indiani su javaranch stanno facendo piazza pulita dei posti
disponibili. O la va o la spacca.

Ciao.
Luigi



From: "m_mercogliano"
Date: Thu Jun 12, 2003 3:05 pm
Subject: Re: SCBCD (Sun Certified Business Component Developer : EJB Certification)

Stavo passando di traforo sullla mailing list (anche se ci passo di
rado non la perdo mai di vista ;-) ) e non posso non aggiungere la
mia opinione su tale certificazione. Sono stato infatti stato uno dei
primi beta tester il primo giorno utile disponibile (6 giugno).
All'inizio sembrava infatti che il rush fosse l'unica soluzione
possibile per poter effettivamente dare l'esame, limitato ai soli
primi 400 tester in grado di *dare* (*non* prenotare) l'esame.
Attualmente sembra invece che al contrario si siano prenotati per
l'esame solo 300 persone o poco più, di cui il 50% dovrebbe averlo
già dato. Mancano poco meno di 100 persone all'appello per il momento
(parliamo di un appello aperto a chiunque a livello mondiale).

Posso solo dire che l'esame non è per niente difficile, ma è lungo
(183 domande in 4 ore), per cui portatevi qualcosa da bere....
Per passarlo basta avere familiarità con EJB 2.0 e avere dato almeno
una lettura alle specifiche EJB 2.0 e averle comprese (esclusi gli
entity BMP, non oggetto dell'esame).

Io personalmente non ho dedicato molto tempo alla preparazione (anche
perché c'era l'incertezza del riuscire a qualificarsi tra i primi
400, e quindi non c'era l'interesse a dedicare tutte le energie), ed
è da un po' che per lavoro opero più su tecnologia .NET che non J2EE,
ma devo dire che non ho trovato comunque difficoltà ad affrontarlo
(il fatto di concluderlo con esito positivo è un'altra questione ;-)
e non lo saprò fino a fine agosto).

Se qualcuno pensa di avere un po' di esperienza (6 mesi è
sufficiente) ed è in grado di prepararlo (==> leggere *bene* le
specifiche) entro 2 settimane può essere una buona occasione di
aggiungere una nuova certificazione alla propria lista.

Tuttavia non prendetelo neanche alla leggera, perché se non avete mai
visto un deployment descriptor (qualcuno potrebbe avere usato
esclusivamente strumenti IDE troppo evoluti) e/o non avete mai creato
una query EJB-QL e/o non avete mai trattato problematiche di gestione
transazione/errori applicativi potrebbe rivelarsi essere solo una
perdita di tempo.

Dal mio punto di vista questa certificazione richiede per metà
conoscenze inutili a livello lavorativo (responsabilità per ruoli
difficilmente ravvisabili nei quotidiani ambienti lavorativi e altre
amenità varie facilmente recuperabili in un contesto lavorativo con
soli 5 minuti di tempo e qualche reference sotto mano) e per metà
conoscenze utili che possono solo comportare una migliore
comprensione delle responsabilità del container e dei cicli di vita
degli enterprise bean.

Riferimenti letterari (non riporto titoli e autori per brevità, ma
confido che siano chiari per voi tutti i riferimenti letterari,
trattandosi di libri abbastanza diffusi):
- Monson-Haefel, 3rd edition --> ottimo, ma non sufficiente
- specifiche EJB 2.0 dal sito Sun --> ottimo, più che sufficiente
- Ed Roman --> utile più che altro per le ottime appendici (in
parte sconsigliato da mamma Sun, che sembra riconoscere solo in
Monson il legittimo "profeta" del verbo di mamma Sun)
- Code notes for java --> ottimo come promemoria ma del tutto
indufficiente per questo particolare esame, che riguarda unicamente e
approfonditamente il business tier.

Ho dato i miei 2 cent.

Ciao e in bocca al lupo a chi deciderà di affrontarlo,
Massimiliano.



From: "m_mercogliano"
Sent: Thursday, June 12, 2003 11:55 PM
Subject: [Jug-Torino] Re: SCBCD (Sun Certified Business Component Developer : EJB Certification)

> Giusto per sapere: mi devo imparare a memoria il DTD dell'ejb-
> jar.xml? (con la certificazione del SCWCD era necessario imparare
> quella relativa al web.xml e alle taglibs...). Che però... ho già
> quasi totalmente rimosso.

Purtroppo molte domande (un buon 10% circa se non ricordo male ==>
circa 20 domande) riguardano specifici tag del DTD. Per esempio ti
si potrebbe chiedere di scegliere la corretta sintassi per il tag
<security-role> tra varie versioni, o ti si potrebbe chiedere quale
tag (nello specifico "ejb-link") serve all'application assembler per
linkare gli EJB references creati dal bean developer a specifici
entity bean; etc....
I comuni libri di testo come il Monson-Haefel purtroppo non trattano
nel dettaglio tali specifiche, o se lo fanno ciò avviene in modo
tale che il lettore quasi non gli dia il peso dovuto, mentre per
l'esame sono importanti anche (o dovrei dire soprattutto :-) ) i
dettagli. Ecco perché è sconsigliato per la preparazione dell'esame
se si ha poco tempo e bisogna fare una scelta tra il Monson e le
specifiche (stesso discorso vale per il libro di Ed Roman).

Per affrontare l'esame con successo:

- E' *fondamentale* conoscere cosa è consentito ad un bean in ogni
stato del suo life-cycle ( vedi pag. 80, 180, 320 del reference EJB
2.0); giusto per fare un esempio è necessario sapere che il metodo
ejbActivate viene eseguito in un "unspecified transaction context"
in un session bean CMT, e per via di ciò non gli è consentito
utilizzare i metodi set/getRollbackOnly?()

- E' importante ( ma non cruciale) conoscere gli "EJB roles"
abbastanza bene da capire chi è primariamente responsabile di cosa a
partire dalla definizione delle classi di interfaccia fino al
comportamento runtime e all'analisi dei log di sistema (solo le
specifiche sono esaustive su questo tema).

- E' ancora più importante conoscere a memoria i grafici dei life-
cycle dei bean (questi li trovi anche sul Monson), e sapere così ad
es. che un ejbFind contrariamente a quanto si potrebbe pensare *non*
porta lo stato di un entity bean da pooled a ready e che ad es. il
metodo setEntityContext? viene chiamato sempre prima del metodo
ejbCreate; ricordati inoltre i passaggi di stato in conseguenza di
eccezioni di sistema e/o timeout con le conseguenze che comportano
per le risorse non disallocate o liberate erronenamente nel metodo
ejbRemove.

- E' necessario conoscere *bene* la differenza tra un entity bean
locale e uno remoto, perché molte domande sono appositamente ideate
per essere risolubili solo se ci si accorge che il codice di esempio
è riferito ad un EJBLocalHome? anziché ad un EJBHome (per es. notando
che non viene effettuato il narrowing su codice legale o notando
semplicemente che si sta lavorando con una relazione CMR che implica
automaticamente l'utilizzo di un EJB locale). E' importante capire
che secondo le specifiche EJB2.0 un RemoteException? *non* deve mai
essere lanciato da un entity locale, che invece dovrebbe generare
EJBException come eccezione di sistema.

- Bisogna conoscere a memoria tutti i metodi di tutte le
interfaccie della gerarchia javax.ejb e sapere chi e quando può
accedervi senza ottenerne un IllegalStateException? in risposta,
perché a volte viene richiesto di scegliere quali metodi sono
accessibili da un oggetto particolare.

- La gestione delle eccezioni assume la sua importanza, perché ti
si chiede di conoscere il comportamento di un bean a seguito di
un'eccezione di sistema e/o applicativa, specialmente in presenza di
una transazione in corso, e a volte si aggiungono pure gabole legate
a limiti imposti da specifiche (per es. un MDB *non* può lanciare
application exceptions, così come un entity bean *non* supporta le
BMT )

- Bisogna conoscere le specifiche legate alla definizione delle
interfaccie, che ad es. impongono l'utilizzo di tipi RMI-IIOP per
metodi di entity remoti ma non per metodi di entity locali, e che
impongono limiti su naming, eccezioni e attributi vari dei metodi
(abstract/static/final)

- E' di fondamentale importanza aver chiaro come si propagano
transazioni (CMT/BMT) e contesti di sicurezza (mi raccomando al
tag "<security-identity>" e alla modalità "<run-as>" che sono
sicuramente oggetto di una o più domande )

- E' richiesta in alcune domande la gestione della persistenza
dello stato di un SFSB (ricordati esattamente quali attributi non
serializzabili e non transient vengono recuperati dal container dopo
una passivazione)

- E' richiesta la conoscenza delle API che il container deve
supportare obbligatoriamente in EJB2.0; così ad es. il supporto JXTA
non è previsto mentre lo è quello JTA , etc...

Potrei andare avanti ancora un po' (con il serio rischio di
introdurre anche errori e confonderti solo le idee), ma credo che il
migliore aiuto siano i post di una certa Kathy Sierra, che ha
collaborato attivamente alla stesura dell'esame e ha dato alcuni
consigli assai utili in passato.
Ti posto in particolare un link molto utile su cosa NON bisogna
sapere per l'esame (ma forse tu l'hai già trovato su javaranch):
http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?
ubb=get_topic&f=70&t=000022

I mocks rilasciati a 'mo di esempio da Kathy Sierra e da Bert Bates
su javaranch sono ottimi per capire la difficoltà dell'esame, che a
prima vista sembra notevole, ma che in realtà prevede la conoscenza
di un limitato numero di argomenti e ruota sempre attorno ad essi:
EJB roles, transazioni CMT e BMT, eccezioni, life-cycles, DTD, EJB-
QL.

Per quanto riguarda le domande di esame troverai per la prima volta
questiti stile Drag & Drop :-) . sono solo una quarantina ma sono
divertenti (e a parte un paio di quesiti su EJB-QL complessi non
dovrebbero presentare particolari problemi).

Per quanto riguarda il Monson devo ammettere di averlo acquistato
anch'io in vista dell'esame, più che altro per le sezioni relative a
entity relationships, EJB-QL e MDB. Monson ha uno stile
impareggiabile nello spiegare concetti complessi e una schiettezza
ammirevole per il modo in cui esprime giudizi sui vari argomenti (ad
es. ha dedicato un paragrafo per spiegare cosa secondo lui andrebbe
migliorato nella sintassi EJB-QL, criticando apertamente l'utilizzo
di quell'odioso operatore Object() ), ma purtroppo non dispone di
una appendice tipo quella di Ed Roman, con una spiegazione metodo
per metodo delle varie interfaccie EJB e con una raccolta organica
dei Sequence & state diagrams presentati nei vari capitoli per
semplificarne il ripasso.

Che dire di più, ... io ho seguito il forum di SCBCD su javaranch
dalla sua nascita, quindi ho assorbito tutti gli utili consigli che
ha saputo offrire nel mentre; è difficile dire quale post sia
risultato più interessante o proficuo di altri dal momento che la
mia asimilazione è avvenuta in forma graduale, e quindi mi spiace
non poterti consigliare più dettagliatamente. Posso solo aggiungere
che qualcuno ha pensato di raccogliere i mocks pubblicati sul forum
e quindi potrebbe esserti utile guardare qui:
- http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=70&t=000083


Ad ogni modo non posso credere che tu non abbia una preparazione di
base più che sufficiente per passare l'esame, magari con una
ripassata delle specifiche per i tag e poco più, perché è più che
chiaro dai tuoi interventi e seminari come tu abbia una conoscenza
ottima di tutta la piattaforma J2EE (a proposito, okkio alla nuova
release di SCEA, che dovrebbe uscire entro fine anno!!). Forse ciò
che più ti manca è il tempo, considerato che ti adoperi in mille
attività contemporaneamente senza prendere respiro (beato tu che hai
scoperto come attivare il multithread nel cervello umano!! :-O ).

Mi scuso con il resto dei partecipanti della mailing-list se questo
lunghissimo post risulta sgradito, ma ho ritenuto che il post fosse
ancora di interesse pubblico.

Ciao,
Massimiliano.



Ho trovato il seguente materiale su www.javaranch.com :

Beam Lifecycle: att:BeanLC.pdf
Deployment Descriptor: att:DeploymentDescriptor.pdf
Exception Handling: att:ExceptionHandling.pdf
Bean Provider Responsibilities: att:BeanProviderResponsibilities.pdf
Muhammad Ashikuzzaman Study Notes: att:scbcdbetaexam.doc

Sintetizzano in poche parole molti concetti, e possono essere molto utili per memorizzare più facilmente le cose.
Spero siano utili.

~LuigiViggiano


SCBCD is mentioned on: CertificazioniProfessionali

VQWiki includes notification systems; however, you have not yet become a member.



VeryQuickWiki Version 2.7.1 | Admin

Powered by:
Logo Csp Logo Louis Urban

Content of this site is Copyright (C) 2003 JUG Torino and its members. Java and all Java based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. Other trademarks are registered by respective owners.