As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I am trying to solve the age old problem of interprocess comms, specifically for a client server model where the client is GUI.
I have looked at Chronicle and although it can serialize objects, it lacks in the features of RMI. It can pass POJO's but cannot run methods. Rather than blend the two or not use RMI at all and write a protocol to handle Chronicle comms to implement method calls I am looking for the modern alternatives.
Looking around Cajo seems to be a good fit, however it seems little active development is happening.
Then again Akka also seems to fit the bill but I cannot find much comparison between the two on the net.
What library is a good fit for the problem, and will be supported well into the future?
EDIT:
After refrencing the docs and comments here I have more questions.
http://www.javalobby.org/java/forums/t101131.html?start=15
Is Cajo obsolete now due to updates in RMI or is it still an easier to use alternative?
If your distributed processes are Java then why don't you want to use RMI? In any case what do you mean by modern? RMI is fast since it is just above the TCP sockets and EJB containers are based on it. Akka is for non-blocking I/O which is fast but is not the same topic as your OP.
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I have developed an application that usually runs headless as a server module.
However the tool would benefit greatly from two things:
pluggable viewers that see what is going on (easy enough)
pluggable modules by which I mean the tool can generate events and you should be able (from a client tool) to connect to the server tool and temporarily register an event subscriber which can manipulate the server behavior based on the events (in realtime, so the events are not async)
The first can easily be achieved with a http server or the likes but the modules require a persistent connection. My language of choice is java but I'd rather not go for RMI but instead opt for a language-agnostic protocol. Any ideas which protocol would be uniquely suited for this situation and which might already have an implementation in java?
Another couple of options might be Akka (www.akka.io) actors in Java and/or Camel as event distribution mechanisms. I'm an Akka guy myself.
To me, you'd write your Akka event handlers in Java and those would be your modules.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
In terms of high performance, scalability and massive concurrency for systems integration through xml data exchange, would worthwhile develop a solution with few channels and simple using Akka and Camel instead to adopt an mamut ESB solution?
I Know that apache service mix uses camel behind scenes for engine message mediation between services. But and about of performance that akka can provide
Besides not seeing a real question, I can tell you that there are several non-mamut ESB solutions available, especially in the open source environment.
It depends on what you wanna do. If you need for example monitoring and administration for your "channels", why not use a lightweight ESB (ServiceMix, Fuse, Talend, WSO2, Fiorano, ...) instead of implementing it by yourself?
Maybe you should tell us a little bit more about your problem - to discuss if a "real" ESB or Camel + Akka is the better choice...
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
What are the main advantages (and disadvantages) of using of an Application Server, comparing to a standalone application? I'm interested in Java approach mainly.
With an application server, the developer should spend time writing business logic (which delivers added-value) rather than boilerplate infrastructure code (e.g. managing transactions, configuration, security, etc.). So to me, the main argument is that using an application server should boost the productivity.
Unfortunately, the learning curve until you can unleash this productivity boost is rather long. In the worse case, misusage of application server features can even result in a productivity loss.
Also a general problem with any approach that raise the abstraction level (same with MDA, etc.), is that when something goes wrong it's harder to understand how to fix or circumvent the problem. On the other hand, if you do everything yourself at a lower abstraction level, you know how to fix problem easily but you re-invent the wheel again and again.
This is a high-level view of the concept of application server. For details about technical features of Java EE application servers, refer to the Java EE documentation or the link in the 1st comment to your question.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I'm interested in technologies(solutions) that permits Java and .NET interoperate. I have tried the following and it works but I would like to know if there are other solutions:
Sockets
Web Services (Metro)
CORBA (IIOP.NET)
Messaging (QPid)
IKVM
Does anyone know other technologies(solutions) that enable Java and .NET interoperate or best practices for Java and .NET interoperability?
We use Apache ActiveMQ
I've used j-Integra's stuff before on a few projects that served me well
I have been working with JNBridge tools for in-process one-way JAVA Swing UI calling .NET 4.0 back end.
The whole thing performs well but does require discipline in its management. A license fee is required, so is really only a good choice when the 2 languages have to be used together.
Check out JNBridge.
I haven't used it, but I have heard this works: http://jnbridge.com/
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I am looking for a Dataflow / Concurrent Programming API for Java.
I know there's DataRush, but it's not free. What I'm interested in specifically is multicore data processing, and not distributed, which rules out MapReduce or Hadoop.
Any thoughts?
Thanks,
Rollo
You might try gpars; it apparently has implementations of data flow variables and streams in Java even though it is geared towards providing concurrent programming goodies for Groovy.
Might try the upcoming fork/join library which will (hopefully) be in Java 7 as part of the JSR 166y update.
Main project page:
- http://gee.cs.oswego.edu/dl/concurrency-interest/index.html
Pointers to lots of links about what it is:
- http://tech.puredanger.com/java7#jsr166
Does the built in Java concurrent package meet your needs? It's a very nice package, built in ThreadPools, CopyOnWriteCollections, Executors, Future. We use it to process large volumns of data in thread pools.
https://github.com/rfqu/df4j is simple but powerful dataflow library. If it lacks some desired features, they can be added easly. It can exploit java.concurrent.ExecutorService.