How to create Agent and migrate it to Remot host? - java

I am looking to create Multi-agent systems based focused crawling. I have seen different mobile framworks such as Aglet, JADE, etc,. My work is want to create a number of agent at resident Local host and want to move it with parameter to resident Remote host. My question are, which framwork should I used to create agent? and how to create agent and migrate it to remote host via middle agent. please give me some example code how to create agent and migrate it. Thank you.

Take a look at Mobility-RPC, there are examples to do this on the front page.

Related

How to deploy my Dynamic web project on internet

I am working in my final year project and I created a web service in a dynamic web project using eclipse JEE, tomcat 8.5 and Axis 2 ( all this is running in Ubuntu 16). this web servicie calls some programs that are installed on a computer ( Matlab for instance) so I need this computer to host the Web Service. This web service works fine in local host ( I created a client to check it) now I need to do the next step. how can I deploy this web service on internet? ( NO localhost), There is any tutorial or documentation to do something like this? The computer where I am working is of my university so it is connected to the university network.
I have read that I need a WAR file, I know that if I right click my project and the select export it says "WAR file", this war is going to have all the references and .jar that I added ? ( I am afraid of this because I neeeded to add some .jar and also some native library locations to them) Also I know that I need to have a Statc IP instead of a dynamic one. how can I achieve it if I have no access to the university routers?
Thanks for your help.
If you want your own domain, then you will have to buy a domain if you want to be on internet. There are website like GoDaddy or BigRock, that provide domains.
If you are doing it for testing or demonstration purpose, you can use NGROK tool. This tool will provide a domain over internet (something like http://.ngrok.io), that will be mapped to your localhost. The domain can be customized if you are using paid version.
ngrok.exe http 8080
OR
ngrok.exe start -config="config.yml" config-name
config.yml
http_proxy: ""
log: ngrok.log
tunnels:
config-name:
proto: http
addr: 8080
As you stated you need a "computer to host the Web Service" on internet, as you also have the constrain to use specific libraries so you cannot use a "ready-to-host"(paas) solution like heroku because you wouldn't have access/control to the computer hosting your webapp. The only solution I know to deal with that is VPS hosting (https://www.ovh.com/us/vps/) with that you can "rent" a remote computer (with ubuntu 16 if you want) and have total control on it for example you can install whatever native library you want on it, and also any servlet container/web server you want like you would on your local computer.
But then your web service will be on internet, which is "outside" the university network, if you need to access some data/services only accessible from the university network, you cannot use this solution unless you have a special (and secured) access to connect the university network via VPN for example but you'd have to ask to your university if something exists in the university network to allow traffic coming from internet (which I suppose is not the case...but you can still ask to the IT department of the university). Anyway, what you want to do cannot be achieved the "easy-way", lot of work foreseen to have something like this working. If it's a university project, maybe it should stay inside the university network.

Using Fax4J With Multiple Fax Modems?

Can anyone give me a quick rundown on how to send faxes in Java using Fax4J? The tutorial provided by the javadocs is sketchy at best. In particular, it doesn't teach you how to specify which fax modem you are calling; it only says FaxClient faxClient=FaxClientFactory.createFaxClient(); but how does it work?
I downloaded the full fax4j code, and I noticed some files called FaxModem.java in there. How are those used?
For someone who actually authored fax4j, cant agree with the comment about the tutorial because i am not sure you read it.
The factory is explained returns a client which is backed by an engine called spi.
There are many different spi types.
Some would use windows native api, some would run a process, others would send emails and http requests to remote providers and it is all based on your fax4j configuration.
All cofiguration options possible are detailed in the tutorial so for example if you want to send an email to spcific mail server that converts it to fax ypu would set email address and other needed properties in your fax4j.properties file.
So based on the way you are sending requires different config and its all in the tutorial.
However you didnt write how you want to send and of course fax4j doesnt support everything.
I think the main bulk of users use the windows native api spi so they actually dont configure anything for fax4j and instead configure the fax settings in their windows machine and thats it

Extern access to a Java EE webapp

When developing a Java EE 7 webapp (Win8, eclipse Kepler, JBoss Tools 4.1.1, wildfly8.0CR) I can use the application at localhost:8080/app/
But I wonder what to do, if I want an extern access to that app, e.g. from my other PC. What configuration is needed, or do you need a "real" server for such a purpose?
Thanks in advance
How public to you want your website to be?
If you want to access it from another computer on the same network(for example your home network) you need to adjust your network and firewall settings so that that you would have access from one computer to anoher on the same network. Then if on the computer that contains the app you would access it for example http://localhost:8080/myapp then on another network you would access it http://ip-of-the-comuter-that-contains-the-app:8080/.
If you would like to access it from outside the local network then the process is same, but a static IP would be recommended to the computer that contains the app.
If you would like the general public to use the app, then hosting it from your PC may not be such a good idea and somekind of server solution is adviseable. There are lots of different cloud solutions like http://aws.amazon.com/ec2/ or https://developers.google.com/appengine/ that would provide enough flexibility for majority of apps. Or you could ofcourse have your own server hardware, but this can turn out to be much more expensive to keep stable and secure.
For a quick-and-dirty solution you can choose the "Enable remote access" option on the server (double click the server, and you should see a check box in the server editor).
This will tell the server to start listening on all network interfaces and not just the local one.
btw. we only listen on local network interface by default for security reasons since we don't want you to unintentionally get hacked if a vulnerability is found and used by someone malicious.

Integrate IM/chatting functionality in my Java application

I am interested in putting a chatting functionality as part of an application.
What I am interested in:
I would like to keep my application instances acting as peers, i.e.
I would prefer not to write also some server module to handle
message communications
I would like it to be able to use it with exising IM accounts. E.g.
someone can use it using his MSN account or any other client
account he may have, same way he would use MSN Messenger or Tor client etc
I googled and found that there are some Java MSN libraries available and also some other libraries that support IM e.g. SMACK for JABBER etc (not sure what that is) but I am not sure if the latter could be used for option 2 I mention.
My preference on 2 is because I assume that this way a user could do chat no matter where he is while in other solution I assume that some network infrastructure e.g. with routable IPs etc would be required. Am I wrong here?
Does anyone have expererience with Java IM libraries? Are for example any issues e.g. with different MSN versions or something?(Don't know if the protocol has been changing often to matter for me).
What would be the best path/option for my requirements?
I would go with a Jabber based approach. Jabber (also called XMPP) is an open protocol with lots of implementations and supports connecting to other IM services via transports. That way you would not have to deal with changes to the Windows Live protocols. You can rely on the open source community to provide that functionality for you.
Edit: It seems, that Windows Live even allows native XMPP access.
If you like, you can always set up your own Jabber server to provide a tighter integration with existing user accounts. In that case you wouldn't need to write the whole server.

How to put Java program online?

I am learning Java and am trying to do some experiments with networking Java programs.
I have a program made in 2 parts with a client and a server and it works in local testing but the program actually has usefulness for me and a friend of mine and I want to put the server online so both of us can connect to it and use it.
Where/How can I put the program online and have it running so that the client programs can connect to the ServerSocket with an ip address? (Preferably free)
If you dont want to pay server hosting then I would open a virtual server on my computer, then playaround with modem and forward related port to server ip. I would use a port more than 40000. Then just send your ip and port your friend or update application.
If you really want the application to go live within 5 mins, try Jelastic. If you have built a WAR file, simply sign up with their server,choose a provider closest to your geo location, configure Tomcat and you can upload the WAR file through their fantastic web console. Otherwise if you have some source control system(SVN,GIT etc), you just connect and build it with their Maven console and you can be ready. I used it for my start up(Cloudlabz) and really found it exciting.
Surya
You could also consider the cheapest Rackspace Cloud Server. You'll get a full fledged Linux server (distribution of your choice) for about USD 11/month. I've done that now and then myself to try things out.
Just install Java on it and you're good to go.
http://www.rackspace.com/cloud/cloud_hosting_products/servers/pricing/
http://ideone.com/
is that what you want for this?
This is a free web app for you to run your program online....so you can just paste your code and run it.
On the cloud you could use two different services in order to host your Java application.
IaaS (Infrastructure as a Service). Where you can just rent a specific infrastructure on the cloud and you could install and configure all the services that you need.
PaaS (Platform as a Service). In this case, you still enjoy the infrastructure on the cloud + the service Aaren full pre-configured. It means that you can deploy your application without installing or configuring anything. You just need to deploy your application. You have an example about how it works here. Also, you usually can test your Java apps on the cloud without paying.
You should host the server in Heroku ,they offer a free hosting with limits , I have an app there

Categories