Sorry in advance for the noise if this is not the correct forum for this: Our group is currently negotiating with another group in our company to come to an agreement on a platform for some common services. The other team is pretty well set on EJB3 and JBoss, whereas we had been leaning toward SCA Java, in combination with at least Spring. Stangely enough, there seems to be quite a bit of convergence between the technologies, and I know that implementation.ejb is actually one of the SCA component implementation types. But, can anyone provide a pointer or some arguments in favor of or against Spring + Tuscany SCA Java ( + JBoss?) versus JBoss / EJB3. As a starting point, the EJB3 argument goes something like this: . JCP standards based . Rich set of application services bundled with app server . Built-in clustering capability (distributed coherent cache + JTA provided by app server) I think the Spring / SCA argument would include: . Supports heterogeneous components (EJB, Spring, OSGi...) . More configurable (lighter weight deployments possible other than full app server). The arguments against Spring / SCA include: . Requires assembly of more parts (SCA, Spring, JTOM, Hibernate, etc.) . No built-in clustering capability (Terracotta looked promising, but our legal department will never approve their license, and we don't want "Powered by Terracotta" all over our application, and we're too cheap to pay for it ;-) . Not JCP standard My take on the EJB3 case is that while clustering comes bundled, it is not clear that it would really buy us anything. For our app, we don't need load-balanced, symmetrical pools of service instances running across multiple JVMs. We actually need to carefully configure which services run where, which are colocated, and which have affinity to certain servers. (Maybe it is possible to configure this with JBoss? I know it is with Tuscany SCA Java.) Also, using EJB3 locks you into EJB-specific annotations, whereas using SCA with implementation.ejb, for example, would permit better interoperability with non-EJB components. Does anyone want to weigh in on this, or just provide some links? There's a lot of propaganda out there, and a lot of it is FUD or just plain out of date. It's hard to make a coherent argument one way or the other. Any help would be appreciated. Thanks. --Rich
________________________________ From: Simon Laws [mailto:simonsl...@googlemail.com] Sent: Sunday, February 15, 2009 6:43 AM To: user@tuscany.apache.org Subject: Re: General selling point question On Sat, Feb 14, 2009 at 5:51 AM, Moreau, Christopher <chris.mor...@gdit.com> wrote: This isn't a specific technical question, but rather more of a how to I make the case for Tuscany SCA question. I am on a project with multiple contributors. The SOA has an ESB. I am having a hard time figuring out the key role for SCA. Many of capabilities seem like things available via the ESB. -C Hi Christopher. >From my point of view SCA's role is to provide consistency. For example, consistency in the programming model used to expose services and exploit references to other services, consistency in the way you describe the assembly of components in your solution and consistency in the way that policy is applied to control quality of service concerns. The SCA model applies regardless of what implementation or communcation technology you use. In you're scenario how do the multiple contributors implement services and communicate with the ESB? Do services only ever communicate via the ESB? Regards Simon