The Smart Client Container (SmartCC) is an extended J2EE compliant container for application clients, released under LGPL. A J2EE Application can be seen as a directed, mostly non cyclic graph of components. Some of the components reside on the server, others on the client. The edges between these components are ejb-refs and ejb-local refs. The SmartCC introduces a concept named Smart References. A Smart Reference extends a conventional ejb-ref with transport independence (RMI/HTTP/SOAP) and aspects like retrying, reconnecting, caching, tracing, profiling, etc. Even invocation bundeling,asynchronous invocation, invocation recording and replaying are possible.
Unfortunately not all imaginable interceptors are implemented as yet, thus I need your help ;-)
SmartCC is available for free at http://smartcc.sourceforge.net.
-
Smart Client Container v 1.1 Has Been Released (8 messages)
- Posted by: Holger Engels
- Posted on: June 18 2002 06:16 EDT
Threaded Messages (8)
- Smart Client Container v 1.1 Has Been Released by Rodolfo de Paula on June 19 2002 12:13 EDT
- Smart Client Container v 1.1 Has Been Released by Dain Sundstrom on June 19 2002 14:06 EDT
- Smart Client Container v 1.1 Has Been Released by Tobias Grasl on June 19 2002 15:52 EDT
- Smart Client Container v 1.1 Has Been Released by Holger Engels on June 20 2002 02:18 EDT
- Smart Client Container v 1.1 Has Been Released by Frankie Bollaert on June 21 2002 05:56 EDT
- Smart Client Container v 1.1 Has Been Released by Holger Engels on June 21 2002 08:58 EDT
-
Smart Client Container v 1.1 Has Been Released by Frankie Bollaert on June 21 2002 10:02 EDT
- Smart Client Container v 1.1 Has Been Released by Holger Engels on June 24 2002 03:56 EDT
-
Smart Client Container v 1.1 Has Been Released by Frankie Bollaert on June 21 2002 10:02 EDT
- Smart Client Container v 1.1 Has Been Released by Holger Engels on June 21 2002 08:58 EDT
-
Smart Client Container v 1.1 Has Been Released[ Go to top ]
- Posted by: Rodolfo de Paula
- Posted on: June 19 2002 12:13 EDT
- in response to Holger Engels
UGHH ! I have been planning to write my own stuff to get this kind of features so i am very anxious to see smartcc.
Unfortully I could not acess any SourceForge project since yesterday. Anybody knows whats happening ?
Thanks
-
Smart Client Container v 1.1 Has Been Released[ Go to top ]
- Posted by: Dain Sundstrom
- Posted on: June 19 2002 14:06 EDT
- in response to Holger Engels
JBoss already has a client interceptor stack implementation in JBoss 3.0 (this is how clustering works). It works automatically when you lookup a bean in JNDI, you get an entire serialized client interceptor stack.
I'm sure Holger is aware of this, as I see him regularly on the JBoss list. -
Smart Client Container v 1.1 Has Been Released[ Go to top ]
- Posted by: Tobias Grasl
- Posted on: June 19 2002 15:52 EDT
- in response to Dain Sundstrom
" JBoss already has a client interceptor stack implementation in JBoss 3.0 (this is how clustering works). It works automatically when you lookup a bean in JNDI, you get an entire serialized client interceptor stack.
"
Your point being ...? -
Smart Client Container v 1.1 Has Been Released[ Go to top ]
- Posted by: Holger Engels
- Posted on: June 20 2002 02:18 EDT
- in response to Dain Sundstrom
Well, yes. My first idea was, to integrate this into jboss directly. Actually I started writing a deployer for application-clients. Unfortunately I didn't have the time to continue this. The ultimate basis for a client container would be the jboss core. However the configuration of the smartcc and jboss work different. In jboss it's the component, that is provided with the interceptor configuration. In the smartcc you configure the edges between the components: a component is deployed once and can be accessed through several "smart references" with different connection-properties.
Holger -
Smart Client Container v 1.1 Has Been Released[ Go to top ]
- Posted by: Frankie Bollaert
- Posted on: June 21 2002 05:56 EDT
- in response to Holger Engels
Hello,
I am particularly interested in the caching. But I could not find any information about it...
Where could I find some detailed description?
Thanks -
Smart Client Container v 1.1 Has Been Released[ Go to top ]
- Posted by: Holger Engels
- Posted on: June 21 2002 08:58 EDT
- in response to Frankie Bollaert
As of now, a caching interceptor is not implemented. But it's very easy to implement custom interceptors. Have a look at org.smartcc.TracingInterceptor, to get an idea, what an interceptor looks like.
Holger -
Smart Client Container v 1.1 Has Been Released[ Go to top ]
- Posted by: Frankie Bollaert
- Posted on: June 21 2002 10:02 EDT
- in response to Holger Engels
If I get it right, you mean that you can cache the result of the individual method calls. So if you would call a getName() method on a Person object you could cache the String that represents the name.
But I was thinking more along the lines of the value design pattern. Where you could do some modifications to an object, and then send all the modifications to the server at the same time. But I think that this Proxy mechanism can only commit every change separately.
You would have to write the saving logic separately (with a Command pattern, or just a simple Session method).
Or am I missing something?
-
Smart Client Container v 1.1 Has Been Released[ Go to top ]
- Posted by: Holger Engels
- Posted on: June 24 2002 03:56 EDT
- in response to Frankie Bollaert
I personally prefer invocation bundeling to the value design pattern. Use an interceptor to bundle a bunch of invocations into a single remote call:
try {
((Bundle)p).begin();
p.setFirstName("foo");
p.setLastName("bar");
...
((Bundle)p).end();
}
catch (TransactionRolledBackException e) { ... }
this should be feasible for all invocations with a return type of void. However, this would require the smartcc to be extended a little bit:
1. There needs to be a server side interceptor (not supported now), that unbundles the invocations and invokes them in one user transaction.
Should be very easy .. just an issue of configuration.
2. There neeeds to be a mechanism, that allows to provide arbitrary interfaces (Bundle) for the dynamic proxy.
Also just an issue of configuration.
If you implement it, i'll include it in the next release!
Holger