Article: Optimizing the Client Side

Discussions

News: Article: Optimizing the Client Side

  1. Article: Optimizing the Client Side (31 messages)

    Iconix Pharmaceuticals, a pioneer in chemogenomics, has developed the DrugMatrix software application to effectively deliver its chemogenomics database.

    In this article, John Calvin, senior engineer at Iconix, discusses the role AJAX played in helping Iconix software developers build DrugMatrix, covers the alternatives considered and explains why Iconix decided on an AJAX-enabled Rich Internet Application (RIA).

    Calvin also talks about lessons learned and where he believes Iconix's use of this technology will lead.

    Read Optimizing the Client Side.

    Threaded Messages (31)

  2. TIBCO?[ Go to top ]

    I find it very surprising that TIBCO software was chosen and apparently used ith success considering that their own GUIs (web and desktop) are so dreadful.
  3.  1. Embedding Java applets in Web pages

    This approach was inefficient based on the massive size of the chemogenomics database alone. Given the necessity to load hundreds of rows by tens of columns of data into an applet at each query, it was clear the application would quickly bog down. DrugMatrix's ability to eliminate HTML from the data stream and cache data on the client allowed the server to transmit more data. It also enabled researchers to query client-side cached data rather than making redundant trips to and from individual HTML "detail" pages.

    Why do you need to "load hundreds of rows by tens of columns of data into an applet at each query" when using swing but not when using AJAX? You could load only the data you want to display when using swing as well. Any other reasons for not using swing?

    Regards,

    Leonardo.
  4. Why do you need to "load hundreds of rows by tens of columns of data into an applet at each query" when using swing but not when using AJAX?

    I think the difference is that they had a OTS component that did this. Actually this is a pretty good candidate for a component, an on-demand loading view. I don't know of a Swing framework that supplies this kind of thing but that doesn't mean it doesn't exist, of course. If anyone knows of such a thing, please post some info. Thanks.

    Actually, I was thinking that Java rich clients/applets would be a lot more likely to take off if there was a common set of framework components similar to common web components. Then users would download these things once and get a standard experience, like a browser.
  5. Why no applets or webstart?[ Go to top ]

    Why do you need to "load hundreds of rows by tens of columns of data into an applet at each query" when using swing but not when using AJAX? You could load only the data you want to display when using swing as well. Any other reasons for not using swing?Regards,Leonardo.
    Wow. I too would have expected a better reason. We are developing a Swing based app and we are limiting the result set to 20 records at a time. And I don't know why the didn't consider Webstart instead of Applets or in addition to.
  6. Why no applets or webstart?[ Go to top ]

    Why do you need to "load hundreds of rows by tens of columns of data into an applet at each query" when using swing but not when using AJAX? You could load only the data you want to display when using swing as well. Any other reasons for not using swing?Regards,Leonardo.
    Wow. I too would have expected a better reason. We are developing a Swing based app and we are limiting the result set to 20 records at a time.

    There's a general solution to this problem which is that you push the data across the wire in smaller sections and then develop the model classes to block on data that has not yest been received. This gives the impression to the user that all the data is there in an instant. While they are looking with thier slow organic processors, you are loading the rest of the data in the background. Combined with a push caching model you can save a lot of wire time.

    I largely blame the J2EE Design Patterns book for the floundering of rich Java clients. It led a lot of teams to load huge Collections of Value Objects (now called Data Transfer Objects) in a single call in order to avoid chattiness. It does avoid chatiness. However chatiness rarely has a negative impact on the user experience while waiting for several MB of data to be marshalled, downloaded and then unmarshalled entirely before they see one record does.
  7. Why no applets or webstart?[ Go to top ]

    floundering of rich Java clients.

    I put a lot of typos and errors on these forums but I would like to note that I do know that the correct term is 'foundering'. Thank you.
  8. Please Mr. McNealy[ Go to top ]

    Push for more pervasive Java on the desktop, fast, and do it in a simple way. I personally don't like SWT, never have, don't care for the way the APIs looked, etc. Swing, ok, it has its problems, but I still prefer it. I personally think AJAX is nice, for what it does, and for a certain type of application. You would think that after all this time, coding up a distributed app with a swing front end would be simpler, but its not, and I think that's the problem. The initial curve is too high. I still have a dream, albeit twisted, of being able to render in flash but code in java ;-)
  9. Please Mr. McNealy[ Go to top ]

    render in flash but code in java ;-)

    OpenLaszlo, perhaps? http://www.openlaszlo.org/
  10. Please Mr. McNealy[ Go to top ]

    Push for more pervasive Java on the desktop, fast, and do it in a simple way. I personally don't like SWT, never have, don't care for the way the APIs looked, etc. Swing, ok, it has its problems, but I still prefer it. I personally think AJAX is nice, for what it does, and for a certain type of application. You would think that after all this time, coding up a distributed app with a swing front end would be simpler, but its not, and I think that's the problem. The initial curve is too high. I still have a dream, albeit twisted, of being able to render in flash but code in java ;-)

    Hey ActionScript isn't that hard to pick up. It is a little more work figuring out how to compile outside of the Flash IDE with MASTC and setting up a decent editor. I'd say it took me 100-200 hours to learn the Flash IDE and object model, mostly master ActionScript 2.0, and figure out how to set up a decent development environment.

    Luckily those hours were partly billable :-)

    I have a dream of coding ActionScript in IDEA with full refactoring support but much of it can be done in Eclipse right now.

    Getting a feature-rich UI in flash is much easier/quicker than JSP/HTML/AJAX or Swing/SWT. I think that it is the "just another technology" gap that stops many companies and developers from even trying it out.
  11. Please Mr. McNealy[ Go to top ]

    You would think that after all this time, coding up a distributed app with a swing front end would be simpler, but its not, and I think that's the problem. The initial curve is too high.
    It is not any tougher than a corresponding web app. It really depends on your background.
  12. Confusing reasons[ Go to top ]

    And
    DrugMatrix's ability to eliminate HTML from the data stream and cache data on the client allowed the server to transmit more data. It also enabled researchers to query client-side cached data rather than making redundant trips to and from individual HTML "detail" pages.
    This is a reason to use AJAX over Applets? Applets eliminate the html too. They also can eliminate the transformation and overhead of xml.

    Don't get me wrong - I like things like Echo2. But their reasoning ... ?
  13. Look, in my opinion we only went to web because of deployment issues with the fat client. Newer technologies, like Webstart, take care of that problem. It does require a VM, so this isn't the best solution for Internet facing applications. However, I believe Webstart is perfect for the intranet.

    My developers can focus on writing code, and really only need to know Java if they are doing Swing based app. They DON'T have to know HTML, Javascript (yuck), stateless apps, etc.. We've been hacking web based technologies for years now just to get around all the inherit issues, including security issues. Browser based applications have their place for Internet facing applications - but it's time do something else for the intranet.

    We rewrote 3 Powerbuilder applications to Java/Swing/Webstart and we think we saved about 40% development time, and the customer was thrilled that we were able to keep the functionality the same. Speed is great (that's a design issue IMHO) and they are easy to maintain.

    Let's get back to the level of user interaction we had 10 years ago, without hacking. In my opinion, we developers tend to look for the "cool" or tricky solution so we can prove our existance. I don't know about the rest of you, but I'm tired of beating my head on the wall for no reason at all!
  14. Cost ?[ Go to top ]

    How much did the TIBCO library cost? I was under the impression TIBCO was VERY expensive.
  15. IT is more then 25K[ Go to top ]

    from the below URL it cost more than 25K for Javascript libs.
    http://www.infoworld.com/article/05/10/31/44TCtibco_1.html

    Thanks,
    Moncikam
  16. IT is more then 25K[ Go to top ]

    from the below URL it cost more than 25K for Javascript libs.http://www.infoworld.com/article/05/10/31/44TCtibco_1.htmlThanks,Moncikam
    I was looking for that. Thanks.

    If you want to do AJAX this way, check out Echo2 ($0) and EchoStudio2 ($500).
  17. RE: IT is more then 25K[ Go to top ]

    Echo2 is really cool.
    But I still do not feel its advantage over Java Web Start and Swing. I'd rather use Swing API to write GUI. First of all, have been using it for a long time already; data could really be cached on the client; a simple servlet can pretty well handle serialized Java objects transfering between client and server, no XML, no SOAP, less network traffic; client can use JMS.
    AJAX is all good, fashion and cool. But JWS and Swing produce better GUI interface.
  18. RE: IT is more then 25K[ Go to top ]

    Echo2 is really cool.But I still do not feel its advantage over Java Web Start and Swing. I'd rather use Swing API to write GUI. First of all, have been using it for a long time already; data could really be cached on the client; a simple servlet can pretty well handle serialized Java objects transfering between client and server, no XML, no SOAP, less network traffic; client can use JMS.AJAX is all good, fashion and cool. But JWS and Swing produce better GUI interface.


    True. But sometimes a browser UI is the way to go. And Echo2 easily fills this. And it is like writing a Swing app. In that, it has advantages over other AJAX tools.
  19. RE: IT is more then 25K[ Go to top ]

    If you use Applet or WebStart, you have to install java on your client machine (jre, but it's still an extra program to install). And if you have users that are not too familiar with computer or they don't have the right to install programs...

    For AJAX, I don't think you have to do anything, except turning on your computer and start a browser (I would recommend Firefix ;) ).

    alex
  20. RE: IT is more then 25K[ Go to top ]

    If you use Applet or WebStart, you have to install java on your client machine (jre, but it's still an extra program to install). And if you have users that are not too familiar with computer or they don't have the right to install programs...
    Ahh. My favorite users. They don't keep Windows up to date. If they can't install Java, they can't do that. They get tons of viruses. etc. The less they use the browser, the better.
    For AJAX, I don't think you have to do anything, except turning on your computer and start a browser
    And keep it up to date. And make sure javascript is enabled. Well, only for sites you trust. And then, sometimes not. :)
     (I would recommend Firefix ;) ). alex
    Well, that would require an install. :) But installing that and Java would be the best too things they could do.
  21. more ...[ Go to top ]

    Key differentiators ?
        * Visual authoring tools, familiar APIs and libraries of extensible, high-performance GUI components
        Swing has this
        * Componentized, open standards-based architecture that enables re-use and customization of objects
      Swing has this
        * Client-side data cache that store information for use throughout a session, eliminating redundant server processes and allowing transmission of incremental data
      Swing has this. And the server can actually do less.
        * Support for synchronous, asynchronous and real-time communication capabilities through leading standards and protocols such as HTTP/S, XML and SOAP
      Swing has this. And more.

    If you care too, replace Swing with SWT.
  22. more ...[ Go to top ]

    If you care too, replace Swing with SWT.

    I was already to climb on board the SWT bandwagon until I found that their TextArea class didn't suggest the correct size with wrap text turned on. I contemplated trying to work around it or fix it and then dropped it.
  23. This is an in-house application. Even if it is distributed, it still has relatively small number of users. Why bother with web instead using Delphi/VB + CORBA or JDNC? I know that Enron quite successfully used Delphi + TIBCO for their distributed app.
  24. Article: Optimizing the Client Side[ Go to top ]

    This is an in-house application. Even if it is distributed, it still has relatively small number of users. Why bother with web instead using Delphi/VB + CORBA or JDNC? I know that Enron quite successfully used Delphi + TIBCO for their distributed app.
    I can understand why they wouldn't use VB (or any COM based tool). Been there. Done that.
  25. Article: Optimizing the Client Side[ Go to top ]

    I can understand why they wouldn't use VB (or any COM based tool). Been there. Done that.

    Most companies could crap out something better than COM. Just my two bits (inflation.)
  26. Take a look at ZK as well[ Go to top ]

    Worth taking a look at ZK framework as well: http://potix.com/
     Opensource and buzzword compliant- AJAX, RAD, Java, Event driven, XUL, Beanshell .. you name it.
  27. An older interface technology[ Go to top ]

    Did you ever wish you could write simple interactive, ascii-based interface but in pure Java? I did. It required a TCP socket, an implementation of telnet protocol, and select telnet options, and a couple of vt100 escape sequences:

    Check out the Network Virtual Terminal for Java
  28. Why web + AJAX + TIBCO + XML/WS?[ Go to top ]

    My opinion about several concerns seen here:
    1. Why a web app instead of a thick app?
    This is a quite old question, and the answer is similar for AJAX as for regular HTML. Web browsers are ubiquitous, users know them well and do not need of any previous setup. Swing or SWT need for start of a JVM to be installed and managed. A web app is much easier to manage. In the end it is up to the choice of each shop, but I think it is a good option.

    2. Why AJAX?
    One of the problems of web applications is that they are less usable than its desktop counterparts. The fuzz today is that, at the very least, AJAX alleviates this.

    3. Why TIBCO?
    From what I have read, TIBCO General Interface (which TIBCO did not developed but bouthg at the end of 2004, I think) is a very fine tool. A very good point of it is that it is not a Java RAD as many approaches nowadays, but a development environment for Javascript. Yoy may have Java, .Net or whatever in the server-side, as far as it speaks SOAP. If one can afford its price, it seems a good, productive tool.

    4. Why XML/WS?
    In an intranet there is usually plenty of bandwidth available. And XML/WS is "the" approach the market encourages all the time. At any rate, in the end XML/WS does not take up so much, and nonetheless is the best option for interoperability and making the UI independent from the server implementation. But anyway a Javascript RIA is not worse than desktop Java for this - they could equally use JSON or even binary data if they would have liked to.

    In overall, I think it is a very interesting success case.
  29. Why web + AJAX + TIBCO + XML/WS?[ Go to top ]

    My opinion about several concerns seen here:1. Why a web app instead of a thick app?This is a quite old question, and the answer is similar for AJAX as for regular HTML. Web browsers are ubiquitous, users know them well and do not need of any previous setup.
    Yes, and they will expect your app to act like a web page. Not a web app. Again, browsers are not no-touch and can be more of a pain than a Swing client.
    Swing or SWT need for start of a JVM to be installed and managed.
    Unless you have a Mac or maybe Linux. Or a PC that the vendor installed Java. Then updating Java is just like keeping Windows up-to-date.
    A web app is much easier to manage.
    Oh, I wish this were true. If it is a simple app, yes. But if you have lots of users and it really is app (not a glorified web site), then it can be more difficult. You just end up with different issues.
    In the end it is up to the choice of each shop, but I think it is a good option.
    That is true. And sometimes I do one and sometimes I do the other. Sometimes I do both.
    2. Why AJAX?One of the problems of web applications is that they are less usable than its desktop counterparts. The fuzz today is that, at the very least, AJAX alleviates this.
    Some of it. But in the end, it is still a UI in the browser and limited by HTML and the browser's vendor.
    3. Why TIBCO?From what I have read, TIBCO General Interface (which TIBCO did not developed but bouthg at the end of 2004, I think) is a very fine tool. A very good point of it is that it is not a Java RAD as many approaches nowadays, but a development environment for Javascript. Yoy may have Java, .Net or whatever in the server-side, as far as it speaks SOAP. If one can afford its price, it seems a good, productive tool.
    Having used EchoStudio2, I can't see how it can be justified.
    4. Why XML/WS?In an intranet there is usually plenty of bandwidth available. And XML/WS is "the" approach the market encourages all the time. At any rate, in the end XML/WS does not take up so much, and nonetheless is the best option for interoperability and making the UI independent from the server implementation.
    It is not so much the middle as the end points.
     But anyway a Javascript RIA is not worse than desktop Java for this - they could equally use JSON or even binary data if they would have liked to.
    I don't see how a Javascript client could serialize, deserialize Java objects. Not without Java.
    In overall, I think it is a very interesting success case.
    It is interesting, for sure. Successful? Somewhat (very successful for TIBCO) But the explanation? Woeful.
  30. Why web + AJAX + TIBCO + XML/WS?[ Go to top ]

    3. Why TIBCO?From what I have read, TIBCO General Interface (which TIBCO did not developed but bouthg at the end of 2004, I think) is a very fine tool.

    If that's the case, hopefully they will use it to rewrite their guis. I would fear their engineers will try to modify it if I were using it as a tool.
  31. RIA AJAX, Flex, OpenLaszlo[ Go to top ]

    Problem with AJAX <Br> - JavaScript may have to be written multiple times to support different browsers.
    - Web development done for a specific browser looks great in a that browser—but look terrible under different resolutions, operating systems or browsers
    - AJAX Gurus dont wanna talk DHTML hiding under the rug.
    - TIBCO Price Tag of 25K without this you will spent HUGE amount of time building widgets

    Advantage of Flex <Br> - Every single controls you could think of is available out of the box.
    - Defines RIA - Rich cinematic animation which has the highest potential to please your customer who needs RIA.
    - Powerfull Flex Enterprise services, esp Flex Data Service which is built based on Message Service.
    Disadvantage :- Price Tag on Flex 1.5

    Laszlo always a version behind on Flash Player.

    As I said in the past AJAX is for geeks FLEX is for business.

    So I wonder if folks at Iconix Pharmaceuticals, do even care to see at Flex.
  32. RIA AJAX, Flex, OpenLaszlo[ Go to top ]

    Problem with AJAX <Br> - JavaScript may have to be written multiple times to support different browsers.- Web development done for a specific browser looks great in a that browser—but look terrible under different resolutions, operating systems or browsers-
    Try to catch up on the latest AJAX frameworks, these problems were solved some time ago already.