Link to home
Start Free TrialLog in
Avatar of javaCaravan0
javaCaravan0

asked on

How to fetch data from a digi cell modem device via Java

I am new and want to lear how real time communication takes place and how can I implement it. Let me explain the objective.  

I want to write a program in JAVA that will connect to a remote assets let's say TRUCKS. (The big trucks that carry cargo) Trucks have a digi device (cell modem)  installed which is connected to the onboard computer (via a serial port, each truck has a computer).
All the event logs, status messages etc. are on the computer. I will need to connect to the Digi (cell modem) device by sending the IP address and the port. For example, I will need to send a command "connect me to  this IP at this port.
The commands/messages that I send to the Digi device (cell modem) will be relayed to the computer and responses from the computer will be sent by the  Digi (cell modem) to my Java program which will put them in a queue.

I need to talk to the Digi device. Let's say there are 1,000 truck. I will perhaps need to store 1,000 IP and port #s in the database. My java program will pull the IP and port info from the database and send 1,000 command to 1,000 unique trucks.

Let's say, we need to downlaod event logs/status messages from 1,000 truck every 15 minutes. So I will need to send a command to the Digi device (cell modem) everything 15 minutes for all 1,000 trucks.

How can I write such program to fetch data from a digi cell mode, device?
I can use one of the following protocols:

XMPP (Jabber)
HTTPS
SSL
Secure FTP
Secure MQ

I would like to know which one should I choose and why? (I am looking for recommendations).
ASKER CERTIFIED SOLUTION
Avatar of AlexPace
AlexPace
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of javaCaravan0
javaCaravan0

ASKER

AlexPace:

Thank you for taking time and writing a detailed response.

Let me make few things clear:

About the onboard computers on the trucks: These are proprietary boxes with a processor probably running on Linux.

The java application that I need to write should send commands/messages to get the data/messages from the truck using digi cell modem and the messages must be put in a signle queue (or may be in a single folder). The messages will be picked from the queue/folder for processing/diagnosis and displaying reports/health/alerts on a customer facing web portal.

I would also like to know what will I need to do to remotely connect to digi cell modems to pull the data/messages from the turck.

Thank you
This will be much easier if you flip the communication paradigm on its head such that each truck "calls home" every X minutes.  Upon connection the truct will upload its status and download any  commands/messages.  This could approach near real-time for sufficiently small values of X... of course it could also be a monsterous waste of bandwidth if you only NEED to contact the truct rarely.
You might also look into the Amazon Kindle "whisper net' which uses 3g cell technology to deliver eBooks to the little eReader computers.
It would have been ideal if i coud Flip the communication paradigm but that is not my choice. So please discuss/suggest solution for as-is requirement.
It seems like it might be expensive to leave all the connections up all the time.

On the other hand if you are only sending commands every 15 minutes anyway then its not real-time anyway so it shouldn't matter which side initiates the connection.