NetBeans 6 delivers great updates to the Matisse GUI builder. Spend a few minutes with Roman Strobl and get an expert briefing on what's new and what has changed. (sponsored)
In this, the third and final installation of Andres' Introduction to Groovy series, you learn about how Groovy handles variable numbers of arguments, named parameters, currying, and more about Groovy operators. Including, some new operators.
Swing Fuse (actually just Fuse), is a framework designed to make it easier to create your own custom desktop components. In this article, Daniel Spiewak shows you how to get started and provides sample source code you can download.
Willam Louth shows how he uses JXInsight Probes to investigate probable performance issues with code bases that he is not familiar with. He also highlights possible pitfalls in creating a benchmark, as well as in the analysis of results.
Not sure if I can help you there.. you can find out what are the pros/cons of each JEE technology - but your boss may already know that.
My question would be why not? JBoss (and probably Glassfish, though I haven't tried) allows you to add your own services using JMX MBeans. So pick and choose which JEE services you want, and you can build your own services where suitable.
What we want to do is to have a very flexible architecture. For example one thing we want to do is this:
- a user connects to the server via Socket and sends a request to do somethig
- server processes that request and sends it back to the client. Server can send the request via RMI, Socket or JMS for example. More important responces will go over RMIO (for example), and less important responces (reports exported to PDF file) will go back via JMS.
At the same time we eant the server to be fast and to support hundreds of clients. Is this all possible ?
I think you could benefit from Grizzly NIO connector if you want to scale and need to accept connections from users. One thread per connection has a ceiling of around 2000-2500 concurrent connections (while Grizzly may have those served by just 500 worker threads). But if you are less ambitious (hundreds of users), and your CPU load comes from extensive computations/data transformations, traditional approach will still work. The pieces you mentioned: RMI, JMS, are integral parts of JEE so to avoid writing/integrating them on your own, one would choose, say, Glassfish.
Ofcourse it is possible in a JEE server. Take your three methods of request:
- JMS - provided out of the box.
- Socket - I would use an HTTP client and process the request in a servlet. Otherwise a custom service.
- RMI - Custom service.
Processing could be in a common POJO - doesn't look like you need transactions. Or in a Session Bean for scalability. Or as Denis suggested.
The trick is to encapsulate the processing logic in a re-usable way, so that it can be used by any request method.
Hmm.. Good point. So do you suggest using Grizzly on it's own?
The fact is that the server will have to make connections to the client via RMI or socket. Is this even allowed in JEE ?
So the communication will be both ways; client requesting something from the server and server sending something to the client. So both client and server can innitiate a connection.
The problem with JMS is also that in a JEE application server only JEE clients can use it, right? What if you have applications in C++, Cobol, .... and want to send something via JMS? This is just a hypothetical question and it doesn't mean that we are doing it. I'm just thinking in advance. :))
The problem with Sockets is that some clients don't have their networks opened, they give you couple of ports you can use and that's it. These ports are not necessary opened both ways.
By custom service you mean a JCA connector ?
We do need transations, but we are using database transaction to do our stuff. So when the request comes in a transaction is opened in the database and when the reply goes out the transaction is closed (committed or rollbacked). I'd personnaly want a transaction on a object basic, but without using EJBs. Our database is just too large (too many tables) to be able to maintain EJBs.
Yes, ServiceMix is similar to Mule. I just don't know which one is better or more scalable or has more components or is easier to use. :))) What I don't like about Mule is it's licence.
What do you suggest?
The documentation for service mix has been good from day one. I have only "played" with it but have been convinced for several years, since using openadapter, that this is the way to go.
Servicemix has alot of functionality, plugs easily into Geronimo and is Spring aware. It is heavily XML biased though the servingxml project is working on an adapter to support other (text) file formats.
By the way servingxml is another very valuable project if you're ever dealing with legacy systems for ETL etc.
Right. It does seem ServiceMax a better solution if you are using JEE AS. It offers pretty much the same, but I've notice that it wasn't tested in the real world. Is this true?
Their site lists no references but the user forum has over two thousand threads - there are more than a hundred created in the last two weeks so someone is surely using it.
Re: Multiuser server architecture
Have you looked at SCA, the next generation after EBS/JBI?http://www.osoa.org/display/Main/Early+Implementation+Examples+and+Tools
Re: Multiuser server architecture
why dont you take an open source architecture and build on it rather than starting from scratchRe: Multiuser server architecture
Any suggestions? What does exist out there?Re: Multiuser server architecture
Not sure if I can help you there.. you can find out what are the pros/cons of each JEE technology - but your boss may already know that.My question would be why not? JBoss (and probably Glassfish, though I haven't tried) allows you to add your own services using JMX MBeans. So pick and choose which JEE services you want, and you can build your own services where suitable.
Re: Multiuser server architecture
Seems to be some wheel-reinventing going on there - but it does look interesting.Re: Multiuser server architecture
What we want to do is to have a very flexible architecture. For example one thing we want to do is this:- a user connects to the server via Socket and sends a request to do somethig
- server processes that request and sends it back to the client. Server can send the request via RMI, Socket or JMS for example. More important responces will go over RMIO (for example), and less important responces (reports exported to PDF file) will go back via JMS.
At the same time we eant the server to be fast and to support hundreds of clients. Is this all possible ?
Re: Multiuser server architecture
I think you could benefit from Grizzly NIO connector if you want to scale and need to accept connections from users. One thread per connection has a ceiling of around 2000-2500 concurrent connections (while Grizzly may have those served by just 500 worker threads). But if you are less ambitious (hundreds of users), and your CPU load comes from extensive computations/data transformations, traditional approach will still work. The pieces you mentioned: RMI, JMS, are integral parts of JEE so to avoid writing/integrating them on your own, one would choose, say, Glassfish.Re: Multiuser server architecture
Ofcourse it is possible in a JEE server. Take your three methods of request:- JMS - provided out of the box.
- Socket - I would use an HTTP client and process the request in a servlet. Otherwise a custom service.
- RMI - Custom service.
Processing could be in a common POJO - doesn't look like you need transactions. Or in a Session Bean for scalability. Or as Denis suggested.
The trick is to encapsulate the processing logic in a re-usable way, so that it can be used by any request method.
Re: Multiuser server architecture
Hmm.. Good point. So do you suggest using Grizzly on it's own?The fact is that the server will have to make connections to the client via RMI or socket. Is this even allowed in JEE ?
So the communication will be both ways; client requesting something from the server and server sending something to the client. So both client and server can innitiate a connection.
Re: Multiuser server architecture
The problem with JMS is also that in a JEE application server only JEE clients can use it, right? What if you have applications in C++, Cobol, .... and want to send something via JMS? This is just a hypothetical question and it doesn't mean that we are doing it. I'm just thinking in advance. :))The problem with Sockets is that some clients don't have their networks opened, they give you couple of ports you can use and that's it. These ports are not necessary opened both ways.
By custom service you mean a JCA connector ?
We do need transations, but we are using database transaction to do our stuff. So when the request comes in a transaction is opened in the database and when the reply goes out the transaction is closed (committed or rollbacked). I'd personnaly want a transaction on a object basic, but without using EJBs. Our database is just too large (too many tables) to be able to maintain EJBs.
Re: Multiuser server architecture
Have you looked at servicemix? It can run inside an AS but doesn't have to; it seems to offer the connections you require (and more)Re: Multiuser server architecture
Yes, ServiceMix is similar to Mule. I just don't know which one is better or more scalable or has more components or is easier to use. :))) What I don't like about Mule is it's licence.What do you suggest?
Re: Multiuser server architecture
This may help:http://docs.codehaus.org/display/SM/How+does+ServiceMix+compare+to+Mule
The documentation for service mix has been good from day one. I have only "played" with it but have been convinced for several years, since using openadapter, that this is the way to go.
Servicemix has alot of functionality, plugs easily into Geronimo and is Spring aware. It is heavily XML biased though the servingxml project is working on an adapter to support other (text) file formats.
By the way servingxml is another very valuable project if you're ever dealing with legacy systems for ETL etc.
Re: Multiuser server architecture
Right. It does seem ServiceMax a better solution if you are using JEE AS. It offers pretty much the same, but I've notice that it wasn't tested in the real world. Is this true?Re: Multiuser server architecture
Their site lists no references but the user forum has over two thousand threads - there are more than a hundred created in the last two weeks so someone is surely using it.It seems pretty active, why don't you post there.
Sorry can't be more help