Return-Path: Delivered-To: apmail-harmony-dev-archive@www.apache.org Received: (qmail 29795 invoked from network); 5 Mar 2008 03:15:02 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 5 Mar 2008 03:15:02 -0000 Received: (qmail 16538 invoked by uid 500); 5 Mar 2008 03:14:56 -0000 Delivered-To: apmail-harmony-dev-archive@harmony.apache.org Received: (qmail 16511 invoked by uid 500); 5 Mar 2008 03:14:56 -0000 Mailing-List: contact dev-help@harmony.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@harmony.apache.org Delivered-To: mailing list dev@harmony.apache.org Received: (qmail 16502 invoked by uid 99); 5 Mar 2008 03:14:56 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 04 Mar 2008 19:14:56 -0800 X-ASF-Spam-Status: No, hits=2.2 required=10.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (nike.apache.org: local policy) Received: from [196.25.240.79] (HELO ctb-mesg-1-1.saix.net) (196.25.240.79) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 05 Mar 2008 03:14:09 +0000 Received: from animal (dsl-243-118-74.telkomadsl.co.za [41.243.118.74]) by ctb-mesg-1-1.saix.net (Postfix) with SMTP id 71242827E for ; Wed, 5 Mar 2008 05:14:15 +0200 (SAST) Message-ID: <007901c87e6f$0433c370$0300000a@animal> From: "Johnny Kewl" To: Subject: Visualizing JreLite Date: Wed, 5 Mar 2008 05:14:14 +0200 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0074_01C87E7F.C0F27280" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2900.2180 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180 X-Antivirus: avast! (VPS 080101-0, 2008/01/01), Outbound message X-Antivirus-Status: Clean X-Virus-Checked: Checked by ClamAV on apache.org ------=_NextPart_000_0074_01C87E7F.C0F27280 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable This is how I see it happening... I always talk from the point of view = of Windows users... they must be able to use it. BOOTSTRAP =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D There is a small bootstrap program it is called JRELite... its a native = app probaby 80k When this is installed on a system it does a file association with = "JreLite" THE JAVA APPLICATION =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D To use this system a user will reaname their execuatable jar from = MyApp.jar to MyApp.JreLite The above is all a user needs to know about and its how a user see's it. SCENARIO =3D=3D=3D=3D=3D=3D=3D=3D=3D A programmer put their JreLite application on a web page, or emails it = to a freind or its on a flash stick... ... anything The user clicks on it... The system effectively runs JRELite MyApp.JreLite INITIAL HIT =3D=3D=3D=3D=3D=3D=3D=3D The bootstrap see's there is no Java on tha machine... it gets the = JVMLite Engine... Approx 3 meg HIT...=20 =20 STARTUP =3D=3D=3D=3D=3D=3D=3D=3D The Bootstrap place JVMLite in its special folder location... Start... JVMLite -jar MyApp.JreLite RUNNING BOOTSTRAP =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D The application starts and it needs a swing... the JVM's resolver can = determine this... It loads it. So the thing to really understand is that the application starts almost = immediately but its "still" loading from the remote server, AS THE USER IS USING IT....=20 It feels like Java started in 20 seconds and remember this is only the = first (one time hit)... After that programs start "instantly" Also think about this.... if a user never goes to a part of the = application that is not used... that never has to be loaded. Bottom Line =3D=3D=3D=3D=3D=3D=3D=3D=3D If we can strip the JRE down to somewhere around 3 megs.... make the = classes and fonts late binding... and put them on a deliver server. JRELite exists... The JVMLite work... is mainly in bridging the resolver with the ability = to pull the require component down from the server. Where ever that font engine is hiding... it too has to bridged with the = ability to pull a font down. The rest of the work... is in making the downloads fine grained... you = let the JVM pull the classes it needs... NOT the whole Jar. So those Jars live on the server as a file structure...=20 If the font needed is Gothic A, and that needs a Unicode DLL.... ONLY = that moves over the wire... Yes... oh boy... they all packed into humongeuos file now.... that has = to be fine grained on the server. This works so well... you going to be shocked at how efficient Java = becomes ;) Harmony is not far from this already.... the packaging just has to = change. For now... just that needs to be done... complex optimizations can come = later. ... I think ;) ------=_NextPart_000_0074_01C87E7F.C0F27280--