Links

  • 1. Sogeti
  • 2. JBoss
  • 3. IBM
  • 4. Oracle
  • 5. SpringSource
  • 6. NL-JUG
  • 7. Java

Archives

Syndication  RSS 2.0

RSS 1.0
RSS 2.0

Bookmark this site

Add 'JCN Blog' site to delicious  Add 'JCN Blog' site to technorati  Add 'JCN Blog' site to digg  Add 'JCN Blog' site to dzone

Posted by Tobias Groothuyse at 20:45 on Friday 14 December    Add 'Terracotta: Distributed Shared Objects in the JVM' site to delicious  Add 'Terracotta: Distributed Shared Objects in the JVM' site to technorati  Add 'Terracotta: Distributed Shared Objects in the JVM' site to digg  Add 'Terracotta: Distributed Shared Objects in the JVM' site to dzone

Terracotta is een JVM clustering tool die het mogelijk maakt om bepaalde objecten als distributed shared objects te markeren waarna alle instanties van hetzelfde programma op verschillende JVM’s automatisch met hetzelfde object werkend. Daarnaast worden ook alle synchronisatie principes (synchronized, maar ook alle java.util.concurrent classes) gedistribueerd uitgevoerd. Dit maakt het erg makkelijk om een applicatie te clusteren over meerdere JVM’s zonder hiervoor een moeilijke constructie te gebruiken.

Terracotta maakt dat allemaal transparant mogelijk door deze functionaliteit in de JVM op bytecode level te implementeren. Als je als ontwikkelaar een object als distributed markeert (in een config xml) en dat object wordt op regel X geinstantieerd List cart = new ArrayList(); dan wordt onder water door terracotta geregeld dat de 1e keer dat een thread in welke applicatie instantie dan ook deze regel uitvoert er een nieuw object wordt gemaakt. Deze wordt op de terracotta server geregistreerd en alle volgende threads die deze regel uitvoeren zullen een referentie naar dit object terugkrijgen ipv een nieuw object.

Wat terracotta overigens ook hierdoor mogelijk maakt is dat je een virtuele heap krijgt die vele malen groter is dan de heap size van de individuele JVM’s. De terracotta server zorgt er voor dat alleen die data die gebruikt wordt op een bepaalde JVM instantie ook daadwerkelijk in de lokale heap aanwezig is. De data wordt op field level naar de lokale JVM gebracht en ook updates van die data worden op field level gesynchronizeerd met de terracotta server en alle andere JVM’s die die data ook lokaal aanwezig hebben.

Daarnaast is het mogelijk om een bepaalde methode te markeren als distributed. In dat geval wordt de methode aangeroepen op alle instanties van de applicatie wanneer slechts 1 thread de methode aanroept. Ook is het mogelijk om distributed objects persistent te maken zodat na een server crash de date nog steeds aanwezig is.

Voor commerciele support packages en releases zie http://www.terracottatech.com/

Posted by Tobias Groothuyse at 20:16 on Friday 14 December    Add 'JSR-310 Date and Time API' site to delicious  Add 'JSR-310 Date and Time API' site to technorati  Add 'JSR-310 Date and Time API' site to digg  Add 'JSR-310 Date and Time API' site to dzone

Stephen Colebourne, co-spec lead van JSR-310, gaf een presentatie waarin de status van de nieuwe Date en Time API aan bod kwam. De presentatie begon met een eerste slide waarop een code snippet stond van een goed uitziend stuk code stond omtrend de bestaande Date en Calendar classes. De betreffende 5 regels bleken echter 6 bugs te bevatten die allemaal te wijten zijn aan een slecht ontworpen API.

  • new Date(2007, 12, 14, 16, 40) // Ziet er goed uit echter: new Date(2007-1900, 11, 14, 16, 40) had het moeten zijn
  • TimeZone.getInstance(“Europe/Bruxelles”); // Foutieve parameter gooit geen exceptie maar returneert de default timezone
  • DateFormatter klasse kan niet omgaan met Calendars
  • Calendar.getTime() returneert een Date instance waarbij de gezette TimeZone op de Calendar niet op de Date instance zit
  • Aparte Date/Time API’s voor XML en concurrency

De fouten en onhandige werking van de Date/Calendar in java waren inmiddels gelukkig al opgevangen door Joda Time een open-source library. Er bleek echter nog veel support te zijn voor het hebben van een echte, goed, Date en Time API binnen Java.

Binnen JSR-310 wordt onderscheid gemaakt tussen Continous time (machine) en Human time. Het continuous time gedeelte bevat de volgende classes: Instant, InstantInterval en Duration (lengte van een interval). Deze klasses krijgen support om tijdstippen en intervallen over de leeftijd van het universum weer te geven waar kennelijk 96 bits voor nodig is. Hoe dat opgelost gaat worden is nog een open punt maar het zal in ieder geval transparant blijven voor de ontwikkelaar.

Voor het human time gedeelte is een nette verdeling gemaakt van de verschillende concepten Date,Time, ZoneOffset en TimeZone deze klassen worden dmv compositie samengesteld waardoor combinaties als LocalDate, ZonedDateTime, LocalDateTime etc.

Voor de laatste stand van zaken zie: https://jsr-310.dev.java.net, release waarschijnlijk in 1.7

Posted by Erwin De Gier at 17:57 on Friday 14 December    Add 'The Closures Controversy door Joshua Bloch.' site to delicious  Add 'The Closures Controversy door Joshua Bloch.' site to technorati  Add 'The Closures Controversy door Joshua Bloch.' site to digg  Add 'The Closures Controversy door Joshua Bloch.' site to dzone

Joshua Bloch, Chief Java Architect bij Google en Java language designer, vertelt ons
in sneltreinvaart het gevaar van de introductie van closures in Java.

De wikipedia definitie van een Closure is als volgt:

A closure is a function that is evaluated in an environment containing one or more bound variables.
When called, the function can access these variables.

Read the rest of this entry »

Posted by jcn at 16:07 on Friday 14 December    Add 'Het zit erop…' site to delicious  Add 'Het zit erop…' site to technorati  Add 'Het zit erop…' site to digg  Add 'Het zit erop…' site to dzone

…JavaPolis 2007 is een uurtje geleden afgelopen. We hebben veel gezien en gehoord. Leuke, interessante of indrukwekkende presentaties. En soms ook wat mindere.
Maar het is nog niet helemaal voorbij; maandag 11 februari 2008 organiseren we een Techmeeting waarin we de meest interessante onderwerpen aan jullie zullen presenteren. Zet het vast in je agenda!

Posted by Erwin De Gier at 13:06 on Friday 14 December    Add 'Java 2D and 3D Performance door Frank Suykens' site to delicious  Add 'Java 2D and 3D Performance door Frank Suykens' site to technorati  Add 'Java 2D and 3D Performance door Frank Suykens' site to digg  Add 'Java 2D and 3D Performance door Frank Suykens' site to dzone

Frank Suykens van Luciad laat ons de mogelijkheden van java 2D en 3D zien. Het standpunt dat Java slechter zo performen door de garbage collector wordt hiermee onderuitgehaald.
De 3D demo maakte gebruik van OpenGL en laat ons een 3D rendering zien van schiphol met daarop alle vluchtbewegingen in 3D, inclusief 3D modellen van de gebouwen, vliegtuigen en een foto-realistische achtergrond.
Dit wordt in de praktijk gevoed door realtime vliegtuig informatie. De applicatie wordt gebruikt door het orgaan wat vliegbewegingen boven schiphol controleerd.

De 2D demo toonde een prototype voor een vluchtleider applicatie. Deze performance kritische applicatie garandeerde een scherm update van onder 300 ms. Op het scherm werden alle vluchten in een groot gebied rond schipol getoond.
Behorende bij elke vlucht werd vlucht-informatie getoond (hoogte, snelheid, e.d.) welke meebeweegt met de positie van het vliegtuig. Hierbij was het noodzakelijk dat de vluchtinformatie van verschillende vluchten niet overlapte.
Om de performance te meten werd gebruik gemaakt van System.nanoTime(), JProfiler en JConsole.
Uit analyses blijkt dat inderdaad de garbage collector voor performance drops zorgt, deze waren echter allemaal op te lossen. Hiervoor werden de volgende tips gegeven:
-het gebruik van incremental GC i.p.v. lineair, dit is een JVM optie en zorgt voor een constantere load van de GC, i.p.v. spikes welke zorgen voor plotselinge performance drops.
-het tweaken van de ruimte voor langlevende en kortlevende objecten. Het opruimen van kortlevende objecten kost namelijk significant meer resources. Het is dus een optie om meer objecten als kortlopend te beschouwen. Uiteraard is het hier zoeken naar een balans.

De conclusie van de presentatie was dat Java weldegelijk zeer geschikt is voor high performance 3D en 2D grafische applicaties en near-realtime systemen te bouwen zijn met gebruikmaking van de standaard JVM.
Dit kan bereikt worden door doordat de GC goed instelbaar is.

Posted by Erwin De Gier at 11:54 on Friday 14 December    Add 'Apache Wicket door Martijn Dashorst' site to delicious  Add 'Apache Wicket door Martijn Dashorst' site to technorati  Add 'Apache Wicket door Martijn Dashorst' site to digg  Add 'Apache Wicket door Martijn Dashorst' site to dzone

Apacha Wicket wordt gepresenteerd als een framework voor het bouwen van webapplicaties in de lijn van Struts.
Het uitgangspunt is om voornamelijk gebruik te maken van Java en Html.
De demonstratie leert ons dat er een schil rond het gebruikelijke request/response verhaal is gelegd waarmee het mogelijk is geworden om statefull met een html pagina om te gaan.
Dit met gebruik van events. Deze events zijn bijvooreeld het klikken op een link.

Read the rest of this entry »

Posted by Jan-Hendrik Kuperus at 0:21 on Friday 14 December    Add 'De Magie van Adobe Flex' site to delicious  Add 'De Magie van Adobe Flex' site to technorati  Add 'De Magie van Adobe Flex' site to digg  Add 'De Magie van Adobe Flex' site to dzone

Donderdagochtend, 9:30, JavaPolis conferentie, de keynotes. In een woord: WOW. De keynote begon met een soort van gespeelde discussie tussen een Flexpert (James Ward) en een zogenaamde sceptische Java programmeur (Bruce Eckel). Ik was na J-Fall al redelijk geinteresseerd geraakt in Adobe Flex, maar na de demos van vandaag (en de daaropvolgende sessie over Enterprise RIA) ben ik er van overtuigd dat Adobe Flex de beste kaarten in de hand heeft voor rijke gebruikers ervaringen.

Read the rest of this entry »

Posted by Jan-Hendrik Kuperus at 0:44 on Thursday 13 December    Add 'JSR 318 – Enterprise Java Beans 3.1' site to delicious  Add 'JSR 318 – Enterprise Java Beans 3.1' site to technorati  Add 'JSR 318 – Enterprise Java Beans 3.1' site to digg  Add 'JSR 318 – Enterprise Java Beans 3.1' site to dzone

Na een zeer teleurstellende sessie met de lokkende titel: ‘Java Persistence – A heretic’s demonstration’, wat een slecht voorbereide demo van een third-party database was (InterSystems Cache), nam ik plaats bij het verhaal over de nieuwe specificatie voor EJB 3.1.

Onbekend als ik was met de EJB specificaties heb ik in dit uurtje een hoop geleerd over EJB 2.x en EJB 3.0 en heb ik een aardig beeld van waar de spec heengaat met EJB 3.1. Zoals ook al het doel was bij EJB 3.0, mikt JSR 318 op een versimpeling van de specificatie en dan met name voor de developer. Deze versimpeling zal op twee belangrijke gebieden het best te voelen zijn: ontwikkeling en packaging.

Read the rest of this entry »

Posted by Jan-Hendrik Kuperus at 0:24 on Thursday 13 December    Add 'Google Stuff (Guice & GWT)' site to delicious  Add 'Google Stuff (Guice & GWT)' site to technorati  Add 'Google Stuff (Guice & GWT)' site to digg  Add 'Google Stuff (Guice & GWT)' site to dzone

De eerste sessie over Google materialen die ik bijwoonde ging over Google Guice (spreek uit als juice), een veelbelovend framework waar ik graag wat meer handson voorbeelden van had gezien. Hoewel het praatje van Bob Lee op zich interessant was had een titel als Effective Dependency Injection er beter bij gepast. Het tweede deel van deze post gaat echter over de Google Web Toolkit, waar een veel interessanter verhaal bij hoorde.

Read the rest of this entry »

Posted by Jan-Hendrik Kuperus at 0:14 on Thursday 13 December    Add 'James Gosling en zijn evangelisten' site to delicious  Add 'James Gosling en zijn evangelisten' site to technorati  Add 'James Gosling en zijn evangelisten' site to digg  Add 'James Gosling en zijn evangelisten' site to dzone

De eerste dag van de Conference sessies van JavaPolis 2007 begon met een praatje van Stephan Janssen, de oprichter en huidige voorman van de Belgische Java User Group. Met enkele grote getallen verklaarde hij de JavaPolis 2007 tot een groot succes. Met bezoekers uit meer dan 100 landen, meer dan 40 sprekers en ruim 40 partners en uiteraard een uitverkochte conferentie kan hij dat met gepaste trots stellen. James Gosling luidde daarna de conferentie in met zijn ‘treetop’ overview van Java. Ook hier werd met enkele grote getallen gesmeten, zoals een schatting van het aantal Java-enabled devices in de wereld, welke op zo’n vijf miljard werd geschat. Met ruim zes miljoen professionals die hun salaris verdienen met Java en een zeer actieve community was ook hij erg trots op zijn geesteskind. Enkele hilights van James zijn verhaal:

  • Vandaag is NetBeans 6.0 gereleased. Betere editors, betere UML ondersteuning, betere Enterprise ondersteuning, en nog veel meer. Zie netbeans.tv en netbeans.org voor meer informatie.
  • Java Performance. Een grote mythe omtrent Java is dat het traag is omdat het een geinterpreteerde taal is. James liet door middel van enkele resultaten van grote benchmarks (o.a. SciMark) zien dat Java tegenwoordig ongeveer net zo snel, zo niet sneller is dan C/C++. Een leuk extraatje bij deze charts was dat C# ook getest is en er over het algemeen bedroevend slecht vanaf komt.
  • Het OpenJDK project trekt veel aandacht en de ontwikkelingen van Java 7 zijn dan ook volop in beweging.
  • JavaFX groeit hard in populariteit en er komt een IDE/Toolset aan die zowel door Java programmeurs, als voor grafische designers te gebruiken is.

Hierna kwamen de gebruikelijke demos van de Java Evangelisten, er was een korte demo van Jasper Reports een Java 2D gebaseerde rapport engine. Een korte demo van hoe JavaFX het ontwikkelen van geheel nieuwe interfaces enabled. Als afsluitende demo waren de twee robots van J-Fall terug, maar dit keer deden ze geen dansje. Dit keer werden ze door een aantal Sun Spots aangestuurd die ‘verstopt’ waren in de kleding van een evangelist. Elke beweging die hij maakte werd nagebootst door de twee robots. Helaas namen ze geen orders aan voor Robot Armies…

James slaagde er met zijn leuke feitjes, grappige anekdotes en professionele enthousiasme wederom in om in ieder geval mij warm te draaien voor de volgende sessies en om dingen als NetBeans 6.0 en JavaFX uit te proberen.

–JH


© 2018 Java Competence Network. All Rights Reserved.