GUI for batch application

hi all,
I have a batch application that, when running, receive command and send response from DOS console.
I would like to create a GUI that interface my batch application,send command, receive response...
Anyone have suggestion or semples?
Thanks!

I am not sure what is your exact concern.
Separation into Model-View-Controller (MVC) is what you want.
Start with the console application. You can simply make 3 packages (model, view, controller), and start with a System.out, System.in app.
Then create new packages guiview and guicontroller and implement your Swing app there.
The model should be unchanged.
The controller should be readable and easily migrated.
Runtime.exec(...) might provide your access to DOS.

Similar Messages

  • Can Flash be used as the GUI for an application

    Can Flash be used as the GUI for an application (desktop software, not web based) written for the .NET framework? I want to author an application that would be perfect for flash as a the GUI, but it would need to be able to support a pretty full API for Flash and the wrapper application, written in c#, as they would be passing a lot of data between eachother, as well as getting and sending data over the web. So, can Flash be used in .NET? What kind of API does it have? Or am I stuck with the Windows look/feek thanks, 

    i'm no expert on this, but read up on Adobe Air. In the most basic terms it allows you to create flash apps that can be deployed on the desktop and will run mac/windows.
    this article here might address your exact query:
    http://ajaxian.com/archives/commandproxy-integrating-air-and-net

  • Hibernate/IBatis/JPA for batch applications

    We are planning on developing a batch application. Performace is a very critical part in this. Wanted to get some feed back upon which is the best framework for batch applications.
    This application would not have too many inserts/updates. It will have selects mainly.
    Can somebody suggest which framework is good Hibernate/Ibatis/JPA ?
    Thanks in advance
    Gautam

    Uppalapati wrote:
    duffymo wrote:
    "batch" usually means "transactional" to me. Why would a batch be mainly SELECTs? Makes no sense.
    Most people wouldn't use Java/JDBC for batch. Better to use the tools that are optimized for your relational database in most cases.
    sorry by stating that a little unclear. It is basically a stand-alone application. It reads messages as they comeby and process the messages. The processing of the messages require a lot of validations to be done (which are dependent upon a lot of parameters in the database and these would require selects). and finally based upon a few criteria's we write the data to the database. Are the validations static, read-only reference data? If so, you can read it once and cache it. Unless the SELECTs are truly dynamic and need to be made every time, perhaps you can save yourself some network traffic that way.
    Caching with Hibernate might make a difference, depending on how dynamic the validations are.
    and my reason for stating that it would have lots of selects is for the validation purpose and some inserts for updating the status.
    duffymo wrote:
    JPA and Hibernate will both require that you have an object model to map to your schema. Do you have that? If not, don't use either of those.
    I have an object model to map with and which is the reason why we are considering Hibernate/Jpa.OK, that's better.
    Either one will do, then. The advantage of JPA is that you don't have to commit to Hibernate, since TopLink and JDO will do as well. You can also use Glassfish or any other Java EE app server that supports EJB3 as well.
    How well do you know Hibernate and/or JPA? The other consideration is your level of skill. Choose the one you know best. Assess the risk if you're just learning and this is a critical project.
    Do you know that JDBC itself can't do the job?
    What other reasons do you have for going this way?
    %

  • Flash as GUI for Java application or C++ executable

    I will need to create a flash frontend for a standalone application, preferrably written in java or c++. The application is needed to access some custom hardware and flash is desired for visual appeal.
    I've been searching the web about displaying flash in java or c++, but I couldn't find anything more than unanswered questions or projects that have apparently died (like swt.flash)
    As a last resort, we could do it as a servlet on localhost, that would be accessed via http by flash running in a projector.. Or even worse, a php script accessing a java application being accessed by flash from a projector.. but that seems like a wery wide workaround.. An application hosting a swf, communicating both ways directly would be much better.
    So.. does anyone have any idea if this is still possible and if so, how?
    Thanks.

    Hi, try to read
    Note 314568 - SAP GUI for HTML functionality / Limitations / Sp. Behaviour
    and all other information directly
    SAP GUI Family
    Regards.

  • GUI for web application

    hi there!
    I wasn't sure in what category post my question but I think this will be a good place .
    I'm developing an application that takes the geographical coordinates from remote clients(through internet) every 10 seconds and display them on the map which is on the www site.Also , all the coordinates have to be saved in the database :/
    However, the problem is that I'm wondering how to do it.
    I was thinking about struts application but how to make the superposition of the images ? . Perhaps I should use an applet? Perhaps I could create an web service?
    Have you got any ideas??? I'm really confused :/
    Thankx a lot java bros! ;]

    the problem is that I need to create this application(s) in Java and the main app need to have a constant connection with around 40 clients in internet that send data every minute.. I have decided to create a Struts app. Servlet will use Graphic library to render image and send back to the browser map with all the neccesary objects on it.
    thankx ,anyway,

  • How to create a Batch file for java application  ?

    HI,
    How to create a Batch file for java application ?
    And whats the use of creating batch file ?
    Thanks in advance

    [http://static.springsource.org/spring-batch/]
    Assuming you want to develop a batch application rather than actually just create a .bat file ..

  • HOw to create a Batch file for java application and whats the use of this ?

    HI,
    How to create a Batch file for java application ?
    And whats the use of creating batch file ?
    Thanks in advance

    First of all, you're OT.
    Second, you can find this everywhere in the net.
    If you got a manifest declaring main class (an classpath if needed), just create a file named whatever.bat, within same directory of jar file, containing:
    javaw -jar ./WhateverTheNameOfYourJarIs.jar %*By the way, assuming a Windows OS, you can just double click the jar file (no batch is needed).
    Otherwise use:
    javaw -cp listOfJarsAndDirectoriesSeparedBySemiColon country/company/application/package/className %*Where 'country/company/application/package/' just stands for a package path using '/' as separator instead of '.'
    Don't specify the .class extension.
    Javaw only works on Windows (you asked for batch, I assumed .BAT, no .sh), in Linux please use java.exe (path may be needed, Windows doesn't need it 'cause java's executables are copied to system32 folder in order to be always available, see PATH environment variable if you don't know what I'm talking about) and use ':' as classpath (cp) separator.
    The '%***' tail is there in order to pass all parameters, it only works on Windows, refer to your shell docs for other OSs (something like $* may work).
    This way you have a command you can call to launch your code (instead of opening NetBeans just to see your app working). You could schedule tasks on it or just call it in any command prompt (hope you know what it is 'cause there have been people in this very same forum with no clue about it, if not just hold the 'Windows button' and press 'R', then type 'cmd' and run it).
    Finally add dukes and give 'hem away.
    Bye.

  • Recommendations for a simple, fast GUI LAN chat application? [Solved]

    We now have 4 ArchLinux machines scattered throughout the house. (My wife is an Archer now!). I am looking for a simple fast GUI LAN chat application. I looked at "qchat" but it is a bit cumbersome and doesn't have the option of a small applet to the panel. Any recommendations appreciated...
    Larry
    Last edited by lagagnon (2010-02-13 21:27:00)

    jwwolf wrote:Found this in AUR
    griv
    I just tried it with a few machines and it works fine.
    Excellent choice! Nice, light and unobtrusive. Works well, thanks for the recommendation.

  • Open two GUI( JFrame) simultaneously for one application

    Can we open two GUI( JFrame) simultaneously for one application at tha same time.if yes why ?and if no why?

    OK, its really simple, basically, you need a desktop frame to stor all the other frames and then you just pop them in, from a new class each time.
    Here's the code from the demo I learnt it from:
    (The demo itself)
    import javax.swing.JInternalFrame;
    import javax.swing.JDesktopPane;
    import javax.swing.JMenu;
    import javax.swing.JMenuItem;
    import javax.swing.JMenuBar;
    import javax.swing.JFrame;
    import javax.swing.KeyStroke;
    import java.awt.event.*;
    import java.awt.*;
    * InternalFrameDemo.java requires:
    * MyInternalFrame.java
    public class InternalFrameDemo extends JFrame
    implements ActionListener {
    JDesktopPane desktop;
    public InternalFrameDemo() {
    super("InternalFrameDemo");
    //Make the big window be indented 50 pixels from each edge
    //of the screen.
    int inset = 50;
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    setBounds(inset, inset,
    screenSize.width - inset*2,
    screenSize.height - inset*2);
    //Set up the GUI.
    desktop = new JDesktopPane(); //a specialized layered pane
    createFrame(); //create first "window"
    setContentPane(desktop);
    setJMenuBar(createMenuBar());
    //Make dragging a little faster but perhaps uglier.
    desktop.setDragMode(JDesktopPane.OUTLINE_DRAG_MODE);
    protected JMenuBar createMenuBar() {
    JMenuBar menuBar = new JMenuBar();
    //Set up the lone menu.
    JMenu menu = new JMenu("File");
    menu.setMnemonic(KeyEvent.VK_D);
    menuBar.add(menu);
    //Set up the first menu item.
    JMenuItem menuItem = new JMenuItem("New");
    menuItem.setMnemonic(KeyEvent.VK_N);
    menuItem.setAccelerator(KeyStroke.getKeyStroke(
    KeyEvent.VK_N, ActionEvent.ALT_MASK));
    menuItem.setActionCommand("New");
    menuItem.addActionListener(this);
    menu.add(menuItem);
    //Set up the second menu item.
    menuItem = new JMenuItem("Quit");
    menuItem.setMnemonic(KeyEvent.VK_Q);
    menuItem.setAccelerator(KeyStroke.getKeyStroke(
    KeyEvent.VK_Q, ActionEvent.ALT_MASK));
    menuItem.setActionCommand("Quit");
    menuItem.addActionListener(this);
    menu.add(menuItem);
    return menuBar;
    //React to menu selections.
    public void actionPerformed(ActionEvent e) {
    if ("New".equals(e.getActionCommand())) { //new
    createFrame();
    } else { //quit
    quit();
    //Create a new internal frame.
    protected void createFrame() {
    MyInternalFrame frame = new MyInternalFrame();
    frame.setVisible(true); //necessary as of 1.3
    desktop.add(frame);
    try {
    frame.setSelected(true);
    } catch (java.beans.PropertyVetoException e) {}
    //Quit the application.
    protected void quit() {
    System.exit(0);
    * Create the GUI and show it. For thread safety,
    * this method should be invoked from the
    * event-dispatching thread.
    private static void createAndShowGUI() {
    //Make sure we have nice window decorations.
    JFrame.setDefaultLookAndFeelDecorated(true);
    //Create and set up the window.
    InternalFrameDemo frame = new InternalFrameDemo();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //Display the window.
    frame.setVisible(true);
    public static void main(String[] args) {
    //Schedule a job for the event-dispatching thread:
    //creating and showing this application's GUI.
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
    public void run() {
    createAndShowGUI();
    Myinternalframe.java:
    import javax.swing.JInternalFrame;
    import java.awt.event.*;
    import java.awt.*;
    public class MyInternalFrame extends JInternalFrame {
    static int openFrameCount = 0;
    static final int xOffset = 30, yOffset = 30;
    public MyInternalFrame() {
    super("Document #" + (++openFrameCount),
    true, //resizable
    true, //closable
    true, //maximizable
    true);//iconifiable
    //...Create the GUI and put it in the window...
    //...Then set the window size or call pack...
    setSize(300,300);
    //Set the window's location.
    setLocation(xOffset*openFrameCount, yOffset*openFrameCount);
    You should be able to tell from that

  • OO Batch Model and optimised Java for batch???

    Hi All,
    I'm looking to see if there is any literature of OO models for batch processing and optimising of batch java.
    Thoughts & comments welcome.........
    I have an existing batch process running on a mainframe which is very successful. We would like to leverage this by building a similar batch process to run 'anywhere' so likely options are Java/Unix.
    There are many patterns/models etc for OO based GUI / interactive processes but very few for (that I have found) for batch.
    I have worked mainly with mainframe batch and online applications and come with the baggage that activity that can be processed in batch should be to avoid overloading the online container (CICS region, web server etc).
    I believe that this continues to be true, as well as the particular data we are processing benefits from efficiencies of batching the data together to store eventually on tape.
    In view of not finding any literature (which I doubt is the case) it seems that the problem is the same, so probably the solution is also similar.
    In the procedural solution, a Jackson (or similar), would have been designed which would then reflect the procedures build into the code.
    I expect that if instead of procedures classes where defined, certainly at a higher level then the design would still be ok.
    (So a the higher level you have a 'main' class, which instansiates a 'read' io object, a processing object which handles the actual processing activity and a write io object).
    The level to which would would combine procedures together, or further split them out, would then be the main point of discussion.
    ( However am open to the above suggestion being completly wrong).
    Then there is efficient configuration when processing........
    When running on the mainframe the code is loaded once, the memory for all the working storage strucures created. When actually processing there is no instantiating classes, or running the garbage collector etc. I re-use the same memory for each new record red in / processed / written out and all the code is normally loaded once when first called and the same code is re-used until all records processed.
    Is there any way that I can replicate this within Java either in it's own JVM or running in a container such as websphere? When processing the volume of data that we do (20 million db entries + 40GB of document data avg) then anything not optimised is costing money and available processing time.

    I suspect that batching is underused thoughrather
    than overused.Can you elaborate on that? What kind ofconditions
    would you advocate batching for? Running daily, monthly, etc reports. Or something
    that feeds those.I don't disagree, I just don't even see this as 'batching'. Batching to me is when you take something that could be done incrementally and purposely doing it in large groups at set times or time-periods. If you have a daily report and you do it daily, you're just doing the most obvious approach. It might not even be the most efficient.
    >>
    I have some experience working with batch java
    applications running in Unix. And I can tell you
    that they did not improve anything. I suspect I would agree with that. I am not
    advocating that the batching be done in java. Just
    that idea that an 'incremental' process that requires
    moving data versus a 'batch' process that doesn't
    isn't something that I would normally consider a good
    idea.I think we are thinking about different things. I'm really just talking about incremental or real-time vs. batching.
    They were
    actually the source of many of our issues. That
    added abitrary time lags during times of lowvolumes,
    sometimes adding 30 minutes or more to theprocessing
    of a transaction as it waited for the nextscheduled
    batch. They also made our backlogs worse in timesof
    high volumes because the incoming data flow was
    uneven, we would often get big batches of datafrom
    partner systems (more batching, gotta love it)that
    hit us when our batch process was sleeping. 5,10,
    15 minutes would pass where the server ran at 10%
    capacity while huge backlogs were piling up. It
    didn't make anything better. It was just causing
    idling.
    What was the timeliness requirements for the
    processing? Did it need to be completed by 2am in
    the morning? Or could it have really just been
    completed on demand?It was B2B transactions ASAP was the time requirement. I guess the upper limit was 6 hours or so. But batching didn't really decrease the processing time per transaction anyway and the server was never dedicated to the batch or anything so there were still context switches.
    It just seems to me that in Java with all the nice
    threading we have access to, the server shouldnever
    be idle and if you cannot handle your volume youare
    better off adding more servers, not attempting to
    batch things.I have created applications that were intended to run
    'batch' jobs which could be spread across servers.
    Those particular processes had to finish within a
    very narrow time span as well - about two hours as I
    recall. There was an incremental as well as batch
    functionality that needed to be run for this. The
    batch functionality ran on the database. The
    incremental took the batched results and handle the
    incremental part.
    Although management was never willing to dedicate
    more than one server to the processing so I guess it
    wasn't that important to them.
    I have seen apps that claimed they were 'fast'
    because they did all of the incremental processing
    outside of the database. The design required moving,
    literally, the entire database over the network to
    other servers which would then process it.
    Processing it in the database would have taken
    orders of less time. And that was time sensitive
    data. I can't remember if that app allowed for
    multiple boxes to do the processing. I do know that
    the people working on it could never figure out the
    bottleneck (it was scaling to something like 12
    hours a day which was not acceptable.)I guess I don't see doing it on the DB as implying batching. We use triggers to drive processes in Java, COBOL, whatever.

  • RE: Test automation tools for Forte applications

    Mark,
    There is a basic automated testing program already
    supplied by Forte in the examples. It is called
    AutoTest.Pex. It records events and can replay them.
    It can be a bit tricky and is a bit basic, but
    may have some of the functionality that you want.
    This is specifically for window / widget testing.
    Hope this helps,
    Kerrie Vickers
    Forte Consultant
    PricewaterhouseCoopers
    Mark Wick Wrote :
    Hi,
    We are evaluating test automation tools for a Forte client server
    application.
    Does anybody have experience with testtools for Forte applications or
    can even recommend a testtool particulary suitable for Forte
    applications.
    We want to test GUIs on NT-clients as well as a batch process running
    on
    a Unix solaris server and accessing an oracle database.
    any help appreciated
    thanks
    Marc WickMazda Australia takes every precaution to ensure email messages are virus free. For complete protection, you should virus test this message.
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

    Mark,
    There is a basic automated testing program already
    supplied by Forte in the examples. It is called
    AutoTest.Pex. It records events and can replay them.
    It can be a bit tricky and is a bit basic, but
    may have some of the functionality that you want.
    This is specifically for window / widget testing.
    Hope this helps,
    Kerrie Vickers
    Forte Consultant
    PricewaterhouseCoopers
    Mark Wick Wrote :
    Hi,
    We are evaluating test automation tools for a Forte client server
    application.
    Does anybody have experience with testtools for Forte applications or
    can even recommend a testtool particulary suitable for Forte
    applications.
    We want to test GUIs on NT-clients as well as a batch process running
    on
    a Unix solaris server and accessing an oracle database.
    any help appreciated
    thanks
    Marc WickMazda Australia takes every precaution to ensure email messages are virus free. For complete protection, you should virus test this message.
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

  • Test automation tools for Forte applications

    Hi,
    We are evaluating test automation tools for a Forte client server
    application.
    Does anybody have experience with testtools for Forte applications or
    can even recommend a testtool particulary suitable for Forte
    applications.
    We want to test GUIs on NT-clients as well as a batch process running on
    a Unix solaris server and accessing an oracle database.
    any help appreciated
    thanks
    Marc Wick
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

    There is also TestComplete by AutomatedQA but it is of
    limited usage because it is not mx.automation aware and in many
    difficult cases reverts to dumb mouse X,Y recording.
    And there is the upcoming RIATest that will be specifically
    designed for Flex using mx.automation. Here is the site:
    http://riatest.com
    Disclosure: I am a RIATest developer.

  • Full Automatic Operation Tool for Windows Applications (ShareWare )

    Hi, FORTE users.
    May I introduce my client GUI test utility FIST.
    I'm an author of FIST.
    FIST is a Full Automatic Operation Tool for Windows Applications ( ShareWare )
    Windows95/98/NT compatible GUI robot
    ENGLISH PAGE :
    http://www.ask.ne.jp/~a800/index3.html
    Also.I have uploaded Simtel.Net and Shareware.com
    JAPANESE PAGE :
    http://www.ask.ne.jp/~a800/index2.html
    Also.I have uploaded vector.co.jp
    Aplicable to all cases as follows:
    Initializing a network configuration automatically such as
    TCP/IP configuration dialogues.
    Handling GUI applications seamlessly.
    You can have FIST run a GUI installer of your distributed
    clients' new version software remotely.
    Demonstrating your new GUI software attractively.
    Operating Power Point automatically on the international
    conference.
    Providing smooth description of your product on your
    mobile PC in your client's office.
    Sending/Receiving mail automatically
    Schedule playing of a musical instrument.
    For any other unmanned PC operation
    FIST has numerous batch commands and automatic
    filename generator
    Improving efficency of your software production line
    Automatic System shutdown and Power off available
    Needless programing ability
    FIST is so small size and portable
    You can gain FIST click below.
    Download FIST (93KB)

    Hi, FORTE users.
    May I introduce my client GUI test utility FIST.
    I'm an author of FIST.
    FIST is a Full Automatic Operation Tool for Windows Applications ( ShareWare )
    Windows95/98/NT compatible GUI robot
    ENGLISH PAGE :
    http://www.ask.ne.jp/~a800/index3.html
    Also.I have uploaded Simtel.Net and Shareware.com
    JAPANESE PAGE :
    http://www.ask.ne.jp/~a800/index2.html
    Also.I have uploaded vector.co.jp
    Aplicable to all cases as follows:
    Initializing a network configuration automatically such as
    TCP/IP configuration dialogues.
    Handling GUI applications seamlessly.
    You can have FIST run a GUI installer of your distributed
    clients' new version software remotely.
    Demonstrating your new GUI software attractively.
    Operating Power Point automatically on the international
    conference.
    Providing smooth description of your product on your
    mobile PC in your client's office.
    Sending/Receiving mail automatically
    Schedule playing of a musical instrument.
    For any other unmanned PC operation
    FIST has numerous batch commands and automatic
    filename generator
    Improving efficency of your software production line
    Automatic System shutdown and Power off available
    Needless programing ability
    FIST is so small size and portable
    You can gain FIST click below.
    Download FIST (93KB)

  • Need Help to update the labels in the GUI syncronously - Swing application

    Hello everyone,
    I need some help regarding a swing application. I am not able to syncronously update the counters and labels that display on my Swing GUI as the application runs in the background. But when the running of application is completed, then the labels on the GUI are getting updated, But I want update the labels and counters on the GUI syncronously as the code executes... below I am giving the format of the code I have written..............
    public class SwingApp extends JFrame{
            // here i have declared the label and component varibles like...
                      private JTextField startTextField;
           private JComboBox maxComboBox;
           private JTextField logTextField;
           private JTextField searchTextField;
           private JLabel imagesDownloaded1;
           private JLabel imagesDownloaded2;
           private JLabel imagesDidnotDownload1;
           private JLabel imagesDidnotDownload2;
                      private JButton startButton;
    //now in the constructer.............
    public Swing(){
    //I used gridbaglayout and wrote the code for the GUI to appear....
    startButton = new JButton("Start Downloading");
        startButton.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            try{
                 actionSearch();   //actionSearch will contain all the code and the function calls of my application...........
            }catch(Exception e1){
                 System.out.println(e1);
        constraints = new GridBagConstraints();
        constraints.gridwidth = GridBagConstraints.REMAINDER;
        constraints.insets = new Insets(5, 5, 5, 5);
        layout.setConstraints(startButton, constraints);
        searchPanel.add(startButton);
    //update is a function which initiates a thread which updates the GUI. this function will be called to pass the required variables in the application
    public void update(final int count_hits, final int counter_image_download1, final int didnot_download1) throws Exception{
         Thread thread = new Thread(new Runnable() {
             public void run() {
                  System.out.println("entered into thread");
                  System.out.println("the variable that has to be set is " + count_hits);
                  server_hits_count.repaint(count_hits);
                  server_hits_count.setText( " "+ Integer.toString(count_hits));
                  imagesDownloaded2.setText(" " + Integer.toString(counter_image_download1));
                  imagesDidnotDownload2.setText(" " + Integer.toString(didnot_download1));
                  repaint();
         //this.update(count_hits);
         thread.start();
    //Now in main............................
    public static void main(String[] args){
    Swing s = new Swing();
    s.setVisible(true);
    }//end of main
    }//end of class SwingAbove I have given the skeleton code of my application........ Please tell me how to update the GUI syncronously...
    Please its a bit urgent...............
    Thank you very much in advance
    chaitanya

    First off, note that this question should have been posted in the Swing section.
    GUI events run in a separate thread (the AWT / Event Dispatch Thread) than your program.
    You should be invoking AWT/Swing events via SwingUtilities.invokeLater().
    If for whatever reason you want to have the program thread wait for the event to process
    you can use invokeAndWait().
    http://java.sun.com/javase/6/docs/api/javax/swing/SwingUtilities.html

  • Front End (GUI) for Java Web Based Appl.

    Hi Gurus,
    I am new to Java. Can anybody tell me, what is the front end(GUI) used in Java web based applications? I was told that Swings/Applets are rarely used. Is there are a 3rd party took to design GUI for Java based applications?
    Chooti Baba

    sunilmp wrote:
    U mean to say, for JSP/Servlets, "Web based application" as well as "JSP/Servlet" usually implies that the client is a simple web browser.
    we cannot have swing as front end?You can use Swing inside an Applet inside a web application, but usually that's not needed, as you already have a client application that's quite powerful (the browser).

Maybe you are looking for