Arkitektur

Inom open source har det mycket tack vare det öppna ekosystemet med många inblandade utvecklare utvecklats en tjänstebaserad arkitektur med standardiserade gränssnitt eller metoder för att utnyttja en tjänst. Exempel på sådana standarder på olika nivåer är JSR inom Java och OGC inom GIS. Ofta finns en eller flera referensimplementeringar av dessa tjänster som demonstrerar både gränssnitt och funktion.

En öppen arkitektur bygger på öppna standarder istället för produkter. På det sättet undviker man inlåsning i systemlösningar som lett till monopolliknande situationer som försvårar förändringar och gjort det svårt att införa ny teknik vilket idag ger stora kostnader som man inte har kontroll över. Man kan fortfarande använda standardsystem men arkitekturen bygger på gränssnittet för hur information och tjänster leveras mellan producent och konsument oavsett om det är internt eller externt.

Standardisering av gränssnitt kan ske på flera nivåer enligt följande huvudprinciper:

  • Interoperabilitet med löst kopplade system utan direkta systemberoenden vilket innebär att respektive system skall fungera och utvecklas oberoende av varandra.
  • Kommunikationen skall företrädesvis ske asynkront. Om den sker synkront skall respektive system fortsätta fungera med begränsad funktion exempelvis kan en karta visas utan ett specifikt lager.
  • Samverkan skall ske på informationsnivå enligt gemensamma XML scheman eller om möjligt semantiskt enligt exempelvis RDF OWL standarden. Filformat för olika typer av dokument skall följa öppna standarder.
  • Transportmekanismen följa någon av de standarder som finns exempelvis WS, Rest, Mime. Helst skall det finnas flexibilitet att välja flera eftersom det sker en snabb utveckling av dessa.
  • Integration mellan och inom avgränsade lösningar, som också kan vara standardsystem eller produkter, skall så långt möjligt ske med standardiserade gränssnitt:
  • Inom Java med s.k. JSR för att enklare kunna uppgradera ingående komponenter men även integrera nya funktioner som följer samma standard.
  • För lagring i första hand använda ett persistentskikt exempelvis Hibernate för att enkelt kunna välja databasprodukt alternativt följa SQL utan unika produktavvikelser. Inom specifika domäner exempelvis GIS, OGC, finns utökad standardisering för att hantera spatial information.
  • Inloggning och behörighet
  • Plattform är den tekniska arkitekturen för en tjänst med sin infrastruktur. Idag är det allra enklaste att hantera dessa som virtuella maskiner eftersom dessa kan levereras med ingående komponenter samtestade tillsammans med lösningen. Plattformen består av följande delar:
  • Exekveringsmiljö för själva applikationen exempelvis JVM för java
  • Applikationsramverk exempelvis Spring, Ajax, Wicket
  • Applikationsserver exemeplvis Tomcat, Jboss, Glassfish eller Jonas
  • Httpserver Apache
  • Objekt relations persistentlager exempelvis Hibernate
  • Databas exempelvis PostgreSQL eller MySQL
  • Integrationsplattform för både integration och interoprabilitet exempelvis ServiceMix, Mule, eller Jboss ESB
  • Operativsystem Linux i någon distribution

Kommentarer inaktiverade.

Array
(
    [SERVER_SOFTWARE] => Apache/2.2.16 (Debian)
    [REQUEST_URI] => /ekosystem/arkitektur
    [REDIRECT_STATUS] => 200
    [HTTP_HOST] => mscopensource.se
    [HTTP_ACCEPT_ENCODING] => x-gzip, gzip, deflate
    [HTTP_USER_AGENT] => CCBot/2.0 (http://commoncrawl.org/faq/)
    [HTTP_ACCEPT_LANGUAGE] => en-us,en-gb,en;q=0.7,*;q=0.3
    [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    [HTTP_VIA] => 1.0 pro4uopensource.se
    [HTTP_X_FORWARDED_FOR] => 54.205.236.46
    [HTTP_X_FORWARDED_HOST] => www.pro4uopensource.se
    [HTTP_X_FORWARDED_SERVER] => pro4uopensource.se
    [HTTP_CONNECTION] => Keep-Alive
    [PATH] => /usr/local/bin:/usr/bin:/bin
    [SERVER_SIGNATURE] => 
Apache/2.2.16 (Debian) Server at www.pro4uopensource.se Port 80
[SERVER_NAME] => mscopensource.se [SERVER_ADDR] => 192.168.120.105 [SERVER_PORT] => 80 [REMOTE_ADDR] => 54.205.236.46 [DOCUMENT_ROOT] => /var/www/msc/mscopensource.se/ [SERVER_ADMIN] => [no address given] [SCRIPT_FILENAME] => /var/www/msc/mscopensource.se/index.php [REMOTE_PORT] => 48098 [REDIRECT_URL] => /ekosystem/arkitektur [GATEWAY_INTERFACE] => CGI/1.1 [SERVER_PROTOCOL] => HTTP/1.1 [REQUEST_METHOD] => GET [QUERY_STRING] => [SCRIPT_NAME] => /index.php [PHP_SELF] => /index.php [REQUEST_TIME] => 1397995235 [argv] => Array ( ) [argc] => 0 )