the free javaws implementation in icedtea
play

The Free Javaws Implementation in IcedTea Omair Majid Associate - PowerPoint PPT Presentation

The Free Javaws Implementation in IcedTea Omair Majid Associate Software Engineer Red Hat 2011-02-05 1 Overview of the Talk Background about JNLP Netx's Architecture Recent developments in Netx Future 2 Background 3 What's


  1. The Free Javaws Implementation in IcedTea Omair Majid Associate Software Engineer Red Hat 2011-02-05 1

  2. Overview of the Talk ● Background about JNLP ● Netx's Architecture ● Recent developments in Netx ● Future 2

  3. Background 3

  4. What's the name again? ● Java Network Launching Protocol ● Java Web Start 4

  5. Overview of JNLP A way to run Java applications securely without installing them 5

  6. Running JNLPs - Hyperlinks 6

  7. Running JNLPs – Command Line 7

  8. The Standard 8

  9. Other Resources ● Java Deployment Documentation ● http://download.oracle.com/javase/6/docs/technotes/guides/jweb/ deployment_advice.html#deployingApplications ● Existing JNLP Applications 9

  10. JNLP Application XML File Jars 10

  11. JNLP File Example 11

  12. Demo ● Show JNLP File ● Show Code ● Run 12

  13. Netx 13

  14. ● What Is It? ● Architecture ● Components in Depth ● Netx and the Plugin 14

  15. Netx ● Originally at http://jnlp.sourceforge.net/netx/ ● Last updated in 2003 ● Designed as a library ● About 18k lines of Java 15

  16. Netx ● Imported into IcedTea in 2008 ● The default javaws implementation in most distributions ● About 27k lines of code 16

  17. Overall Architecture 17

  18. Overall Architecture 18

  19. Parser Parses a JNLP (an XML file) and converts it into a set of java objects 19

  20. JNLPFile InformationDesc ResourcesDesc JARDesc ApplicationDesc 20

  21. Parser ● The main class is net.sourceforge.jnlp.Parser ● Most of the code is under net.sourceforge.jnlp ● Elements are named <element>Desc 21

  22. Parser Uses (in-tree) NanoXML to parse ... and lives with the consequences 22

  23. ClassLoader Application JNLPClassLoader Bootstrap ClassLoader 23

  24. ClassLoaders - Lazy Download Jars only when needed 24

  25. ClassLoader - Security Along with loading classes, associates permissions with them 25

  26. Cache ● Recall that applications are not installed ● File are cached in ~/.icedtea/cache/ 26

  27. Cache - Downloading ● Multiple threads spawned ● Each file goes through multiple states to arrive at ● Error ● Or Downloaded 27

  28. Verifier Verifier Keystore 28

  29. Services Allow unsigned applications to break the sandbox (securely) 29

  30. Services Access to Files 30

  31. Services - Integration 31

  32. 32

  33. Secure GUI 33

  34. Security Manager ● Custom security manager ● Allows some permissions ● Custom policy can be defined 34

  35. Security/ClassLoader/Verifier Demo 35

  36. Service Demo 36

  37. Netx and the Plugin The plugin relies on Netx for most of its non browser functionality 37

  38. 38

  39. Plugin in the component framework 39

  40. Recent Developments in Netx 40

  41. Versioned/Packed Jars – Sever Side ● Server-side ● content-encoding ● version-id 41

  42. Versioned/Packed Jars – Client Side test__V1.56.3.0x0.pack.gz test.jar test.jar 42

  43. Support for deployment.properties ● Allows configuring almost every part of netx ● Described at ● http://download.oracle.com/javase/6/docs/technotes/gui des/deployment/deployment-guide/contents.html 43

  44. Deployment.properties ● Located at ~/.icedtea/deployment.properties ● Key-value pairs in the standard properties file format 44

  45. Proxy Support ● Read proxy settings from deployment.properites ● Or Firefox's preferences 45

  46. Custom Policies ● Possible to sandbox trusted applications ● Possible to grant untrusted applications some permissions 46

  47. TagSoup-based Parser ● Instead of a XML parser, use a html parser 47

  48. The Future ● Better compatibility ● Implement missing JNLP API services ● Use libproxy ● Better system integration ● Stuff Deepak mentioned... 48

  49. Questions 49

Recommend


More recommend