Installer file for marvin applet plugin, like .cab files?

User 9d2c03e26a

16-09-2010 07:12:11

Hi:


We are using marvin Sketch plugin to let user draw structures.


Due to bad network situation, sometimes new user is unable to download the marvin applet plugin completely, and this cuases trouble.


Sometimes when we upgrade the plugin version on the server, there are also problems reported by users (sometimes the applet window go black, etc). It is not so convenient to ask users to clean their browser cache and java cache every time.


I wonder if there is a downloadable installer file for the applet, like what sun has for the java plugin:


https://java.sun.com/update/1.6.0/jinstall-6u14-windows-i586.cab

So that user could download and install it in advance to save time and eliminate trouble.


I don't see such files under the marvin applet binary files.


Or if it is possible to make an installer for certain usage (marvin sketch, for my case)?


thanks.


 

ChemAxon 5433b8e56b

16-09-2010 12:21:37

Hi,


i feel i need to clarify some terms before answering just to be sure we are speaking about the same things. There is an essential difference between the browser plugins and java applets. A browser plugin is a softtware that runs inside the browser. Plugins are dinamically linked to the browser, and adds third party functionality to the browser on the client machine.


A java applet is a java program that is being loaded and initialized by the java plugin. The java plugin starts a java virtual machine, to run the applet that is specified by the html tags inside the web page being shown. The applets are communicating with the java plugin, and the java plugin is the one that communicates with the browser, and bridges the requests from the browser to the applet or from the applet to the browser.


A java applet cannot be made to a browser plugin. It is possible to write a browser plugin, but that has to be made in a different way than creating a java applet. Currently we can not make such a browser plugin from Marvin applets easily, and we are not planning to do so, since that requires quite different technologies to use and it depends on the used browser and operating system.


What we are keen on is to solve the issues you have mentioned. We are constantly working on to reduce the size of the required amount of data to run the Marvin applets, also we are working on to make the initialization time of the applets shorter and shorter.


We are also working on the problems that cause the necessity of cache cleaning after some upgrade. Currently you can avoid this issue if you are using a different location for Marvin applets on the server after an upgrade, since in this case, the client side cache can not contain a jar cached from that new location, and old cached jars can not ruin the running applet. This requires the change of the web site code after an upgrade, since the codebase of the applets has to be changed to the new location, but it can solve this problem.


Best regards,
Istvan

User 9d2c03e26a

17-09-2010 03:24:31

Thank you so much for the detailed explaination, Istvan.


I also figure out an solution to delete the temperatory java files on client machine (since most of the users are scientific guys, so some automatic script is greatly helpful):


Since most of the user is using windows, I will do it in a batch script:



  1. Check if java is installed on client machine, if not, prompt and exist

  2. Start the main script

  3. Call java via command line to get the system properties where java store the temporary files

  4. in java main method write the result to some batch config file

  5. java exist and the main batch file calls the config file to get the path

  6. delete the folder using deltree

  7. exit program


This is just a rough thought about cleaning the cache, I will try it and let you know the result.


On the other side, I don't think making the marvin applet path changed upon server upgrade is a good idea.You have to change the path each time, especially when the source code is managed by svn.


Another idea is that if you can distribute your applet jar files with a version number, something like:


chemaxonregistry-native-XXX.jar

where XXX is the version number. If in a minor update, this jar file is not changed, then you can keep the version number as the old one. on client machine the java plugin can still use it from cache. On the other side, if one jar is changed, then the version number is increased, so client will have to download it since nothing will be found in cache.


Don't know if this is going to work, just my personal points.

ChemAxon 7c2d26e5cf

27-09-2010 17:15:26

Hi,


About installers:


We do not provide cab installer for Marvin Applets package. This package is not a desktop solution. It has to be located on server side. Just upload the package content to your web server. Clients access applet via your web server like any other content from your web site.


http://www.chemaxon.com/marvin/help/applications/install.html#install_applets


About downloading:


Users can also use the desktop version of Marvin (Beans). After downloading and running Marvin Beans installer, they can use Marvin without any further net connection.


I can also recommend Java Web Start version of Marvin.
http://www.chemaxon.com/marvin/examples/webstart/index.html


In this case, you can launch Marvin applications from the browser. By first attempt, all resources are downloaded (and cached in Java cache). By further attempts it works from the cache, download only those jars that are modified since the last occasion. So its caching mechanism is similar than applet ones but it provides a desktop application that can also work offline.