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.
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 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.
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 10 years ago.
I am interested to build a mail service that allows you to incorporate custom logic in the your mail server.
For example, user A can reply to helloworld#mysite.com once and subsequent emails from user A to helloworld#mysite.com will not go through until certain actions are taken.
I am looking for something simple and customizable, preferably open-sourced. I am fluent in most modern languages.
What email servers do you guys recommend for this?
Almost every mail server has some form of extensibility where you can insert logic in the mail-flow process, it's how some spam filters were implemented before they were built directly in to the servers. Personally, I use Exchange server which has a variety of points and APIs to extend it, such as SMTP Sinks.
However, this question is off-topic and shouldn't be on StackOverflow.
I suggest you build your own server - implementing a server-side version of SMTP and IMAP can be done by a single person, or use an existing library, it shouldn't take you more than a year if you put in a couple of hours each day.
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 11 years ago.
I have a system that the backend currently relies on Python.
Basically it has a series of scripts that will go through a MySQL database and check for certain parameters across multiple tables and then perform actions such as send emails and text messages then amend relevant cells to say these issues were dealt with. There is then another script that sits and listens on a port for UDP packets, unpacks them validates them and if they pass validation inserts them into the database and check to see if the data triggers any alarms will send an email and tech message.
My question is am I doing this the most efficient way? As I am not sure how to have a system of checking to see if the scripts are running and if not relaunch them. All of them run infinitely 24/7. Would rewriting them in Java be more stable and efficient?
There is no real way to answer either question without knowing all aspects of the system.
If your system basically have 2 scripts written in Python that perform well I don't see any reason whatsoever to change that architecture. One more consideration that I would give you to ponder is that at least one of these scripts is a support script and the guys responsible for support mostly don't care much about Java to be able to troubleshoot the code.
As far as JAVA is concerned I am not sure that you would be better off with Java then you are with Python. There is no shortage of expertise out there in either language but given what the programs are used for I'd say Python would be a better choice. If you are concerned about performance though I would look at Cython as a possiblity.
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.