A right communication mechanism

Hi, all,
Here is a situation for a client/server application:
the server coded in C++;
a client is needed, but not browser since its UI is not rich enough.
I'm thinking about to have Java client distributed and launched by Java Web Start. The rest of question is the communication mechanism.
The followings are the choices I can come out:
socket - go through a firewall? need JNI on the server side?
RMI - performance? need JNI on the server side?
http protocol - need Java web server. JNI on the server side.
SOAP - Is it suitable for a non-complex application?
Any suggestions?
Thanks in advance.

The answer to your question depends on the following:
1. How complex is the C++ server's API?
2. Is the API DCOM, CORBA, what?
3. Is the server behind a firewall? Is it exclusively intranet, or should it be exposed externally?
socket - go through a firewall? need JNI on the server
side? Socket are always "fine" -- they are the foundation for most RPC protocols. But you would have to roll your own protocol, which may or may not be satisfactory depending on the complexity of your API i.e., you probably need client-side Java stubs of some sort representing the interface[s] in your server API as well as Java versions of classes used for the arguments in the API. The stubs would be responsible for marshalling calls to the server -- serializing the arguments e.g., in XML. The server, then, would need to process the socket calls typically using skeleton API classes to deserialize the args and call the existing APIs. Of course, SOAP much of this nastiness already and is also firewall friendly -- HTTP.
RMI - performance? need JNI on the server side?RMI/IIOP is fine if you don't mind CORBA and aren't concerned about firewall issues.
http protocol - need Java web server. JNI on the
server side.Unless your API is terribly simple, use SOAP if you are considering HTTP...
SOAP - Is it suitable for a non-complex application?Unless your server is and always will be internal/intranet-only, SOAP is probably the most reasonable solution.

Similar Messages

  • I have an Mac OS X version 10.6.8 am i in right community?

    I have an imac version 10.6.8 and wondering if i am in the right community....how do i run a tutorial DVD with a file that ends .inf

    There are a lot of file types that end in .inf according to:
    http://filext.com/alphalist.php?extstart=%5EI
    My recommendation would be to right click the file and choose "Open With" and see if you can find an app to open it with. If we knew where the file came from and what it was then we would at least have a clue.

  • What is the right Community for Questions about Adobe LiveCycle Workbench?

    We purchased Abode LiveCycle Premium Print. It included a product called StreamServe which we planned to use to merge xml templates, data, and call a StreamServe webservice to generate a pdf file. It seems theStreamServe webservices are not up to that job but I suspect that Abode LiveCycle Workbench may be able to do what we want.
    Bottom line: I can't determine the proper community\newsgroup to send the above issue to. Help!
    Bill

    <moved from Adobe Creative Cloud to LiveCycle Workbench>

  • Right transmission medium and communication in output determination

    Hello Gurus,
    I defined a new output type for shipping, wrote a requirement, but I don't know which transmission medium should I define in the output type and the right communication definition in the condition records.
    I need this output to execute a program that calls a "proxy to file" method (interface).
    Each transmission medium I used caused me a dump, so eather the program the ABAPer gave me is wrong, or my definition is wrong.
    Regards,
    Daphna

    Apologies for previous response.
    General for these kind of requirement. it could be either 1-Send with periodically scheduled job & 2-Send with job, with additional time specification as Dispatch time with either 5(External Send) or 6(EDI) or 7(simple mail) as Transmission Medium.
    Don't forget to maintain relevant communication strategy, say, WEBM-Send external mail in communication method.
    Regards
    JP

  • JMS server communication

    Hi
    Iam new to JMS. Iam using Jboss as app server and ubermq as jms provider.
    My requirement is to use 2 jboss servers on two machines and one ubermq instance on another machine.
    changes made by imap client connected through one jboss server shall be notfied to imap client connected on another jboss. But it is not working.
    it is working fine for the clients connected on same jboss instance.
    I didn't understand how the remote server is identified by ubermq. Or i don't i misunderstood the jms communication mechanism
    Please help how to configure two jboss instances to one jms provider.
    Thanks

    I have 2 stand alone servers and I want them to send and receive messages to each other through JMS. Is uniform Distributed destination a good idea for the same?
    I heard that UDD requires a cluster to keep it running. Is that right?
    Also do let me know if we need separate licensing for JMS clustering?
    Thanks!

  • ISE - Unable to get SNMP information with the community

    this is the output on the switch when clicking on a switch interface in authentications monitoring in ise
    test2#sh snmpChassis: FOC1330W1K0112 SNMP packets input    0 Bad SNMP version errors    4 Unknown community name    0 Illegal operation for community name supplied    0 Encoding errors    44 Number of requested variables    0 Number of altered variables    44 Get-request PDUs    0 Get-next PDUs    0 Set-request PDUs    0 Input queue packet drops (Maximum queue size 1000)143 SNMP packets output    0 Too big errors (Maximum packet size 1500)    0 No such name errors    0 Bad values errors    0 General errors    108 Response PDUs    35 Trap PDUsSNMP global trap: enabledSNMP logging: enabled    Logging to xxx.xxx.yyy.5.162, 0/10, 7 sent, 0 dropped.   (admin/monitoring)SNMP agent enabled
    config of snmp:
    snmp-server community snmp-com.public RO 33access-list 3 permit xxx.xxx.kk.0 0.0.0.255access-list 3 permit xxx.xxx.zz.0 0.0.0.255access-list 3 permit xxx.xxx.yyy.0 0.0.0.255 (admin/monitoring)
    Unknown community name keeps rising when I click on the switch interface name in ise ... any suggestion ?
    Snmp is configured for the switch added to ise with the right community name (v2c - snmp-com.public )
    Ise ver 1.1.2.145
    thank you for your help

    thank you for your feedback and yes the acl in this situation is the only secure option
    once again... it's a shame that a security appliance forces you to use unsecure passwords and protocols..
    marking your answer as correct
    hopefully this thread will help others
    thank you again

  • Socket communication in Oracle triggers

    Hello,
    I'm developing an application that queries an Oracle Database to check if a certain field has changed. I've programmed a timer that every 5 minutes queries for that field.
    I would like to know if it is possible to do the opposite. I mean, instead of being the application the one who checks for the field, I would like to know if it is possible to create a trigger that once the field has been updated it would create a socket to communicate with the application.
    If that is possible, could someone explain how to do that or show me some examples??
    Thanks in advance!!!

    in my case I have my "listening" application in a different machine than the oracle database and it is programmed in C# so I don't know if that could be a problem....Not a problem. Use the database as the transport/communication mechanism between that C# program and the trigger events in the database.
    Why?
    The database has all the goodies for you - multi-processing, concurrency, locking, transaction isolation, scalability, etc.
    So do not have a process in the database making a socket connection directly to your C# process. This increases the complexity as you are now running clients inside the database server that makes uses of servers external to the database. More moving parts. More layers. More things that can (and often do) go wrong.
    Instead, have the trigger queue events for the C# process. Have the C# process connect to the database, and dequeue events for it.
    Scalability. If the single C# process cannot handle the dequeue load, or you need failover and redundancy and high availability, you can fire up multiple C# processes to deal with the dequeuing and servicing of events.
    None of this will be do-able using the C# process as a TCP server and attempting to write TCP client processing into Oracle server processes that are servicing client sessions.
    IMO it comes down to basic client-server concepts and software engineering fundamentals.

  • Psp communicat​ion mechanism

    in our project, we use SVE as opc client to get real-time data
    from a third-party opc client(through shared variable data
    binding),meanwhile SVE also act as opc server, distribute the
    real-time data to  other pcs, see attached picture. but SVE behavior seems stranges,
    sometime real-time data can be distribute to other PCs very
    fast, sometime very slow, take a few minus, and even worse, PCs
    tatolly can not get the real-time data. the SVE seems very
    unstable
    search for ni website, can not find anything about the psp
    communication mechanism, what's psp service locator, how the
    psp works?
    how to solve it?
    thank you very much
    Attachments:
    SVE.GIF ‏8 KB

    This could be a situation where the core problem is a new technology that isn't ready for "prime time". I remember when data sockets first came out they sounded wonderful. The only problem is that they didn't work very well. Over time the problems were worked out and data sockets are now a usable technology. Perhaps you should consider restructuring the application to utilize more proven techniques like VI Server and User Events.
    Mike...
    Certified Professional Instructor
    Certified LabVIEW Architect
    LabVIEW Champion
    "... after all, He's not a tame lion..."
    Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps

  • I have a 27inch iMac, is this classed as a iMac (Intel) within the community?

    I have a 27inch iMac, is this classed as an iMac (Intel) in the. Community? It's just that I want to post a problem, but want to be sure I'm posting to the right community. Thanks in advance.

    Thank you for responding so quickly. My problem is that when I turn on from the power button, the system starts up and gets to the logon screen. I enter my password (I am the administrator) , the screen then goes white with the apple logo in the middle of the screen and the circling (like a clock face) appears. This goes on for about 45 seconds then a 'no entry' symbol with a gear cog underneath appears. I cannot get any further. I am trying to follow the manuals advice. When I use Mac Os X Utilities to repair the drive,I have two main drives appear, one is my hard drive ( which is greyed out-and will not let me repair) The other is a SATA drive, I'm not sure what this is but the repair found a fault that it couldn't repair. I then thought that maybe I need to re-install Lion, but I'm not sure which drive to choose? Also when I try to do a recovery from my external hard drive, it cannot find any drives to use???
    I am now wondering if my Hard Drive has died!

  • Tag engine to opc server communication protocol

    When the tag engine talks direct to a plc with modbus rtu, there is a CRC checksum built into the communication protocol to provide reliable data transfer. When the tag engine talks directly to an opc server program, what protocol is used?? Is there any kind of checksum to verify data integrity??

    OPC Client to OPC Server communication protocol is based on Microsofts DCOM architecture, which is an object model oriented communication mechanism based on RPC (TCP/IP). I as know, there is no checksum verification specifically as known in PLC protocols. However, there are some mechanism to support fault tolerance better. (see DCOM Technical Overview, section, Fault Tolerance)
    You could find more info from Microsofts MSDN library e.g. Serach from MS MSDN Library on "DCOM", or DCOM Overview.
    The OPC specification could be downloaded from the ion.org>OPC Foundation, specifically you could find a white paper on OPC, DCOM and Security as pdf file.
    Hope this helps
    Roland
    PS: If someone needs more info on Modbus specification you might find it on Modbus.org

  • Which community for Mail questions?

    Mail is not listed as a community and wherever I did post a Mail question, I got zero response.
    So which is the right community to post in?
    Thanks,
    Raphael

    Thanks.
    I can't figure out how to get there. Would you lay out the path for me please?
    Thanks,
    Raphael

  • Oracle/Taleo Learn (LMS) - is this the right forum?

    I am a new database admin for a Taleo Learn system.  Am I in the right community forum for this system?  If so I have a few scenario questions to post to this group.

    Hi Edward,
    You could also ask the question in the forum below:
    http://social.technet.microsoft.com/Forums/msonline/en-US/home?forum=onlineservicessharepoint
    Regards,
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
    [email protected] .
    Rebecca Tu
    TechNet Community Support

  • Create Thread on Photoshop Plug-in

    Dear All,
    Right now, I am developing a demo Photoshop plug-in software to understand the way to implement Photoshop plug-in. However, I meet a issues that I can not create a Thread on Photoshop plug-in by CreateThread() API. I implement as below:
    Main function:
    CreateThread( NULL, 0, Test1Thread, NULL, 0, NULL);
    Thread function:
    DWORD WINAPI Test1Thread(LPVOID pParam)
    /*Do something*/
    return 0;
    When I compile and load plug-in on Photoshop, it show an error message like this:
    The instruction at "0x09fd100a" referenced memory at "0x09fd100a". The memory could not be "read"
    Click on OK to terminate the program
    Click on CANCEL to debug the program
    Can you give me some suggestions that I can create a Thread by CreateThread() API on Photoshop plug-in or not? And how can I create Thread?
    I am looking forward your answer.
    Thanks for your help,
    Hieu Nguyen.
    PS: I am developing on Window OS and Visual C++ development tool.

    Thanks Aandi Inston and Marcus Phillips for your answer.
    In thread I just use Named Pipe inter-process communication mechanism to send signal to the other application. So I do not use any Photoshop API.
    However, it is strange that I can not put my Thread in begin of PluginMain function:
    DLLExport SPAPI SPErr PluginMain
    ( char* caller, char* selector, void* message)
    SPErr error = kSPNoError;
    SPMessageData *basicMessage = NULL;
    SPPluginRef plugInRef = NULL;
    SPErr err = 0;
    basicMessage = (SPMessageData *) message;
    sSPBasic = basicMessage->basic;
    gPlugInRef = basicMessage->self;
    MyThread();/*CAN NOT RUN THE THREAD!!!!*/
    I must change my Thread function to position after checking caller parameter
    Please show me the reason why?
    Thanks,

  • Server-Process-Programming

    hi,
    i like to develope a server-process. a server-process should have the possibility for the following commands: start, stop, reload, restart.
    but now i stand for a simple question: how can i communicate between 2 different java-programs? why? simple example:
    1. start a server-process:
    # java -jar myproc.jar start
    2. stop a server-process:
    # java -jar myproc.jar stop
    the 2nd java-proc should notify the first to stop, but how, without a file-solution?
    exist there a poss. to comunicate over input-streams between 2 java-progs?
    thx for ideas
    oliver scorp

    You have 100 processes running on your box on startup? And all of them allow you to stop and start them?
    Isn't one of those processes the one that allows you
    to access the hard drive? What exactly happens when
    you stop that?
    ah, a unix-newby!Again what happens when you stop the processes that allow you to read and write to the hard drive?
    >
    ... I would guess that most processes in standardunix box start up configuration do not allow you to
    start and stop them from the command line ...
    what a shit! for ex. look in your
    /etc/init.d/-directory! there you can see the most
    deamons/processes which you can start/stop aso.
    manually on the commandline. (driver-modules
    included)And you can use kill -9 on them as root as well right? But if you do you might as well hard boot the box, because nothing is going to work after that.
    >
    ... What can I say. You can always use C ...really?! what a surprise! or maybe i write it in
    visual basic?!
    ... And what Java API do you use to communicatebetween different processes on a linux using pipes?
    pipes doesn't work between different jre/processes!A named pipe doesn't work between different processes?
    >
    ... Because not all platforms have a process id. Andnot all platforms provide a communication mechanism,
    like pipes, between processes ...
    that's wrong!No it is right. See the part where I said platforms? Java works on other platforms besides unix.
    Win 9x does not have process ids nor do they have pipes.
    >
    1. the sun-developer had implemented a process-class
    but doesn't finished it. you can create new processes
    in java (with .exec) but you can't create an own
    process-object from the running jre. and you can't
    share this process-objects between diff.
    jre/processes.Eh?
    >
    2. every thread has an own id.
    with other words: the mention of java is: when the
    system gives not the necessary infos then java create
    it.
    Again eh? Are you claiming that a thread id is the same as a process id?
    3. which os doesn't use pid's? every
    multitasking-system has a process-management for which
    they have implementations of unique process-id's
    (numeric or alphanumeric)
    Nope, not win 9x.
    that's typical ...
    ... many words with no solution!
    this can be only a troll!
    so, please go to your hole!Hmmmmm....no one ever called me that before
    >
    for all other: i am searching for quickanddirty MEMORY
    or STREAM/PIPE-solution between DIFFERENT
    JRE'S/processes in JAVA and maybe for already
    implemented c/jiny-solution.
    but please don't tell me to do it with
    net/file-sockets (what is if you don't have a network
    (by net-socket) or what is if you have no rw-access
    (by file-solutions)). i know this ways but i am not
    looking for.I covered all of them. Presumably with your expertise you know how to use google so I would expect that you should be able to find a public domain soluton for your particular OS if it exists.

  • Painful slow active X ????

    I tried to use the automation vi's to access a large database application.
    One dataset can be as large as 20000 double's and the database ole interface
    only allows to access one number at a time. The sample programs for excel
    and word run rather quickly but my labview code requires about 20 times more
    excectuion time. Any ideas how to improve things? Are the ActiveX vi's that
    slow?
    klaus
    (labview6.x)

    If OLE interface mentioned is so stupid and doesn't allow to get numbers in a reasonable quantity and speed, I'd suggest to search for another database application communication mechanism. Say, storing data to file or send through another communication channel like TCP/IP, DDE or anything else. This may be faster.
    Generally there is LabVIEW SQL toolkit from NI and it's manual describes the right way of accessing database data in M$ Windows.
    http://www.ni.com/catalog/pdf/1msw094_097a.pdf
    http://digital.ni.com/manuals.nsf/7aba4d4ed8d9fa958625663500505c98/e2f21bc9809714f28625665e00635879?OpenDocument
    Comment: When asking such a question, don't keep in secret the name of your database application and some additional details, and you'll get much more chances
    to get the right answer.
    Best Regards,
    Sergey

Maybe you are looking for