Juhannuksena Arkkitehtuureilla YHTEISET RAKENNUSPUUT. Java/J2EE vastaan. Microsoft.Net OHJELMISTOT ARKKITEHTUURIT ESITTELYSSÄ

Samankaltaiset tiedostot
.NET ja C# Virtuaalikone. Common Language Infrastructure (CLI) Periaate. Etuja. Haittoja. Mikä on CLI. CLI standardin merkitys (CLS, Ecma)

HSMT J2EE & EJB & SOAP &...

.NET ajoympäristö. Juha Järvensivu 2007

HOJ J2EE & EJB & SOAP &...

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri

J2EE vs..net Olli Sakari

Sovellusarkkitehtuurit

Harri Kaukovuo Senior Sales Consultant Technology Sales Oracle Finland Oy

Järjestelmäarkkitehtuuri (TK081702) SOA, Service-oriented architecture SOA,

Nääsvillen oliopäivät.net vrs Java

Kieliversiointityökalu Java-ohjelmistoon. Ohje

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services

Visual Basic -sovelluskehitin Juha Vitikka

Tiedonsiirto- ja rajapintastandardit

Hajautettujen järjestelmien rakentaminen - Jini. Ohjelmistotuotantovälineet-seminaarin esitelmä

Järjestelmäarkkitehtuuri (TK081702)

Case TUHTI. Projektin tunnuslukuja. ! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä ! Java luokkia n. 5000

in condition monitoring

WINE API ja Virtualisointiohjelmistot

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

4. Lausekielinen ohjelmointi 4.1

TIETOKONEYLIASENTAJAN ERIKOISAMMATTITUTKINTO

Hajauta yhdistäen ja yhdistä hajauttaen: Web Services

Virtualisointiympäristössä on kolme pääosaa: isäntä (host), virtualisointikerros ja vieras (guest).

Integrointi. Ohjelmistotekniikka kevät 2003

FuturaPlan. Järjestelmävaatimukset

Järjestelmäarkkitehtuuri (TK081702) Lähtökohta. Integroinnin tavoitteet

Android ohjelmointi. Mobiiliohjelmointi 2-3T5245

Tietojärjestelmäarkkitehtuurit

Directory Information Tree

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Tuotantokoneen langaton etädiagnostiikka

Java Platform, Enterprise Edition (Java EE)

Tekniset vaatimukset Tikon 6.4.1

Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat

VMwaren keskitetty työasemaratkaisu

SIIRTYMINEN MONITASOARKKITEHTUURIIN: MICROSOFT.NET:IN TARJOAMAT MAHDOLLISUUDET

Linux. 00 Keskeiset piirteet. Unix ja Linux Helsingin ammattikorkeakoulu Stadia Vesa Ollikainen (muokannut M.Mäki-Uuro) Kysymyksiä

11/20: Konepelti auki

SISÄLLYSLUETTELO. Sisällysluettelo. ALKUSANAT... III Palaute... III Kirjailijat... III

Pedacode Pikaopas. Web-sovelluksen luominen

Interfacing Product Data Management System

Mobiilimaailma murroksessa 2011 Tommi Teräsvirta, Tieturi

Miten voin selvittää säästömahdollisuuteni ja pääsen hyötymään niistä?

mitenkään toisiinsa. Liitokset rajoittuvat parhaimmillaankin selain- ja tietokantayhteyksiin. Laajamittaisen yrityssovelluksen ajoympäristön

Tuottavuutta sovelluskehitykseen Oraclen työkaluilla: JDeveloper 10g ja HTML DB OUGF Syysseminaari

Luento 8: XML-tuki ohjelmointikielissä & Web-palvelut

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Maiju Mykkänen Susanna Sällinen

Hajautettujen sovellusten muodostamistekniikat, TKO_2014 Johdatus kurssiin

Sisällys. Valtion tietotekniikan rajapintasuosituksia. XML:n rooleja sähköisen asioinnin tavoitearkkitehtuurissa. dbroker - asiointialusta

S11-09 Control System for an. Autonomous Household Robot Platform


SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T

.NET 2006 ja sen jälkeen

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

Laitteessa tulee olla ohjelmisto tai uudempi, tarvittaessa päivitä laite

Valppaan asennus- ja käyttöohje

Koira testissä vai Racci tuotannossa O10G/IAS10 Linuxilla

Ohje Hosted.fi SharePoint

L models. Käyttöohje. Ryhmä Rajoitteiset

Osaa käyttää työvälineohjelmia, tekstinkäsittelyä taulukkolaskentaa ja esitysgrafiikkaa monipuolisesti asiakasviestintään.

Tavoitteena yhdistää eri tavoin toteutetut ja eri tavoin toimivat järjestelmät; integration & interoperability.

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Tietokantaohjelmoinnin tekniikkoja Java-kielellä

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

Tekniset vaatimukset Tikon 6.5.0

SAP. Lasse Metso

REST an idealistic model or a realistic solution?

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka. Joni Korjala APACHE WWW-PALVELIN Seminaarityö 2012

Pedacode Pikaopas. Web Service asiakasohjelman luominen

Microsoft Visual J++ ohjelmointiympäristö

Common Language Runtime

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari

Historiaa. Unix kirjoitettiin kokonaan uudestaan C-kielellä Unix jakautui myöhemmin System V ja BSDnimisiin. Kuutti, Rantala: Linux

TI10 Joni Hämäläinen & Jan Lampikari

XML prosessori. XML prosessointi. XML:n kirjoittaminen. Validoiva jäsennin. Tapahtumaohjattu käsittely. Tapahtumaohjattu käsittely.

Työpöytävirtualisointi

P e d a c o d e ohjelmointikoulutus verkossa

Tikon Ostolaskujenkäsittely versio SP1

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

C# ja.net. Juha Järvensivu 2007

Rajapinnat kuntajärjestelmissä #Kuntamarkkinat

Helia Ohjelmointitaito Tuomas Kaipainen Mermit Business Applications Oy Mermit Business Applications

KYMENLAAKSON AMMATTIKORKEAKOULU Wine API ja Virtualisointiohjelmistot. Markku Yli-Kiikka OH06

Tietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä

CUDA. Moniydinohjelmointi Mikko Honkonen

IoT-järjestelmän ja ulkovalaistuksen ohjauksen hankinta -markkinavuoropuhelutilaisuus

Tietojärjestelmien yhteensovittaminen turvallisesti älykkäisiin koneisiin

CVS. Kätevä väline usein päivitettävien tiedostojen, kuten lähdekoodin, hallitsemiseen

Eclipse 3.2 pikku opas versio 1.0. Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10

Tech Conference Visual Studio 2015, C#6,.NET4.6. Heikki Raatikainen. #TechConfFI

M. Merikanto 2012 XML. Merkkauskieli, osa 2

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Lakki. Lisää ot sik k o osoit t am alla. Nöyrästi vain lakki kourassa... Jussi Vänskä Espotel Oy. vierailuluentosarja OTM kurssi 2010

McAfee epolicy Orchestrator Pre-Installation Auditor 2.0.0

Copyright Observis Oy All rights reserved. Observis Oy Ville Kanerva, CTO Heikki Isotalus, COO Datasta tietoa

Transkriptio:

OHJELMISTOT ARKKITEHTUURIT ESITTELYSSÄ Java/J2EE vastaan Microsoft.Net Java 2 Enterprise Edition Microsoft.Net Arkkitehtuureilla YHTEISET RAKENNUSPUUT Microsoftin.Net- ja Sunin Java-arkkitehtuuri ovat häkellyttävästi toistensa kaltaisia ja web-tekniikoiden yleistyminen hämärtää rajoja entisestään. Lopulta valintaan kilpailevien tekniikoiden välillä vaikuttaa eniten se, mikä on nykyinen käyttöympäristö. TEKSTI: HARRI TALVITIE PIIRROS: ERIC LERAILLEZ Juhannuksena 2000 Microsoft julkisti Forum-konferenssissa merkillisen uuden tuotemerkin nimeltä.net ("dot-net"). Sekä Bill Gates että Steve Ballmer yrittivät parhaansa mukaan selostaa, mistä oli kyse. Keskeinen, mutta runsaudessaan epämääräinen viesti oli, että Microsoft kytkee internet-tekniikat entistä tiiviimmin niin uusiin kuin vanhoihinkin tuotteisiin ja palveluihin. Syksyn mittaan selvisi, että.netin todellinen idea on tuoda markkinoille Java-tyyppinen ohjelmointi- ja sovellusalusta, joka uudistaisi radikaalisti kaiken windowssovelluskehityksen. 46 MikroPC 1 / 2002 W W W. M I K R O P C. N E T

Java syntyi useita vuosia ennen.netiä ja on sen ansiosta valmiimpaa tekniikkaa. Toisaalta Microsoft on samasta syystä pystynyt ottamaan alusta asti huomioon xml:n kaltaisia uusia tekniikoita, jotka Javaan on jouduttu lisäämään jälkeen päin. JAVA KATALYYTTINÄ Microsoft kehitti windowsia ja sen sovellusarkkitehtuuria pitkään hyvin itseriittoisesti ja vielä 90-luvun puolivälissä windowsin pääteknologiat perustuivat enemmän tai vähemmän suljettuihin toteutuksiin. Tämä aiheutti ongelmia, jotka näkyvät selvimmin hankalassa com-komponenttiarkkitehtuurissa ja eri aikaan tehtyjen ohjelmointirajapintojen sekavuudessa. Ne ovat myös keskeinen syy siihen, että Windowsia vierastetaan monimutkaisten yritysjärjestelmien palvelinratkaisuissa. Sunin Java-julkistus keväällä 1996 pakotti yhtiön vaihtamaan tyyliä. Sun haastoi windowsin tekemällä Javasta laitteisto- ja käyttöjärjestelmäriippumattoman ympäristön verkotetuille sovelluksille. Hieman myöhemmin erilaiset vapaaseen levitykseen perustuvat unix-versiot, näkyvimmin Linux, saivat paljon huomiota. DNA OLI VÄLIVAIHE Vuoden 1997 lopulla pidetyssä PDC-kehittäjätapaamisessa Microsoft julkisti näyttävästi uuden viitearkkitehtuurin nimeltä Windows Distributed Internet Applications Architecture (DNA). Se oli windows-painotuksin toteutettu versio tutusta kolmitasomallista (työasemamiddleware-palvelin). DNA määritteli peruskäsitteitä kuten liiketoimintalogiikan erottamisen käyttöliittymästä, mikä on hyvä teesi sovellusohjelmointiin. Taustalla oli silti windows-pohjainen com-komponenttiarkkitehtuuri (component object model) ja sen hajautettu dcom-versio. Niissä komponenttien välinen viestintä perustui puhtaasti Microsoft-sidonnaisiin binääriprotokolliin. Com-pohjaisten sovellusten suurin heikkous on vaikea hallittavuus ja muutenkin versiointi. Dll-kirjastojen päivittäminen ja sovelluksen riippuvuuksien käsittely on osoittautunut Microsoft-ympäristössä työlääksi. Yksi.Netin suurimmista hyödyistä onkin sovellusten helppo käyttöönotto: yksinkertaisimmillaan kokonaisen web-sovelluksen asentamiseen riittää tiedostojen kopioiminen. DNA:n aikaan tekstipohjainen xml teki vasta tuloaan, eikä sen merkitystä osattu ennakoida. Xml-tuki lisättiin nopeasti moniin vanhoihin tekniikoihin, esimerkiksi ado-tietokantamoottoriin, tosin aluksi vain lukumuotoisena. COM:IN TILALLE VIRTUAALIKONE Microsoft kertoi jo 1997 paikkaavansa com:in puutteet uudella versiolla, joka tarjoaisi esimerkiksi automaattisesti resursseja hallitsevan virtuaalikoneen, mikä vähentäisi ohjelmoijien työtaakkaa ja ohjelmakoodin virhealttiutta. Windows 2000:ssa esitelty com+ ei kuitenkaan tuonut mitään olennaista uutta ja näytti kuin yhtiö olisi luopunut mahtipontisista suunnitelmistaan. Mutta.Net-julkistus kesällä 2000 paljasti, että parantamisen sijasta Microsoft aikoi vaihtaa comalustan toiseen sovellusarkkitehtuuriin. Myös paljon käytetty Visual Basic -kieli uusittaisiin niin perusteellisesti, ettei vanha koodi toimisi uudessa ympäristössä, mikä oli karvas pala ohjelmoijille. Järkytys laantui, kun Visual Studio -kehitysympäristön ykkösbeeta sisälsi apuvälineen vanhan Visual Basic -koodin siirtoon ja tiedon, että com-tekniikkaan rakennetaan kaksisuuntainen silta. Pystyäkseen tekemään.netistä riittävän luotettavan Microsoft on joutunut tekemään radikaaleja ratkaisuja ja luopumaan yhteensopivuudesta vanhaan. Keskeistä.Netissä on ajonaikainen ympäristö eli clr (common language runtime), joka vastaa javan jvm-virtuaalikonetta. Uudessa kehitysympäristössä lähdekoodi käännetään ensiksi clr-koneen ymmärtämään msil-muotoon (Microsoft Intermediate Language), ei siis enää sellaisenaan suoritettavaksi Intel x86-koodiksi. Virtuaalikone tarjoaa sovelluksille lähes kaikki kuviteltavissa olevat peruspalvelut, kuten xml-muotoisen tiedon käsit- Java on suunniteltu käyttöjärjestelmäriippumattomaksi,.net kieliriippumattomaksi. telyn, web-peruspalvelut, ohjelmakoodin "virtualisoinnin" ja sen myötä koodin suojelemisen muistivirheiltä sekä tietoturvaongelmilta. Java-ympäristön ja.netin ero näkyy painotuksissa ohjelmointikielen ja ajoalustan välillä. Java-sovellukset kirjoitetaan aina Java-ohjelmointikielellä, mutta niitä voi ajaa eri käyttöjärjestelmissä..netissä ohjelmointikieliä on useita, mutta ohjelmia voi käytännössä ajaa vain windows-käyttöjärjestelmässä. Mikään ei sinänsä estä tekemästä kääntäjää, joka tuottaisi java-tavukoodia muusta kuin Java-kielestä. Samoin.Netajoalustan (clr) voisi toteuttaa linuxiin ja MacOS:ään. Näin on jo tehtykin, ainakin osittain. Virtuaalikoneeseen perustuva sovellusmalli siirtää työtä ja vastuuta ohjelmoijalta prosessorille. Virtuaalikone huolehtii muistin varaamisesta ja vapauttamisesta ja siitä, etteivät taulukoiden rajat ylity. Tämä hidastaa hieman suoritusnopeutta, mutta nopeiden prosessoreiden ansiosta sitä ei juuri huomaa. Tärkeämpää on, että ohjelmoiminen yksinkertaistuu, nopeutuu ja siten halpenee. MATKIMINEN KANNATTAA.Net on kuin suora kopio java-alustasta muutamilla ratkaisevilla lisähöysteillä toki. Sen lisäksi, että molemmissa on virtuaalikone, myös ytimen päälle rakennetut kirjastot ja muut peruspalvelut muistuttavat toisiaan. Molemmat tarjoavat yllättävän samanlaiset perustyökalut niin web-ohjelmointiin, tietokantarajapintojen käsittelyyn kuin transaktioiden hallintaankin. W W W. M I K R O P C. N E T MikroPC 1 / 2002 47

OHJELMISTOT ARKKITEHTUURIT Yksi selkeä ero löytyy xml:n integroinnista. Uudempana.Net tukee xml:ää alusta asti, kun taas Javaan xmltuki on lisätty jälkeen päin. Clr-virtuaalikone on kieliriippumaton ja laajennettavissa monipuolisemmin kuin java-virtuaalikone. Metatiedon ja attribuuttien käsittely on.net-ympäristössä kaiken perusta, joten geneerisyys on taattu..netin attribuuteilla voi esimerkiksi määritellä tietoturva-asetuksia javaa monipuolisemmin, mutta ohjelmointi- ja asetusvirheitä nekään eivät estä. PERUSTA LUOKKAKIRJASTOISSA Luokkakirjastot tarjoavat sovellusohjelmoijalle kaikki perinteiset peruspalvelut kuten kutsut merkkijonojen, tiedostojen, xml:n, verkon, tietokannan, näytön ja järjestelmän käsittelemiseen. Javaluokkakirjastot ovat ehtineet jo kypsyä ja monipuolistua. Microsoftin.Net-kirjaston eli.net Frameworkin versio on vasta 1.0, mutta sellaiseksi se on kuitenkin hyvin kattava. Microsoftin tavoite ei ole ollut rakentaa.netistä sinänsä windows-riippumatonta tai -riippuvaista, mutta.netin luokkakirjastossa on windows-sidoksia: esimerkiksi joillain peruskirjaston komennoilla voi käsitellä windowsin tapahtumalokia tai muita NT-pohjaisia peruspalveluja. Microsoft perustelee windows-sidonnaisuutta sillä, että kehitysympäristöstä on oltava helppo pääsy alla toimivan käyttöjärjestelmän palveluihin. Samoin perustein Microsoft = moittii Javaa hankalaksi..netin etu on, että koko kirjaston tekee yksi toimittaja, jolloin eri osat toimivat yhteen. Jos java-ohjelmoija haluaa säilyttää koodinsa siirrettävyyden eri alustoille, hänen täytyy varoa valmistajakohtaisia laajennuksia. Sunin J2EE:n (Java 2 Enterprise Edition) tarkoitus on paketoida tietokanta-, verkkoprotokolla-, xml-, komponenttihallinta-, turvallisuus- ja muut palvelukirjastot yhdeksi toimivaksi kokonaisuudeksi. Näitä arkkitehtuuriin kuuluvia sovelluspalveluja Javayhteisön täytyy vielä yhtenäistää. Microsoftillakin on vielä paljon työtä oman alustansa yhtenäistämisessä. Esimerkiksi transaktioita ja komponenttipalveluita hoitava MTS (Microsoft Transaction Manager) ei ole aidosti.netpohjainen vaan käyttää vanhempaa com+-tekniikkaa. Alustojen tekniset erot ovat lopulta melko merkityksettömiä ja niiden sijasta valinnan ratkaisee nykyinen laite- ja käyttöjärjestelmäympäristö. Web-palvelurajapinta hämärtää eroja Windows- ja Unix /Java-maailman välillä edelleen. Microsoftin ja Sunin kehitysalustat sisältävät enemmän yhtäläisyyksiä kuin eroja ja eroistakin suurin osa selittyy kehitystyön ajoituksella. XML EHTI.NETTIIN Koska.Netin kehitys alkoi myöhemmin kuin Javan Microsoft on pystynyt ottamaan paremmin huomioon web services -tekniikan, joka on nykyisin tärkein kehityssuunta sovellusintegraatiossa. Tämä xml-pohjaisia protokollia kuten soap:ia, wsdl:ää ja uddi:a käyttävä tekniikka on vasta tulossa J2EE-maailmaan, vaikka soap/uddi-toteutuksia voi toki rakentaa jo nykyisiin Java-palveluihin. Tuleva J2EE:n versio 1.4 standardoi ne kattavasti. Sovelluskehityksen kannalta.netiä voi pitää joustavampana, koska eri tehtäviin on joskus hyvä käyttää juuri siihen optimoitua ohjelmointikieltä. Esimerkiksi Visual Basic.net soveltuu mutkattomien merkkijonotoimintojen ja yleisen tyyppirentouden vuoksi hyvin bisneslogiikan toteuttamiseen. C# taasen on sopivampi C/C++-taustan omaavalle järjestelmäkoodaajalle. JAVAKIN TARKENTUU Valmistajariippumattomuutta ja siirrettävyyttä pidetään usein Javan vahvuuksina. J2EE:n osalta siirrettävyys on kuitenkin osin näennäistä. Nyt laajasti käytetty J2EE 1.2 määrittelee monet asiat löyhästi tai ei lainkaan, minkä vuoksi eri valmistajien middleware-tuotteet eivät tosiasiassa ole yhteensopivia. Mutta J2EE 1.3 ja sitä seuraava 1.4 todennäköisesti korjaavat tilanteen. Useimmille käyttäjille skaalautuvuus ja hintakin ovat kuitenkin tärkeämpiä ominaisuuksia kuin siirrettävyys. Näiden osalta.netiä ja J2EE:tä on paljon vaikeampi vertailla. Microsoft esitti lokakuun 2001 PDCkehittäjätapaamisessa kattavat nopeustestit, joissa samat web-sovellukset toimivat.net-tekniikalla toteutettuna jopa 28 kertaa nopeammin kuin ejb-tekniikalla toteutettuna. Ejb on tunnetusti hidas arkkitehtuuri, eikä vertaileminen siksi ole kovin mielekästä..net päihitti kuitenkin myös kevyemmät jsp-sivut, tosin laitealustojen välisiä eroja ei välttämättä oltu otettu täysin huomioon. YHTEENVETO.NET- JA JAVA-ARKKITEHTUUREISTA.NET Java / J2EE Koodin suoritustapa Virtuaalikone (CLR) Virtuaalikone (JVM) Virtuaalikoneen tekniikka MS Intermediate Language Java Byte Code Perusluokkakirjasto.NET Framework J2SE (Java 2 Platform, Standard Edition) Ohjelmointikielet VB.NET, C#, J#, C++, JScript.NET + n. 25 Java muuta, esim. Cobol, Eiffel, Python, Perl Tuetut käyttöjärjestelmät Windows 98/Me/XP/2000 mm. Windows, Unix, Mac, OS/2, BeOS Käyttöliittymäkirjasto Windows Forms Swing Web-ohjelmointikirjasto ASP.NET Servlets, Java Server Pages (JSP) Web services -rajapinnat SOAP, WSDL, UDDI Tulossa (J2EE 1.4) Tietokantarajapinta ADO.NET JDBC (Java Database Connectivity) Hakemisto/nimipalvelut ADSI (Active Directory Service Interface) JNDI (Java Naming and Directory Interface) Sovelluspalvelimen tekniikka COM+ EJB (Enterprise Java Beans) Asynkroniset komponentit COM+ EJB 2.0 Hajautettujen komponenttien DCOM, SOAP RMI/IIOP (Remote Method Invocation välinen viestintä over Internet InterOrb Protocol) Hajautettujen transaktioiden MS-DTC (Microsoft Distributed JTS (Java Transaction Service) hallinta TranscationCoordinator) Viestijonot (message queue) MSMQ (+ SOAP) JMS 1.0 (Java Message Service) Pienlaitetuki.NET Compact Framework J2ME (Java 2 Platform, Micro Edition) 48 MikroPC 1 / 2002 W W W. M I K R O P C. N E T

VISUAL STUDIO.NET Visual Studio.netin Enterprise Architectin sisältämä Visio Professional tarjoaa ajanmukaiset välineet tietojärjestelmien mallinnukseen. Graafisen liitymän kautta syntyvät niin tietokannat kuin komponenttimallitkin. Valitettavasti liittymää ei ole integroitu kunnolla muuhun ympäristöön. WINDOWS.NET SERVER Lopulta konesaliin kelpaava Windows.Net-sovelluksia voi ajaa Windows 98/ME/ 2000/XP-laitteissa, kunhan niihin ensin asentaa.net-virtuaalikoneen. Sen voi imuroida maksutta Microsoftin web-palvelimilta, lisäksi se sisältynee myös uusiin korjauspäivityksiin. Windows 95:een tai sitä vanhempiin ympäristöihin.net-päivitystä ei ole luvassa. Asp.net-palvelinsovellukset toimivat vain 2000- ja XP- ja uudemmissa käyttöjärjestelmissä. Windows 2000 Server saa tänä vuonna seuraajakseen neljän tuotteen Windows.net Server -tuoteperheen (aiemmin Whistler Server). Microsoft on pyrkinyt parantamaan erityisesti palvelinten turvallisuutta ja konesalikelpoisuutta, palvelimia voi hallita selaimella, eivätkä ne kukin vaadi omaa monitoria. Uusi Windows.net Web Server on tarkoitettu vain web-palvelinkäyttöön. Tietoturvaa on parannettu rajaamalla asennettavat ja automaattisesti käynnistyvät palvelut minimiin. Uusi IIS 6.0 web-palvelinversio sisältää NT-ytimen tasolla toimivan http-pyyntöjen kuunteluprosessin, joka tehostaa selvästi web-sivujen luontia. Passport-sisäänkirjauspalvelu on integroitu Active Directory -hakemistoon, minkä ansiosta on helpompi tehdä ja hallita autentikointia käyttäviä sovelluksia. Lisäksi MSMQ-kutsuja (Message Queue) voi välittää xml-pohjaisella soap-protokollalla nykyisen binääriprotokollan lisäksi..net Serveristä tulee myös nykyistä Windows 2000 Serveriä vastaava Windows.net Standard Server, 8 prosessorin tuen sisältävä Enterprise Server ja 32 prosessorin Datacenter Server. Enterprise ja Datacenter ilmestyvät perinteisen 32-bittisen toteutuksen lisäksi myös 64-bittisinä, jolloin järjestelmälle näkyvä suurin muistiavaruus nousee nykyisestä 4 gigatavusta 64 gigatavuun. VISUAL STUDIO.NET Myös kehitysympäristö vaihtuu.net pistää täysremonttiin myös Microsoft-ohjelmoinnin tärkeimmän työkalun Visual Studion. Uusi Visual Studio.net yhdistää kaikki ohjelmointikielet ja useimmat muutkin välineet. Erillistä Visual InterDev-välinettä ei siis enää ole vaan kaikilla kielillä on yksi yhteinen editori. Enterprise-ominaisuuksien kuten mallinnuksen ja testauksen puolella integrointi ei tosin vielä ole yhtä tiivistä. C++-kieltä lukuunottamatta kaikki on nyt puhtaasti.netiä. Muutos koskee näkyvimmin Visual Basic -ohjelmointia. Vanhan VB 6 -koodin siirtämiseen on apuväline, mutta siirto ei toimi kaikissa tilanteissa ongelmitta. Ja vaikka toimisikin, vanhan koodin rakenteet eivät välttämättä sovi.net-maailmaan. RISUKIELET KÄYTTÖÖN Kokonaan uusi ohjelmointikieli on Javatyyppinen C# eli risu-see. Eroja Javaan ovat esimerkiksi enum-rakenne, delegaatit, aidot property-rutiinit ja metatiedon käyttö. Tietotyypit perustuvat clr-ajoympäristön yhtenäiseen cts-tyyppijärjestelmään (Common Type System). Java ja C# ovat loppujen lopuksi hyvin samanlaisia. Kieliä vertailtaessa alkaa väistämättä miettiä, mitä järkeä on ollut rakentaa Java-klooni, joka ei kuitenkaan ole Java-yhteensopiva? Erimielisyydet Sunin kanssa estävät Microsoftia käyttämästä Java-nimeä. Microsoft esitteli jo aiemmin Java-versiota 1.1.4 vastaavan J++-kielen, mutta.netin myötä nimeksi vaihtuu J# eli risujii. Osa J#:n beetaversiolla testimielessä luoduista Java-rakenteista, kuten sisäkkäiset luokat, aiheutti ongelmia. KAKSI JÄREÄÄ VISUAL STUDIOTA Visual Studiosta tulee kaksi erikoisversiota entistä järeämpään käyttöön. Visual Studio Enterprise Architect sisältää Visio Professionalin, jota on laajennettu muun muassa uml-mallinnuksella ja tietokantojen rakennusominaisuuksilla. Enterprise Developer -versio sisältää kuormitusja suorituskykymittaukseen sopivan Application Center Test -välineen. Ryhmissä tehtävää koodausta helpottamaan on tuotu pohjat, ohjeistukset ja rajoitusmekanismit. Mallinnusväline ei toimi aivan luontevasti muun kehitysympäristön kanssa. Tietokantojen tai luokkien mallinnus toimii sinänsä kätevästi, mutta muutokset eivät synkronoidu kaksisuuntaisesti. Visio ja ACTest-väline on lisäksi toteutettu muusta ympäristöstä erillisinä sovelluksina. Virtuaalikoneen, debuggerin ja editorin välinen yhteistyö tökkii uudessa kehitysympäristössä: koodia voi lukea keskeytys-tilassa, mutta ei muokata kuten aiemmin. W W W. M I K R O P C. N E T MikroPC 1 / 2002 49

OHJELMISTOT ARKKITEHTUURIT =.NETIIN JA JAVAAN LIITTYVIÄ LYHENTEITÄ.NET Yleisnimitys Microsoftin sovellusarkkitehtuurille, internet-teknologioille, tuoteperheille jne. ADO.NET Active Data Objects.Net Tietokantaohjelmoinnin rajapintakokoelma ADSI Active Directory Service Interface Hakemistopalveluiden ohjelmointirajapinta ASP.NET Active Server Pages.Net Web-palvelujen ohjelmointiarkkitehtuuri CLR Common Language Runtime Netin virtuaalikone COM Component Object Model Microsoftin Windows-pohjainen komponenttijärjestelmä COM+ Component Object Model+ COM-arkkitehtuuri lisättynä transaktio- ja muilla komponenttipalveluilla DCOM Distributed COM Lähiverkoissa hajautetusti toimiva COM-palvelujen kutsumistapa EAI Enterprise Application Integration Yritysjärjestelmien integrointi EJB Enterprise JavaBeans Java-luokkien paketointi komponenteiksi sovelluspalvelimiin IIOP Internet Inter-Orb Protocol CORBA-protokolla, jota RMI käyttää viestien välittämiseksi. J2EE Java 2, Enterprise Edition Sunin kehittämä Java-pohjainen sovellusarkkitehtuuri. J2ME Java 2, Micro Edition Pienlaitteisiin sovitettu Java-ympäristö. J2SE Java 2, Standard Edition. Perus-Java (alkuperäinen) JDBC Java Database Connectivity Javan tietokantarajapinta. JMS Java Message Service Protokolla viestijonojen käsittelyyn Java-sovelluksissa JNDI Java Naming and Directory Interface Hakemisto- ja nimipalveluiden rajapinta. JSP Java Server Pages Java-koodin upotuksella rakennettu toiminnallinen web-sivu. JTS Java Transaction Service Määrittelee Java-transaktiopalvelimen toteutuksen. JVM Java Virtual Machine Javan virtuaalikone. MSIL Microsoft Intermedia Language Net-kääntäjien tuottama tavukoodi. MSMQ Microsoft Message Queue Microsoftin viestijonopalvelin. RMI Remote Method Invocation Toisessa koneessa olevan komponentin kutsuminen. SDK Software Development Kit Ohjelmistojen kehittämiseen tarvittava kokoelma työkaluja ja kirjastoja. SOAP Simple Object Access Protocol Xml-pohjainen metodien kutsuminen esim. http:n ylitse. UDDI Universal Description, Discovery and Integration Soap-palvelujen nimipalvelu. WSDL Web Service Description Language Soapille altistettujen palvelujen kuvaustapa xml:n avulla. Open Source vaihtoehto Microsoftille? Microsoftin kovat otteet liiketoiminnassa tai muut syyt saavat osan asiakkaista välttämään sitoutumista yhtiön tuotteisiin. Lähdekoodin ilmaisuutta ja vapaata jakelua kannattaville.net on kuitenkin mielenkiintoinen alusta, jota voisi hyödyntää muuallakin kuin windowsmaailmassa. Virtuaalikoneteknologiana ja ohjelmointikielinä.net ei ole sidoksissa Windowsiin. Riippuvuuksia syntyy.net Framework -luokkakirjastojen muutamista Windows-pohjaisista palveluista ja Windows Forms -käyttöliittymäkirjastosta. Microsoft otti askeleen kohti avoimuutta julkistamalla ajonaikaisen cli-ympäristön (Common Language Infrastructure) sekä C#- kielen määritykset standardointijärjestö ECMA:n kautta. Runsaan vuoden kestänyt standardointityö valmistui sopivasti.netjulkistusten kynnyksellä joulukuun 2001 puolivälissä. Microsoft ei kuitenkaan aio vapauttaa koko.net-järjestelmää tai luokkakirjastoa lähdekoodeineen. Käynnissä on muutamia pääosin vapaaehtoisvoimin toimivia porttausprojekteja, joissa yritetään rakentaa muun muassa Unix-versiota.Net-alustan keskeisistä osista. Microsoft on itse tehnyt ECMA-standardoinnin edellyttämän referenssitoteutuksen FreeBsd-ympäristöön. Gnome-työpöytäjärjestelmän kehittäjän Miguel de Icazan yritys Ximian on käynnistänyt Mono-nimisen projektin, jonka tavoitteena on rakentaa open source -pohjainen C#-kääntäjä, cli-yhteensopiva virtuaalikone sekä mahdollisimman kattava osa.net-luokkakirjastosta. Projekti etenee Linuxin tavoin pääosin vapaaehtoisvoimin. Toinen vastaava open source -projekti on DotGnu, jossa rakennetaan muun muassa Portable.Net-nimistä ajoympäristöä. Dot- Gnu:n tausta-ajatuksena on vahva Microsoft-vastaisuus, Ximianin suhde Microsoftiin on huomattavasti neutraalimpi. DotGnu ja Mono kilpailevat hiukan keskenään, koska ideologisten ja kaikesta päätellen myös henkilöiden välisten erimielisyyksien vuoksi ei yhteistyötä ole aloitettu. Suurin haaste on siirtää.netin valtava luokkakirjasto eikä täydellinen porttaus valmistu todennäköisesti milloinkaan, koska mukana on vahvasti Windows-riippuvaisia palveluja. Mielenkiintoinen mahdollisuus on Javan jdk-kirjaston siirtäminen.net-nimiavaruuteen. Teknisesti tämä ei ole edes välttämättä kovin hankalaa, tosin lisenssisyistä Microsoft ei tällaista versiota voi julkistaa itse. Java-yhteensopiva Microsoft J#-kieli ja.netiin siirretty jdk-kirjasto loisivat kuitenkin erikoisen risteytyksen.netin ja Java-maailman välille. Toistaiseksi.Netin open source -porttausprojektien kaupallista merkitystä on vaikea arvioida, koska projektit ovat hyvin alkuvaiheissaan. Teknisesti ne ovat kuitenkin todiste.netin alustariippumattomuudesta ja siitä, että.net kiinnostaa kehittäjiä yli käyttöjärjestelmärajojen. 50 MikroPC 1 / 2002 W W W. M I K R O P C. N E T