SCJP 5 <br /> SCWCD 5 <br /> SCBCD <br />
Figuring out what's next...
SCJA 1.0, SCJP 1.4, SCWCD 1.4, SCBCD 1.3, SCJP 5.0, SCEA 5, SCBCD 5; OCUP - Fundamental, Intermediate and Advanced; IBM Certified Solution Designer - OOAD, vUML 2; SpringSource Certified Spring Professional
Independent Consultant — Author, EJB 3 in Action — Expert Group Member, Java EE 6 and EJB 3.1
Kram Nart wrote:Does pursuing the SCBCD still make sense if Sun gets bought out by another company such as IBM? How true is the comment about the JavaBeans folks getting fired from Sun? What's your thought on this?
https://coderanch.com/t/436529/Meaningless-Drivel/IBM-talks-buy-Sun-Microsystems
SCJP 1.4, SCWCD 1.4 - Hints for you, Certified Scrum Master
Did a rm -R / to find out that I lost my entire Linux installation!
Jothi Shankar Kumar wrote:
Kram Nart wrote:Does pursuing the SCBCD still make sense if Sun gets bought out by another company such as IBM? How true is the comment about the JavaBeans folks getting fired from Sun? What's your thought on this?
https://coderanch.com/t/436529/Meaningless-Drivel/IBM-talks-buy-Sun-Microsystems
What has Javabeans or SCBCD got to do with it?
SCJP 5 <br /> SCWCD 5 <br /> SCBCD <br />
Figuring out what's next...
Independent Consultant — Author, EJB 3 in Action — Expert Group Member, Java EE 6 and EJB 3.1
Reza Rahman wrote:Kram,
The point is that the SCBD is unlikely to change (the same is also true of Java/Java EE as a whole) with or without Sun. Also, as I said, I don't see the wisdom in dwelling too much on something that is a rather distant possibility and more or less looks like a media hoax at this point.
Best regards,
Reza
PS: I think a Sun merger with a more stable company is inevitable and a good thing. I am not sure IBM would be the most developer/community friendly choice, though. I was personally hoping for Apple or Red Hat with the hardware part going to some other company like Fujitsu or HP perhaps.
SCJP 5 <br /> SCWCD 5 <br /> SCBCD <br />
Figuring out what's next...
Independent Consultant — Author, EJB 3 in Action — Expert Group Member, Java EE 6 and EJB 3.1
SCJA 1.0, SCJP 1.4, SCWCD 1.4, SCBCD 1.3, SCJP 5.0, SCEA 5, SCBCD 5; OCUP - Fundamental, Intermediate and Advanced; IBM Certified Solution Designer - OOAD, vUML 2; SpringSource Certified Spring Professional
SCJP 5 <br /> SCWCD 5 <br /> SCBCD <br />
Figuring out what's next...
SCJA 1.0, SCJP 1.4, SCWCD 1.4, SCBCD 1.3, SCJP 5.0, SCEA 5, SCBCD 5; OCUP - Fundamental, Intermediate and Advanced; IBM Certified Solution Designer - OOAD, vUML 2; SpringSource Certified Spring Professional
Kengkaj Sathianpantarit wrote:Even Sun is not acquired by other company, it doesn't guarantee that EJB 3 will be popular, Spring Framework can compete with EJB 3 in almost every aspect.
SCJP 5 <br /> SCWCD 5 <br /> SCBCD <br />
Figuring out what's next...
Kengkaj Sathianpantarit wrote:Even Sun is not acquired by other company, it doesn't guarantee that EJB 3 will be popular, Spring Framework can compete with EJB 3 in almost every aspect.
Independent Consultant — Author, EJB 3 in Action — Expert Group Member, Java EE 6 and EJB 3.1
Reza Rahman wrote:
For example, I hear from a lot of folks these days that are looking into EJB 3/Java EE 5 now that SpringSource is looking more and more like a traditional software vendor.
SCJA 1.0, SCJP 1.4, SCWCD 1.4, SCBCD 1.3, SCJP 5.0, SCEA 5, SCBCD 5; OCUP - Fundamental, Intermediate and Advanced; IBM Certified Solution Designer - OOAD, vUML 2; SpringSource Certified Spring Professional
Independent Consultant — Author, EJB 3 in Action — Expert Group Member, Java EE 6 and EJB 3.1
Reza Rahman wrote:(e.g. did you know Spring implements thread-safety under the hood too?).
SCJA 1.0, SCJP 1.4, SCWCD 1.4, SCBCD 1.3, SCJP 5.0, SCEA 5, SCBCD 5; OCUP - Fundamental, Intermediate and Advanced; IBM Certified Solution Designer - OOAD, vUML 2; SpringSource Certified Spring Professional
Kengkaj Sathianpantarit wrote:It might be easy to make every bean thread-safety, but easy things are not always the right things
.
Independent Consultant — Author, EJB 3 in Action — Expert Group Member, Java EE 6 and EJB 3.1
Reza Rahman wrote:
Note, in my experience, 95% of business components access/manipulate resources such as databases and network connections that need to be thread safe.
Generally there are no thread safety issues in the service layer. For example, look at typical SLSBs: they are given pooling by the container, but in reality don't need it, as a typical SLSB has no read-write instance variables after it's configured.
In the rare cases where you strike something that isn't naturally threadsafe in the service layer, you can use synchronization. Or you can use Spring's own pooling capability (see the AOP chapter in the Reference Manual).
SCJA 1.0, SCJP 1.4, SCWCD 1.4, SCBCD 1.3, SCJP 5.0, SCEA 5, SCBCD 5; OCUP - Fundamental, Intermediate and Advanced; IBM Certified Solution Designer - OOAD, vUML 2; SpringSource Certified Spring Professional
Independent Consultant — Author, EJB 3 in Action — Expert Group Member, Java EE 6 and EJB 3.1
Reza Rahman wrote:Kengkaj,
The issue here is that I disagree with Rod's assertion because it does not match reality for most service methods that I see. In fact, in typical Spring-ish fashion it is rather self-serving and devoid from real reasoning if favor of authoritative doctrine :-). Often such assertions fall apart on closer inspection :-).
Reza Rahman wrote:
Most service methods that I see *do* end up either reading or writing data (both operations need to be thread-safe, not just the read operation).
Reza Rahman wrote:
To state it another way, anything that is transactional really needs to be thread-safe too because it implies usage of a shared resource (otherwise, why bother with a transaction at all).
Reza Rahman wrote:
And even in hard-core domain-driven design lingo, services are supposed to be "thin transactional scripts". This follows that most service operations do need to be thread-safe.
Reza Rahman wrote:
If you have concrete evidence otherwise, I sure would like to see a realistic example that represents a majority of real life enterprise applications :-). Honestly, I am a little surprised that the Sun architecture test doesn't cover this! Shame on Sun!!
Reza Rahman wrote:
As to your argument about only data access APIs needing to be thread-safe, other than the Spring data access classes, neither a JDBC, JPA, Hibernate, TopLink or iBATIS "session API" is thread-safe. The reason for this is performance. This is precisely why you are effectively forced to use the Spring specific data access classes in a Spring application. The other choice is having verbose resource factory handling code everywhere data access is necessary.
Reza Rahman wrote:
P.S.: As much as this discussion is valuable and interesting, I think it might be a little off-topic for this forum at this point. If you want to continue, perhaps it is best to move into a a more appropriate spot such as the EJB forum or the "meaningless drivel" forum?
SCJA 1.0, SCJP 1.4, SCWCD 1.4, SCBCD 1.3, SCJP 5.0, SCEA 5, SCBCD 5; OCUP - Fundamental, Intermediate and Advanced; IBM Certified Solution Designer - OOAD, vUML 2; SpringSource Certified Spring Professional
Independent Consultant — Author, EJB 3 in Action — Expert Group Member, Java EE 6 and EJB 3.1
Reza Rahman wrote:
* As to the questions around service/domain logic/transactions, please review the role of the service tier (what Eric Evans calls the "application tier") in a domain driven design application and how it fits with domain objects. I hate quoting things (feels so academic as opposed to professional), but here is Eric Evans says:
"The application Layer [Eric's name for Service Layer]: Defines the jobs the software is supposed to do and directs the expressive domain objects to work out problems. The tasks this layer is responsible for are meaningful to the business or necessary for interaction with the application layers of other systems. This layer is kept thin. It does not contain business rules or knowledge, but only coordinates tasks and delegates work to collaborations of domain objects in the next layer down. It does not have state reflecting the business situation, but it can have state that reflects the progress of a task for the user or the program."
Here is another good resource that clarifies some of this: http://ajlopez.wordpress.com/2008/09/12/layered-architecture-in-domain-driven-design/. As you can see, the primary responsibilities for this tier includes coordination between domain objects, providing transactional boundaries, defining an atomic unit of work meaningful to the application, providing security, etc. Because of this role, the service layer is often characterized as a "thin transaction script used to coordinate domain objects". This is the layer that EJB 3 components excel in.
SCJA 1.0, SCJP 1.4, SCWCD 1.4, SCBCD 1.3, SCJP 5.0, SCEA 5, SCBCD 5; OCUP - Fundamental, Intermediate and Advanced; IBM Certified Solution Designer - OOAD, vUML 2; SpringSource Certified Spring Professional
Independent Consultant — Author, EJB 3 in Action — Expert Group Member, Java EE 6 and EJB 3.1
SCJA 1.0, SCJP 1.4, SCWCD 1.4, SCBCD 1.3, SCJP 5.0, SCEA 5, SCBCD 5; OCUP - Fundamental, Intermediate and Advanced; IBM Certified Solution Designer - OOAD, vUML 2; SpringSource Certified Spring Professional
Independent Consultant — Author, EJB 3 in Action — Expert Group Member, Java EE 6 and EJB 3.1
SCJA 1.0, SCJP 1.4, SCWCD 1.4, SCBCD 1.3, SCJP 5.0, SCEA 5, SCBCD 5; OCUP - Fundamental, Intermediate and Advanced; IBM Certified Solution Designer - OOAD, vUML 2; SpringSource Certified Spring Professional
Independent Consultant — Author, EJB 3 in Action — Expert Group Member, Java EE 6 and EJB 3.1
SCJP [1.4]
Don't get me started about those stupid light bulbs. |