System Object Model
System Object Model (SOM) är en generell objektmodell som utvecklats av IBM och introducerades år1992 när det dök upp i operativsystemet OS/2 2.0 och dess grafiska miljö Workplace Shell. SOM har i stort sett samma uppgifter som Microsofts COM, men SOM är till stora delar uppbyggd på arv, något som inte existerar i COM-världen, även om man med aggregering kan få till något liknande. SOM finns idag tillgängligt för OS/2, AIX, Microsoft Windows samt Mac OS.Ett av de främsta målen med SOM har varit binär kompatibilitet vid såväl användning som subklassning av SOM-klasser, samt ett totalt språkoberoende. Detta har gjorts möjligt genom att objekten i sann objektorienterad anda bara exponerar sina gränssnitt och håller detaljerna om sin implementation för sig själva. SOM finns även i en distribuerad variant, DSOM, som kan användas för att exekvera objekt på andra maskiner och operativsystem.
En stor fördel som SOM har över COM är att det är följer reglerna för CORBA. Detta yttrar sig genom att SOM använder samma språk för beskrivning av klassgränssnitten (IDL), vilket förenklar anpassning till CORBA.
Det mest tydliga exemplet där SOM används och kommer till nytta är förmodligen också Workplace Shell (WPS). Den bygger helt och hållet på SOM vilket avspeglar sig i mycket. Det är enkelt att utöka eller förändra miljön genom att t.ex. specialisera (subklassa) klassen WPFolder som definierar hur en grafisk fönsterrepresentation av en mapp på exempelvis hårddisken ska se ut. Objektorienteringen gör också att uppförandet blir väldigt konsekvent eftersom mycket funktionalitet kan hållas gemensam. Man är dock inte tvungen att använda SOM om man vill programmera för Workplace Shell, utan det finns även ett Workplace API för de som trivs bättre med konventionella funktionsanrop.
Den grafiska miljön i Mac OS kan sedan version 8.0 av operativsystemet byggas ut med hjälp av SOM. Här är det dock inskränkt till att tillhandahålla fler menykommandon i de sammanhangskänsliga menyer som dyker upp när man klickar på objekt i användarmiljön på ett speciellt sätt. Sådana menyer finns numera i de flesta miljöer.
Märkligt nog var SOM när det introducerades bara möjligt att använda med IBMs C-kompilator C Set/2 för OS/2.Detta var möjligt genom en SOM-kompilator som genererade C-kod från ett speciellt beskrivningsspråk, Object Interface Definition Language (OIDL). Då C inte är objektorienterat skiljde sig användningen från vad man var van vid, men funktionsmässigt var det inga problem. Senare introducerades C Set++ som kunde kompilera C++, och då behövdes inte längre den speciella SOM-kompilatorn.
Kommentar: Texten skrevs 1998 och är eventuellt inaktuell vid det här laget. Rätta gärna eventuella fel.
Artikeln skriven 2009-01-18 av Learning4sharing
Inga kategorier för denna artikel än...Intresserad av fler artiklar?
Lilith FairMontsegur
Belägringen av Béziers
Memetik
Fredrik Wikingsson
Hvitfeldtska gymnasiet
Polisvåld
Flottning
Elias Sehlstedt