Assemblix-uutiskirje lähetetään MikroPC.netin uutiskirjeen tilaajille. Voit halutessasi poistua lähetyslistalta omista asetuksista.



Tiistai 10.6.2003 klo 13:00

JBoss kiertää J2EE-speksejä aspektilaajennuksilla
JavaOnella näytön paikka
Pocket PC 2003 SDK valmis
TechEdissä tietotyöläisen päivitysrumba, Yukon myöhässä
.NET 1.1 rikkoo ASP.NET-sivuja

Lisää uutistutkailua »

Sovellusarkkitehtuurien hienosäätöä

90-luvulla ohjelmistotuotannossa siirryttiin oliopohjaisuuteen. Tai ne siirtyivät, jotka ehtivät. Monelle oliot jäivät pelkäksi teoriaksi. Internet-ryminässä tarvittiin aluksi muita taitoja: HTML:ää, JavaScriptiä, CGI-virittelyä, Perl-koodausta ja grep-solmujen availua.

Kiihkeimmän pioneerivaiheen tasaannuttua kertakäyttöohjelmoinnin vaarat tajuttiin. Projekteihin ja välineisiin lisättiin kunniallisia vanhan polven systemaattisia menetelmiä ja monitasomallin arkkitehtuureja.

Java-komponenteille kehitettiin pavut ja EJB, Microsoftille COM/COM+ -pohjainen DNA eli Distributed interNet Architecture. Hieman myöhemmin Sun ryhmitteli Java-tekniikat uusiksi ja esitteli Java 2 -alustan ja siinä yhtenä osana J2EE:n eli Java 2, Enterprise Editionin. Vuonna 2000 Microsoft esitteli .NETin, jolla korvataan sitten kaikki entinen.

Uusissa Java- ja COM/.NET-tekniikoissa liiketoimintasääntöjä siirretään skripteistä komponentteihin ja sovelluspalvelimilla suoritusta hajautetaan. Joskus turhaankin.

J2EE on hyvä esimerkki arkkitehtuuriylilyönneistä ja kaikkivoipaisuuden harhasta.

Nykyisen J2EE 1.3-version suosituin tekniikka ei ole suinkaan järeä EJB-komponenttimalli vaan skriptipuuron keittämiseen sopiva JSP, JavaServer Pages. JSP 1.2 on kaikkea muuta kuin Enterprise-tasoa ja vertailukelpoinen lähinnä Microsoftin ASP-skripti­hirvitykseen.

Kummassakin sotketaan keskenään html- ja skriptikoodia ja toivotaan, että kaikki toimii. Kunnollista tyyppitukea ei löydy, toimintavarmuus on vähän mitä sattuu: varsinkin poikkeuskäsittely on syvältä - ohjelmointi­mallista eli spagettisopasta nyt puhumattakaan.

Tällä hetkellä ohjelmistoala ja varsinkin Java-yhteisö pähkäilee uusien kehityskirjastojen ja -menetelmien sekamelskassa. Perusongelmana tuntuu olevan tekniikoiden yhdistelemisen ja vakioinnin vaikeus.

Oliopohjaisuus yksinään ei tuo ratkaisua. Haasteena on olioiden sitominen käyttöliittymään ja tietovarastoon.

Käytännössä ongelma ilmenee esimerkiksi oliohierarkian pysyvyydenhallinnassa. Esimerkkitapaus selventää: juuressa on emo-olio tilaus, sillä jäseninä tilausrivit ja niillä puolestaan jäsenenä tuotteet (tai toteutuksesta riippuen tilausrivin tiedot suoraan, koska tuotetta ei välttämättä ylläpidetä omana käsitteenään enää tilauskannassa).

Tietokannassa rakennelma ilmennetään relaatioilla ja ylläpidetään viite-eheyksillä. Koodissa rakennelma ilmenee kuitenkin oliohierarkiana. Juuriolion tunnus (tai toteutuksesta riippuen itse olio tai jopa koko hierarkia) säilytetään sovelluspalvelimen tilatiedoissa.

Ohjelmoijan tai arkkitehdin haasteena on luoda kevyt mutta samalla toimiva rakennelma, joka mahdollistaa koko kerroskakun muokkaamisen tilattomassa web-ympäristössä ja mahdollisesti hajautetussa sovelluspalvelinympäristössä. Ja lopulta kerroskakun kuljettamisen tietokantaan, muuntamisen oliohierarkiasta relaatiomuotoon tai takaisin.

Helppoa?

EJB:n kannattajat pitävät tässä kohtaa esitelmiä Container Managed Persistence -tekniikasta, jolla koko ongelma sysätään alustan huoleksi. CMP ei ole kuitenkaan sopiva ratkaisu hankaliin tietorakenteisiin. EJB 1.x:ssä on myös puutteita esimerkiksi kannan avainkenttien käsittelyssä.

EJB:tä kevyemmäksi vaihtoehdoksi monet Java-ohjelmoijat tutkailevat JDO:ta eli Java Data Objectsia.

.NET-puolelta ei löydy EJB:n kaltaista palveluarkkitehtuuria. Pysyvyydenhallinta on hoidettava itse. Microsoftin ASP.NET-toteutuksesta löytyy toki oma tilapalvelu, mutta sillä hallitaan pelkästään istunnon tilatietoja.

Toisaalta .NET tuo kehittyneen metatietoinfrastruktuurin: serialisointi­palvelut ja Reflectionin. Tarvittavien apuluokkien kuten Object-Relational Mapping -kirjastojen rakentaminen onnistuu näiden ansiosta Java-ympäristöä helpommin.

Avoimen koodin J2EE-palvelimen JBossin pääkehittäjä Marc Fleury on monessa otteessa kehunut .NETin perusarkkitehtuuria ja moittinut J2EE:n sekavuutta ja puutteita. Kehittäjälle rakenteellinen kankeus ilmenee turhan infra­struktuurikoodin jatkuvana ylläpitämisenä.

Suomeksi sanottuna: kalliina ja hankalasti ylläpidettävänä koodina.

JBoss Group on päättänyt lisätä sovelluspalvelimeensa .NETistä tuttua "ohjelmointia attribuuttiohjailulla".

Idean taustalla on Xeroxin vuonna 1997 esittelemä aspektiohjelmointi eli Aspect-Oriented Programming.

Tyylikkäässä AOP-mallissa ohjelmoija voi ilmaista meta-attribuuteilla luokalle tai sen jäsenelle haluamansa erityiskohtelun. Esimerkiksi tilaus-luokalle määritellään attribuutti "transaktionaalinen". Alusta hoitaa loput.

Malli on tuttu jo COM+ -ohjelmoijille ja .NETistäkin löytyy Attribute-käsite vapaasti muokattavine ja laajennettavine luokkineen.

Aspektiohjelmointikaan ei tuo selkeää ratkaisua jolla sovelluksen toisistaan eristetyt loogiset kerrokset nivottaisiin yhteen.

Yhdeksi malliksi on ehdotettu Jakarta Strutsistakin tuttua MVC:tä eli Model-View-Controller -jakoa.

Aiheista kiinnostuneille muutamia linkkivinkkejä:


Päällekkäisten standardiehdotusten, elinkaareltaan epämääräisten kikkailuspeksien ja muun infoähkyn keskeltä on vaikea nostaa esiin yhtä ja ainoaa varmaa tekniikkaa. On siis todennäköistä, että ohjelmisto rakennetaan vanhan kaavan mukaan eli koodaten koko infra käsin. No ainakin kehittäjä tietää, missä mennään. Toivottavasti.

Harri J. Talvitie






Uutiset

 

JBoss kiertää J2EE-speksejä aspektilaajennuksilla

JBoss Group, LLC. julkisti viime viikolla avoimen koodin JBoss 4.0 -sovelluspalvelinpäivityksestä esiversion (DR1 eli Developer Release 1). Kiinnostavin uutuus on Java-komponenttien ohjelmointiin tuotu aspektilaajennus eli Aspect-Oriented Programming.

Aspektilaajennuksilla ohjelmoija voi määritellä olioille pysyvyyden­hallintaa, välimuistilogiikkaa, replikointisääntöjä, transaktioita, etäkutsuja sekä tietoturvaa. Normaalin ohjelmoinnin asemesta näitä lisäpalveluja kutsutaan luokkiin lisättävillä attribuuteilla eli aspekteilla.

Aspektiohjelmoinnilla voidaan luoda aiempaa helpommin hajautettuja, transaktiopohjaisesti suoriutuvia komponentteja. Ohjelmoijan ei tarvitse välittää J2EE:n kryptisistä EJB-rakenteista, Home Interfaceista, JNDI-hakemistokutsuista ja muista J2EE-infrastruktuuripalveluista. Komponentin koodi sisältää pelkän liiketoimintalogiikan ja paikallisen tilanhallinnan. Aspektilaajennukset "kaappaavat" Java-tavukoodin ja lisäävät kutsujen väliin enterprise-laajennuksia kuten etäkutsut.

JBoss on tähän mennessä esitellyt 3.x-tuotettaan J2EE 1.3 -yhteensopivana. Sun ei tästä väitteestä pidä, sillä yhteensopivuus todetaan virallisissa Sunin hallinnoimissa (ja kauppaamissa) testeissä. J2EE-määrityksistä poikkeavat aspektilaajennukset eivät ainakaan helpota yhteensopivuustodistuksen saamista.

 

JavaOnella näytön paikka

Sun Microsystemsin vuosittainen Java-kehittäjäyhteisölle omistettu JavaOne-tilaisuus käynnistyy tiistaina San Franciscossa. Tämänkertainen tilaisuus osuu mielenkiintoiseen saumaan, sillä kritiikki Sunia kohtaan on kasvanut. Lisäksi Microsoftin kilpaileva .NET-alusta on näyttänyt kyntensä varsinkin tuottavuudessa, joten Javan on vastattava haasteeseen.

Sun on luvannut "entistä helppokäyttöisempiä" Java-välineitä perusohjelmoijille. Tavoitteena on laajentaa Javan ohjelmoijamäärää nykyisestä 3 miljoonasta 10 miljoonaan. Tähtäimessä ovat varsinkin Visual Basic -ohjelmoijat.

Projektinimellä Rave tunnettu väline nojautuu käyttöliittymien ohjelmointirajapintojen osalta uuteen JavaServer Faces -tekniikkaan (JSF) ja JDBC-Rowset -tietokantarajapintoihin. Luvassa on ilmeisen suora kilpailija Microsoftin Visual Studio .NET -kehitysympäristölle.

Ravesta on nyt valmiina vasta esiversio. Lopullinen väline ilmestynee vuoden 2004 puolella.

Rajapintarintamalla on luvassa vertaisverkkosovellusten ohjelmointiin sopivan JXTA-standardin versio 2.1. Uudessa versiossa on parannettu turvaominaisuuksia ja upotettu pääsyhallintamekanismit peruskirjastoon.

JXTA 2.1 sopii perinteisen P2P-käytön lisäksi myös sovellusten ja järjestelmien toiminnan seuraamiseen sekä suorituskyvyn ja muiden keskeisten määreiden mittaamiseen. Sun aikoo lisätä JXTA:n osaksi N1-alustaa, StarOfficea ja Solarista.

Sun julkaisee myös Javan kahvikuppitunnuksesta uusitun version. Vaikka Java itsessään skaalautuukin, samaa ei voi sanoa pientä viivapiperrystä sisältävästä logosta. Uudella entistä selkeämmällä Java-logolla tunnus voidaan skaalata pienten matkapuhelinten näyttöihin tai muihin ahtaisiin pintoihin.

Avoimen koodin aatteen kannatusta vakuutellaan myös uudella java.net-sivustolla.

 

PocketPC 2003:n kehittäjäpaketti valmis

Ozonen eli Pocket PC 2003:n kehityspaketti on valmis ja imuroitavissa Microsoftin web-palvelusta. Paketista löytyy myös Pocket PC 2003 -emulaattori. Microsoftin julkisilla sivustoilla linkkiä ei vielä näy: osoite on peräisin Microsoftin Mobile Solutions Partner -julkistuksista.

Loppusuoralla oleva Pocket PC -kämmenlaitteiden käyttöjärjestelmäpäivitys tuo huomattavia parannuksia ohjelmoijalle. Windows CE 4.2:een pohjautuva Pocket PC 2003 sisältää myös .NET Compact Framework -ajoympäristön. CE 3.0 -pohjaisiin Pocket PC 2000- ja 2003-versioihin Compact Frameworkin voi myös asentaa jälkikäteen.

Pocket PC 2003:lle ohjelmoidaan eMbedded Visual C++ 4.0:lla (natiivikoodi) tai Visual Studio .NET 2003:lla ("hallittu" eli managed-koodi: VB.NET, C#.NET). Aiemmat eMbedded 3.0 -versiot eivät CE 4.2:lle kelpaa. Uudesta kehityspaketista ei löydy eMbedded Visual Basiciä eikä ajoympäristössäkään ole enää eVB runtime -komponenttia.

CE 4 ja eVC4++ sisältävät tuen Intelin Xscale-prosessoreille, C++:n poikkeuskäsittelyn, Standard Type Libraryn (STL) ja Run Time Type Information -mekanismin oliotyyppien ajonaikaiseen selvittämiseen. Yksityiskohdista kiinnostuneille löytyy MSDN-kehittäjäpalvelun white paper -dokumentti.

Päivittäminen CE 3.0:sta 4.2:een ei suju yhtä mutkattomasti kuin työpöytä-Windowseissa, sillä jokaisella laitevalmistajalla on oma erityissovitettu Pocket PC -jakelu. Uuden version valmiina sisältäviä laitemalleja on luvassa kauppoihin muutaman kuukauden sisällä.

SDTimesin mukaan Microsoft on jakanut CE:n hienojakoisesti lisensoitaviin paketteihin. Core-paketti sisältää CE-ytimen lisäksi tiedostojärjestelmän, verkkoprotokollat, Windows Media -rajapinnat ja .NET Compact Frameworkin. Kompaktina se sopii esimerkiksi digiboxien tai verkkolaitteiden upotetuksi käyttöjärjestelmäksi. Laajempi Professional-versio tuo tämän päälle graafisen käyttöliittymän ja IE-selaimen.

SDTimesin mukaan Microsoft on tiputtanut laitekohtaista CE-lisensointihintaa viidennekseen aiemmasta.

Brighthand.comin nimettömän lähteen mukaan Pocket PC 2003 on määrä julkistaa virallisesti 23. kesäkuuta.

 

TechEdissä tietotyöläisen päivitysrumba, Yukon myöhässä

Microsoft esitteli viime viikon Tech.Ed-tilaisuudessa tietyöläisen peruspäivityksiä.

Osallistujille jaettiin Exchange Server 2003 RC1, joka on välttämätön päivitys Windows Server 2003:een päivittäneille. Uusi Exchange ei muilta osin tarjoa järisyttäviä parannuksia. Aiemmin erillisenä tuotteena toimitettu Mobile Information Server on nyt liitetty osaksi Enterprise-versiota.

SQL Serverin päivitys eli Yukon ei ehtinyt messuille jaeltavaksi. Ensimmäinen rajattu Yukon-beta on luvassa vasta myöhemmin kesällä, julkinen beta kenties vasta PDC-kehittäjätapahtuman kynnyksellä.

Yukonin aikataulua on hieman rukattu: alun perin tavoitteena oli saada tuote ulos vuoden 2004 alkupuolella. Nyt tähtäimessä on loppupuoli.

SQL Server -kehitystyössä ei ole ilmennyt kuulemma ongelmia, .NET-ajoympäristön integrointi osaksi SQL Serveriä halutaan vain tehdä kunnolla. Kyseessä on kieltämättä melkoinen arkkitehtuurimuutos: Nykyisen T-SQL -kielen rinnalle ilmestyy koko CLR .NETin tyyppijärjestelmästä lähtien. Myös T-SQL:ään tulee muutoksia kuten aito rekursiivisuus ja poikkeuskäsittely.

Yukonin viipyminen hidastaa myös seuraavan Visual Studio .NETin eli Whidbeyn julkistusta. Tuotteet on sovitettu tiiviisti yhteen: Whidbey tukee läpinäkyvästi SQL Serverissä olevan .NET-koodin editointia ja debuggausta.

 

.NET 1.1 rikkoo ASP.NET-sivuja

Runsas vuosi sitten ilmestyneen .NETin ensimmäinen merkittävä päivitys eli huhtikuussa ilmestynyt .NET Framework 1.1 on aiheuttanut päänvaivaa ASP.NET-kehittäjille. Päivitys rikkoo JavaScript-koodin rakenteen aiheuttaen loppukäyttäjälle hämmentäviä ponnahdusikkunoita ja toimimattomia sivuja.

Ongelma ilmenee automaattista Postback-toimintoa hyödyntävillä ASP.NET-sivuilla. Uuden .NETin tuottamassa JavaScript-koodissa tunnisteiden nimiin ilmestyy kielletty kaksoispistemerkki.

Korjausta ei ole vielä yleisesti saatavilla, mutta Microsoftin Product Support Services voi sellaisen toimittaa. Virhettä käsitellään Microsoft Support -palvelun Knowledge Base -sivulla.




Uutiset

Verkossa kahden viikon aikana ilmestyneitä mielenkiintoisimpia kehittäjäuutisia:

* 6.6.2003 Sonera järjestää avoimen kilpailun uusille ja nykyisille matkapuhelinpalveluiden sovelluskehittäjille. Palkintona on muun muassa matka GSM World Congressiin Cannesiin helmikuussa 2004.
* 5.6.2003 JBoss Groupista lähteneet perustivat palveluyrityksen. Uudessa Core Developers Network -ryhmässä myös muualta tulleita open source -asiantuntijoita kuten Jakarta-tekniikoiden kehittäjiä.
* 4.6.2003 Yukon eli Microsoftin SQL Server -päivitys lykkääntyy vuoden 2004 jälkipuoliskolle, ensimmäinen beta kesällä. Yhtiö tiputti reilusti SQL Server Developerin hintaa ja ilmoitti yhteistyöstä Borlandin kanssa: tuote paketoidaan C#Builderin kylkeen.
* 3.6.2003 Smartphone-sovellusten jakelurajoitukset suututtavat kehittäjiä. Jokaiselle paketille saatava digitaalinen allekirjoitus operaattorilta.
* 2.6.2003 Sunin julkaisema J2SE 1.5:n prototyyppi sisältää kaikki aiemmin kaavaillut muutokset paitsi metatiedon käsittelyn.
* 2.6.2003 Sun ja JBoss Group kiistelevät edelleen JBossin J2EE-yhteensopivuusnimikkeestä. JBossin Marc Fleury tavoitteena selvittää erimielisyydet kesäkuun JavaOne-tilaisuudessa.
* 28.5.2003 SAP luovutti GPL-lisenssilla jaettavan SAP DB -tuotteen oikeudet ja kehitysvastuun MySQL:lle. SAP jatkaa kantakoodin kehitystä ja hyödyntää sitä jatkossakin omissa tuotteissaan.
* 27.5.2003 Euroopan toiseksi suurin mobiilioperaattori T-Mobile julkistaa Smartphone-pohjaisen puhelimen loppuvuonna sopivasti joulumarkkinoille. Tavoitteena 200 000 - 300 000 asiakasta vuoden sisällä.
* 26.5.2003 Avoimen koodin Eclipse-kehitysympäristöstä suunnitellaan 3.0-päivitystä. Luvassa irtiotto muutamista nykyisen Eclipse 2.x:n rajapinnoista, joten plug-in:it eivät tule toimimaan sellaisenaan. Ajoalustana J2SE 1.4.

Tuoreet kehittäjäuutiset ja kaikki uutiskirjeet osoitteessa Assemblix.net»



Aiemmin ilmestyneet Assemblix-kirjeet:

  • Ammatti: suomalainen ohjelmoija
  • Webin uudet rakennusvälineet
  • Lukittu ja leikelty Longhorn
  • SP2: Tuhoa ja turvaa
  • Microsoft-messut identiteettikriisissä
  • Koodaajan patenttiviidakko
  • Elinkaareutuvaa Microsoft-koodausta
  • Monoa Microsoftille
  • Kuka valvoo koodia?
  • Hidasta hommaa
  • Vapaus valita
  • Paineessa viisasteltu
  • SOA - seuraava arkkitehtuurisi?
  • Koodin tähteet
  • Longhorn-lähetystyöntekijät liikkeellä
  • Miten sujui softabisnes vuonna 2003?
  • Käyttöjärjestelmä ohjaa kehittäjää
  • Mitä siellä toimistossa oikein tapahtuu?
  • Missä viipyy Smartphone?
  • Harmaantuvia koodivelhoja vai välkkyjä moniosaajia?
  • Avantoavusteinen ohjelmointi: suomalaiskoodarin salattu doping?
  • Mini-Assemblix
  • Web-sovelluspalvelujen kypsymistä odotellessa
  • Rekursiivisesti sisältökriittistä rönsyilyä
  • Pääkopan epäsymmetriasta vielä
  • Ohjelmoijantauti
  • Kenen koodia käytät?
  • GOTO kesälaitumelle
  • Sovellusarkkitehtuurien hienosäätöä
  • Koodi pääsee lööppiin
  • Windows-arkkitehtuurin alasajo
  • Avointa propagandaa
  • Uskallatko päästää Microsoftin taskuusi?
  • Softaduunarin äkkisukellus
  • Turvatonta tulevaisuutta
  • Naiset ja menetelmät puhuttivat
  • Sukupuolikoodi
  • Toimiiko äärikoodaus, laihduttaako Atkins?
  • Löysä XML kiihtyy raudalla
  • Java ja oikeusorientoitunut ohjelmointi
  • Ei vielä uhanalainen
  • Valitse vuoden kehittäjäväline
  • Tienaatko riittävästi?
  • Keskinkertaisuus kannattaa?
  • Web services + xml = hype^2
  • Pingviiniksi pingviinin paikalle?
  • Assemblix-pilotti


  • © 2002-2007 X-Telnet Oy   Aineiston uudelleenjulkaisu ilman lupaa kielletty