Hi Darren
1) For the old people from the EJB 1.1 forward (don't want to talk about 1.0), are there any items that carry over, or is it more of a 'you must unlearn what you have learned' kind of change.
I see no reason to forget what has been learn, if anything the experience of working with design patterns in an EJB environment will only help understand how these patterns can be best used in a modern Java Enterprise environment. Design patterns in Java EE solve the same problems as 'traditional' implementations, they just take advantages of the new features of Java EE. Many patterns in
Professional Java EE Design Patterns use CDI and other new features in EE to make it simpler and cleaner to implement the pattern. Cleaner because less boiler-plate code is require or because the CDI environment does same or all of the work for you, freeing up time to develop the rest of the application.
2) Are there design patterns that talk about a lot of the 'hype' around these two areas:
2.a) asynchronous communications, which although is more of a network item, does have some consequences if not addressed in the design.
One chapter is dedicated to discussing and demonstrating the use of Async patterns in Java EE.
2.b) large-scale parallel processing (either simple SMP multithreading as one topic, and distributed 'cloud' scale parallel processing as another topic) -- this has a lot of potential pitfalls and challenges (old J2EE did not want you to multithread in your code for example), and some good design patterns to tackle the problem would be great!
This is quite a big topic and even though it is very interesting we were not able to address it in the book as it fell out of scope.
We focus on the specific Java EE implementation of 'traditional' Java SE design patterns in a EE environment that take advantage of the unique features of Java EE.
Thank you for your question.