{"id":417,"date":"2026-04-08T12:01:59","date_gmt":"2026-04-08T10:01:59","guid":{"rendered":"https:\/\/vtkkperinne.fi\/?page_id=417"},"modified":"2026-04-08T12:01:59","modified_gmt":"2026-04-08T10:01:59","slug":"fas-nykytermein","status":"publish","type":"page","link":"https:\/\/vtkkperinne.fi\/?page_id=417","title":{"rendered":"FAS nykytermein"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">FAS ja FASOS \u2013 suomalainen \u201cLAMP\u2011pino\u201d ennen webi\u00e4<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">FAS\u2011ohjelmointikieli ja FASOS\u2011k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4 muodostivat yhdess\u00e4 kokonaisuuden, jota voidaan nykytermein verrata LAMP\u2011pinoon. Kyse ei ollut vain kielest\u00e4 tai k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4st\u00e4, vaan yhten\u00e4isest\u00e4 sovellusymp\u00e4rist\u00f6st\u00e4, jossa ohjelmointi, ajonaikainen hallinta, tiedonk\u00e4sittely ja siirrett\u00e4vyys oli suunniteltu toimimaan saumattomasti yhdess\u00e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Mit\u00e4 LAMP tarkoittaa \u2013 ja miksi vertaus toimii<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nykyinen LAMP\u2011pino koostuu nelj\u00e4st\u00e4 kerroksesta:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Linux<\/strong> \u2013 k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4<\/li>\n\n\n\n<li><strong>Apache<\/strong> \u2013 palvelin ja ajonaikainen ymp\u00e4rist\u00f6<\/li>\n\n\n\n<li><strong>MySQL<\/strong> \u2013 tiedonhallinta<\/li>\n\n\n\n<li><strong>PHP \/ Python \/ Perl<\/strong> \u2013 sovelluslogiikka<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">FAS\u2011ymp\u00e4rist\u00f6ss\u00e4 n\u00e4m\u00e4 roolit eiv\u00e4t olleet erillisi\u00e4 tuotteita, vaan <strong>yksi integroitu kokonaisuus<\/strong>, jossa vastuut jakautuivat seuraavasti:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Nykytermi<\/th><th>FAS\u2011ymp\u00e4rist\u00f6n vastine<\/th><\/tr><\/thead><tbody><tr><td>Linux<\/td><td>FASOS<\/td><\/tr><tr><td>Apache<\/td><td>Ajomonitori<\/td><\/tr><tr><td>PHP \/ Python<\/td><td>FAS\u2011kieli<\/td><\/tr><tr><td>MySQL<\/td><td>Merkkimuotoiset tiedostot + IS\/IR\u2011rakenteet<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">FASOS \u2013 k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4 sovelluksia varten<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">FASOS ei ollut yleisk\u00e4ytt\u00f6inen k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4 nykyisess\u00e4 mieless\u00e4, vaan <strong>sovellusajoon erikoistunut ymp\u00e4rist\u00f6<\/strong>. Sen teht\u00e4vi\u00e4 olivat:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Modulien lataus ja purku ajonaikaisesti<\/li>\n\n\n\n<li>Muistinhallinta eri laiteymp\u00e4rist\u00f6iss\u00e4<\/li>\n\n\n\n<li>Kutsujen optimointi ja linkitys<\/li>\n\n\n\n<li>Yhteys k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4n palveluihin<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Nykytermein FASOS vastasi <strong>Linuxin ja sovelluspalvelimen yhdistelm\u00e4\u00e4<\/strong>, jossa sovellusten elinkaari ja resurssien hallinta oli keskitetty.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">FAS\u2011kieli \u2013 sovelluslogiikka ja liiketoimintas\u00e4\u00e4nn\u00f6t<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">FAS\u2011kieli oli <strong>sovelluslogiikan ydin<\/strong>, kuten PHP tai Python nykyisess\u00e4 web\u2011pinossa. Sen erityispiirteit\u00e4 olivat:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Yksinkertainen peruskieli<\/li>\n\n\n\n<li>Vahva makroj\u00e4rjestelm\u00e4<\/li>\n\n\n\n<li>Modulaarinen rakenne<\/li>\n\n\n\n<li>Call\u2011by\u2011reference\u2011parametrinv\u00e4litys<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Makrot vastasivat nykyisi\u00e4 <strong>framework\u2011laajennuksia<\/strong>: niill\u00e4 rakennettiin monimutkaisemmat rakenteet ilman, ett\u00e4 peruskielt\u00e4 paisutettiin.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Ajomonitori \u2013 Apache ennen HTTP:t\u00e4<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ajomonitori oli FAS\u2011ymp\u00e4rist\u00f6n n\u00e4kym\u00e4t\u00f6n mutta keskeinen osa. Se:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Vastasi ohjelmien k\u00e4ynnistyksest\u00e4<\/li>\n\n\n\n<li>Hallitsi modulien latausta<\/li>\n\n\n\n<li>Optimoi kutsuja ajonaikaisesti<\/li>\n\n\n\n<li>Tarjosi rajapinnan k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4\u00e4n<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Nykytermein ajomonitori vastasi <strong>Apachea tai muuta sovelluspalvelinta<\/strong>, joka ei itse sis\u00e4ll\u00e4 liiketoimintalogiikkaa, mutta mahdollistaa sen suorittamisen tehokkaasti ja hallitusti.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Tiedonhallinta \u2013 ennen relaatiotietokantoja<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">FAS\u2011ymp\u00e4rist\u00f6ss\u00e4 tiedot tallennettiin <strong>merkkimuotoisina tiedostoina<\/strong>, mik\u00e4 oli tietoinen ratkaisu:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>T\u00e4ysi koneriippumattomuus<\/li>\n\n\n\n<li>Helppo siirrett\u00e4vyys<\/li>\n\n\n\n<li>Ennustettava rakenne<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">IS\u2011 ja IR\u2011rakenteet vastasivat nykyisi\u00e4 <strong>indeksoituja tietokantoja<\/strong>, mutta ilman erillist\u00e4 tietokantapalvelinta. Tietomallit olivat l\u00e4hemp\u00e4n\u00e4 <strong>flat file + indeksi<\/strong> \u2011ratkaisua kuin relaatiomallia.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Modulaarisuus = mikropalvelut ennen mikropalveluja<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">FAS\u2011ohjelmat koostuivat itsen\u00e4isist\u00e4 moduleista, joita:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ladattiin vain tarvittaessa<\/li>\n\n\n\n<li>Voitiin p\u00e4ivitt\u00e4\u00e4 erikseen<\/li>\n\n\n\n<li>Jaettiin useiden sovellusten kesken<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">T\u00e4m\u00e4 vastaa nykyist\u00e4 <strong>mikropalvelu\u2011 ja kirjastomallia<\/strong>, jossa yhteiset komponentit el\u00e4v\u00e4t omassa elinkaaressaan.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Siirrett\u00e4vyys \u2013 \u201cwrite once, run anywhere\u201d<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">FAS\u2011ymp\u00e4rist\u00f6n keskeinen tavoite oli siirrett\u00e4vyys:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Sama ohjelma eri koneilla<\/li>\n\n\n\n<li>Sama l\u00e4hdekoodi eri k\u00e4ytt\u00f6j\u00e4rjestelmiss\u00e4<\/li>\n\n\n\n<li>Minimaalinen ymp\u00e4rist\u00f6kohtainen muutos<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Nykytermein t\u00e4m\u00e4 vastaa <strong>konttiajattelua<\/strong>: sovellus ja sen ajonaikainen ymp\u00e4rist\u00f6 muodostavat yhten\u00e4isen kokonaisuuden.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Miksi vertaus LAMP\u2011pinoon on perusteltu<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">FAS + FASOS:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Yhdisti k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4n, ajonaikaisen ymp\u00e4rist\u00f6n ja sovelluslogiikan<\/li>\n\n\n\n<li>Tarjosi vakaan ja pitk\u00e4ik\u00e4isen alustan<\/li>\n\n\n\n<li>Mahdollisti laajat sovelluskokonaisuudet ilman ulkoisia riippuvuuksia<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Kyseess\u00e4 oli <strong>ennen webi\u00e4 syntynyt sovelluspino<\/strong>, joka ratkaisi samoja ongelmia kuin nykyiset web\u2011arkkitehtuurit \u2013 eri teknologioilla, mutta yll\u00e4tt\u00e4v\u00e4n samankaltaisilla periaatteilla.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Perint\u00f6<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">FAS\u2011ymp\u00e4rist\u00f6 osoittaa, ett\u00e4 monet nykyiset ohjelmistoarkkitehtuurin perusideat \u2013 modulaarisuus, siirrett\u00e4vyys, ajonaikainen hallinta \u2013 eiv\u00e4t ole uusia. Ne toteutettiin Suomessa jo vuosikymmeni\u00e4 ennen web\u2011aikakautta, omista l\u00e4ht\u00f6kohdista ja omiin tarpeisiin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">FAS ja FASOS olivat aikansa <strong>t\u00e4ysi sovelluspino<\/strong>, jonka ajattelutapa on yh\u00e4 tunnistettavissa nykyisiss\u00e4 j\u00e4rjestelmiss\u00e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>FAS ja FASOS \u2013 suomalainen \u201cLAMP\u2011pino\u201d ennen webi\u00e4 FAS\u2011ohjelmointikieli ja FASOS\u2011k\u00e4ytt\u00f6j\u00e4rjestelm\u00e4 muodostivat yhdess\u00e4 kokonaisuuden, jota voidaan nykytermein verrata LAMP\u2011pinoon. Kyse [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-417","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/vtkkperinne.fi\/index.php?rest_route=\/wp\/v2\/pages\/417","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vtkkperinne.fi\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/vtkkperinne.fi\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/vtkkperinne.fi\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vtkkperinne.fi\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=417"}],"version-history":[{"count":2,"href":"https:\/\/vtkkperinne.fi\/index.php?rest_route=\/wp\/v2\/pages\/417\/revisions"}],"predecessor-version":[{"id":421,"href":"https:\/\/vtkkperinne.fi\/index.php?rest_route=\/wp\/v2\/pages\/417\/revisions\/421"}],"wp:attachment":[{"href":"https:\/\/vtkkperinne.fi\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=417"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}