• No results found

Reducing lead-times for updating client-server applications in .NET

N/A
N/A
Protected

Academic year: 2021

Share "Reducing lead-times for updating client-server applications in .NET"

Copied!
79
0
0

Loading.... (view fulltext now)

Full text

(1)

UPTEC IT 13 008

Examensarbete 30 hp

Juni 2013

Reducing lead-times for updating

client-server applications in

.NET

Jonathan Andersson

Erik Hellberg

(2)
(3)

Teknisk- naturvetenskaplig fakultet UTH-enheten Besöksadress: Ångströmlaboratoriet Lägerhyddsvägen 1 Hus 4, Plan 0 Postadress: Box 536 751 21 Uppsala Telefon: 018 – 471 30 03 Telefax: 018 – 471 30 00 Hemsida: http://www.teknat.uu.se/student

Abstract

Reducing lead-times for updating client-server

applications in .NET

Jonathan Andersson and Erik Hellberg

Scania is one of the world’s leading manufacturers of heavy trucks and buses. It also manufactures engines for motive power of heavy vehicles, marine, and general industrial applications.

A common challenge for Scania today is to reduce lead-times caused by the application packaging and distribution process associated with client-server

applications in .NET. Another problem caused by the client-server architecture is data inconsistency that may occur between an outdated client and its corresponding database.

This Master’s Thesis evaluates technologies that might help in solving these problems. The technologies are ClickOnce, Windows Terminal Server, an “initiation program” and a web application. The evaluation is based on prototypes of the different

technologies. The prototypes are implemented, tested and compared to one another in terms of advantages and disadvantages, and also in terms of cost-effectiveness and risks that may affect the business.

The work is based on an applicable case - a specific client-server application developed in .NET that struggles with the problems mentioned. The prototypes are applied on this specific application in order to test their effectiveness.

The conclusion suggests “best practice” solutions to the problems for each of three different scenarios. Each scenario consists of different factors that are key to the business when choosing a solution to move forward with.

Keywords: Scania, .NET, software packaging, client-server, ClickOnce, WTS, web application, web migration

Tryckt av: Reprocentralen ITC ISSN: 1401-5749, UPTEC IT 13 008 Examinator: Lars-Åke Nordén Ämnesgranskare: Roland Bol Handledare: Magnus Hållström

(4)
(5)

Populärvetenskaplig sammanfattning

Den!svenska!lastbilsB!och!busstillverkaren!Scania!använder!personliga!datorer!i!det! dagliga!arbetet.!Många!av!de!uppgifter!som!de!olika!yrkesrollerna!inkluderar!utförs! med!hjälp!av!dessa.!Detta!sker!med!hjälp!av!olika!datorprogram!som!finns!installerade! på!datorerna!och!som!i!sig!erbjuder!olika!tjänster.! ! Nya!versioner,!s.k.!uppdateringar,!av!programmen!lanseras!med!jämna!mellanrum.! Dessa!erbjuder!nya!förbättrade!funktioner!och!andra!förbättringar!jämfört!med! versionen!innan.!Innan!användarna!kan!få!tillgång!till!dessa!nya!uppdateringar!så! måste!de!först!levereras!till!användarnas!datorer.!Denna!process!är!kostsam!och!tar! lång!tid!om!användargruppen!är!stor!vilket!är!fallet!på!Scania.! ! Om!man!väljer!att!inte!genomföra!processen!så!har!användarna!endast!tillgång!till! utgångna!versioner!av!programmen!och!går!då!miste!om!de!nya!funktionerna!och! förbättringarna.!Detta!är!inte!acceptabelt!för!verksamheten!som!oftast!är!beroende!av! dessa.! ! Problemet!med!kostsamma!uppdateringar!av!datorprogram!är!det!som!givit!upphov! till!detta!examensarbete!på!Scania.!Målet!är!att!undersöka!problemet!samt!identifiera! och!utvärdera!nya!metoder!och!tekniker!för!att!reducera!kostnaderna!vid! uppdateringar.! ! För!att!uppfylla!detta!mål!har!intervjuer!och!diskussioner!genomförts!med! nyckelpersoner!insatta!i!processen.!Det!som!har!framkommit!i!arbetet!är!att!det!finns! både!bra!och!mindre!bra!metoder!och!tekniker!som!löser!problemet.!En!bästa!lösning! har!dock!inte!kunnat!fastställas.!Varje!lösning!är!istället!bäst!lämpad!utifrån!specifika! beslutsgrundande!faktorer!som!tagits!fram!för!Scanias!räkning.! !

(6)
(7)

Acknowledgements

Our!time!at!Scania!has!been!very!interesting!and!educational.!We've!got!a!little!insight! into!the!operations!of!a!large!company!and!the!manufacturing!process!for!trucks!and! buses.!We!have!been!very!well!received,!and!always!felt!welcome!and!for!this!we!want! to!thank!our!manager!Anna!Sandell!and!the!.NET!development!department!(IWNR).!! ! Special!thanks!to!Magnus!Hållström!for!being!our!supervisor!at!Scania.!You!were! always!there!when!we!had!questions!and!you!always!gave!a!quick!and!thorough! answer.!Work!progressed!at!all!times!thanks!to!our!weekly!meetings!where!you!gave! good!input.! ! Additional!thanks!to!Nils!Johansson,!Jimmy!Karlsson,!Kurt!Flatischler!and!NilsBErik! Karlsson!for!your!technical!input!which!has!been!very!valuable!to!us!during!our!work.! You!have!always!been!open!to!questions!and!focus!group!meetings.!Also,!thanks!to!all! interviewees!for!your!time!and!support.! ! A!final!thanks!to!our!reviewer!Roland!Bol!at!Uppsala!University.!Thanks!for!your! patience,!your!quick!response!and!for!leading!us!in!the!right!direction.!Your!feedback! has!been!crucial!to!our!report.!! ! Thank!you!all!for!your!kind!support!! ! Södertälje,!May!27th!2013! ! ! ………..! Jonathan!Andersson! Erik!Hellberg!

(8)

Abbreviations

CDA! ! Common!Desktop!Architecture!! DLL! ! Dynamic!Link!Library! ECU! ! Electronic!Control!Unit! EMS! ! Electronic!Motor!System! FPC! ! Functional!Product!Characteristic! OAS! ! Object!And!Structure!tool! R&D! ! Research!and!Development!at!Scania! SCAT! ! Software!CATalogue! SCCM! ! System!Center!Configuration!Manager! SOA! ! ServiceBOriented!Architecture! SOCSS!! SOftware!Configuration!and!Supply!Server! UNC!! ! Universal!Naming!Convention! VS! ! Visual!Studio! WTS! ! Windows!Terminal!Server!

(9)

Table of Contents

Table&of&Contents&...&6! 1.! Introduction&...&8! 1.1! Background&...&8! 1.2! Problem&description&...&8! 1.3! Objectives&and&research&questions&...&9! 1.4! Delimitations&...&9! 1.5! Division&of&work&...&10! 1.6! Thesis&structure&...&10! 2.! Method&...&12! 2.1! Initial&proceedings&...&12! 2.2! Research&methodology&and&methods&...&13! 2.3! Literature&review&...&13! 2.4! Interviews&...&14! 2.4.1! Unstructured!interviews!...!14! 2.4.2! SemiBstructured!interviews!...!15! 2.4.3! Structured!interviews!...!15! 2.4.4! Chosen!interview!method!...!15! 2.5! Focus&groups&...&15! 2.6! Benchmarking&...&16! 3.! .NET&Framework&...&17! 3.1! Types&of&applications&...&17! 3.1.1! Windows!Forms!applications!...!17! 3.1.2! Web!applications!...!18! 3.2! Application&architectures&...&19! 3.2.1! ClientBServer!architecture!...!19! 3.2.2! Thin!Client!...!19! 3.2.3! Thick!Client!...!20! 3.2.4! Smart!Client!...!20! 3.2.5! NBTier!Architecture!...!21! 3.2.6! ServiceBOriented!Architecture!(SOA)!...!22! 3.3! Deployment&in&.NET&...&23! 3.3.1! SideBbyBSide!deployment!...!24! 3.3.2! NoBtouch!deployment!...!24! 3.3.3! MSI!deployment!...!25! 4.! Scania&...&26! 4.1! What&is&Scania&...&26! 4.2! The&product&...&26! 4.3! Managing&ECU&systems&...&27! 4.4! SCAT&and&SOCSS&...&28! 4.4.1! Overall!system!architecture!...!29! 4.4.2! The!SCAT!client!...!30! 4.4.3! The!SOCSS!database!...!32! 4.4.4! SCAT!service!...!33! 4.4.5! Future!of!SOCSS!...!34! 4.5! Application&packaging&and&distribution&at&Scania&...&34! 4.5.1! Common!Desktop!Architecture!(CDA)!...!35! 4.5.2! Windows!Terminal!Server!(WTS)!...!36!

(10)

5.! Relevant&technologies&...&37! 5.1! Web&application&...&37! 5.1.1! Web!technology!...!37! 5.1.2! AJAX!...!39! 5.1.3! Web!architecture!...!39! 5.1.4! Use!case!...!40! 5.2! ClickOnce&...&41! 5.3! WTS&...&42! 5.4! Initiation&program&...&43! 5.5! Related&work&at&Scania&...&43! 6.! Implementation&...&45! 6.1! Initiation&program&...&45! 6.2! ClickOnce&...&46! 6.3! Web&application&...&47! 7.! Results&...&50! 7.1! Initiation&program&...&50! 7.2! ClickOnce&...&51! 7.3! Web&application&...&52! 7.4! WTS&...&53! 7.5! Comparison&...&55! 8.! Conclusions&...&56! 8.1! Scenarios&...&56! 8.2! Future&work&...&56! 9.! Discussion&...&58! Bibliography&...&59! Appendices&...&61! Appendix&A! Web&designs&...&61! Appendix&B! Internal&Interviews&...&63! Packaging!Process!Coordinator!at!ITWS!(Software!Asset!Management)!...!63! Provider!Maintenance!Manager!at!IMTA!(Aros!Rosam!Development)!...!65! Head!Solution!Architect!at!ITMW!(Web!Platforms)!...!66! Packaging!Process!Coordinator!at!ITWS!(Software!Asset!Management)!...!68! Business!Analysts!and!expert!SCAT!users!at!RESD!(Diagnostic!Architecture!and!Tools)!70! Object!Leader!at!NEA!(Powertrain!Control!System!Development)!...!73! Appendix&C! External&interview&...&74! Gameplay!Programmer!at!Fatshark!AB!...!74! !

(11)

1. Introduction

This!is!a!Master’s!Thesis!in!the!field!of!Information!Technology!conducted!by!two! Master!of!Science!students!at!Uppsala!University.!The!work!was!performed!at!Scania,! a!major!Swedish!automotive!industry!manufacturer!of!commercial!vehicles!situated!in! Södertälje,!Sweden.!More!precisely,!the!client!was!a!subsidiary!of!Scania,!called!Scania! IT,!who!develops!and!manages!software!used!throughout!the!business.! ! The!first!chapter!presents!a!background!to!the!problem!faced!at!Scania!from!which! our!work!originates.!This!is!followed!by!a!formulation!of!the!problem,!objectives,! some!research!questions,!delimitations!and!finally!a!thesis!structure.!Furthermore,! there’s!a!description!of!how!the!work!has!been!divided!between!the!students.!

1.1 Background

Scania!IT!manages!several!clientBserver!applications!based!on!the!.NET!Framework.! These!applications!demand!packaging,!see!Chapter!3.5,!in!order!to!be!distributed!to! the!users.!This!is!a!process!that!produces!unwanted!leadBtimes!between!development! and!distribution!of!an!application.! ! Another!problem!is!that!a!new!release!of!a!client!application!is!not!guaranteed!to! reach!all!users!at!the!same!time.!Distribution!is!not!immediate!and!it!might!take! several!hours!before!all!users!have!the!latest!version!of!the!application.!Users!that!are! still!using!an!outdated!client!may!not!be!prevented!from!communicating!with!the! server.!This!can!cause!data!inconsistency!problems!if!the!server,!in!most!cases!a! database,!has!a!new!data!representation.! The!essence!of!this!problem!is!that!each!and!every!user!must!update!her!local!version! of!the!software.!Today,!new!software!must!be!distributed!to!the!users,!which!creates! much!overhead.!A!better!approach!proposed!by!Scania!is!to!make!the!users!acquire! the!software!themselves!unknowingly.!This!approach!is!similar!to!the!principles!that! make!the!web!popular.!So!the!problem!itself!has!much!in!common!with!web!migration.! ! Migrating!aging!inBhouse!clientBserver!applications!to!the!web!is!a!common!challenge! for!Scania!today.!The!goal!is!to!save!time!otherwise!spent!on!software!packaging!and! distribution!to!the!users.!Preventing!unintended!use!of!obsolete!clients!and!increased! accessibility!are!two!other!objectives!that!the!process!entails.! ! The!most!obvious!choice!of!solution!is!a!web!application!with!the!same!functionality! as!the!clientBserver!application.!Alternative!solutions!may!also!exist!and!need!to!be! investigated.!

1.2 Problem description

This!Master’s!Thesis!examines!general!solutions!for!reducing!leadBtimes!concerning! packaging!and!distribution!of!clientBserver!applications!based!on!the!.NET!platform.! Focus!will!also!be!on!problems!that!arise!when!an!outdated!client!is!allowed!to! communicate!with!a!newly!updated!server,!e.g.!database.!

(12)

! Scania!is!seeking!a!solution!that!works!well!with!their!clientBserver!environment,!is! costBeffective!and!has!manageable!risks.!The!work!will!center!on!an!inBhouse!clientB server!application!called!SCAT,!which!will!be!thoroughly!analyzed!and!used!to! evaluate!different!solutions.!Furthermore,!it!is!to!be!investigated!how!suitable!SCAT!is! to!become!a!web!application;!this!is!the!generally!preferred!solution,!according!to! Scania.!The!basis!for!this!will!be!the!views!of!the!users!and!it!is!to!result!in!a! developed!web!application!prototype.!

1.3 Objectives and research questions

The!objectives!for!this!project!are!as!follows.! ! • Examine!and!evaluate!solutions!for!reducing!leadBtimes!concerning!packaging! and!distribution!of!clientBserver!applications!based!on!.NET.! ! • Examine!and!evaluate!the!solutions!with!respect!to!their!ability!to!prevent! communication!between!an!outdated!client!and!a!newly!updated!server,!e.g.! database.! ! • Examine!how!suitable!SCAT!is!to!become!a!web!application!and!develop!a!web! application!prototype.!The!prototype!shall!address!the!following!parts:! ! o Architecture! o Graphical!user!interface! o Implementation!plan! o Approximate!time!estimates!for!work!packages! o Risk!evaluation! In!addition,!the!following!research!questions!(RQ)!will!be!answered!in!order!to!fulfill! the!academic!coverage!expected!from!a!Master’s!Thesis.! ! • RQ1:!What!are!the!available!solutions:!advantages!B!disadvantages?! ! • RQ2:!Which!specific!solution!is!best!suited!for!Scania’s!needs,!taking!into! account!costs,!risks!and!time?! ! • RQ3:!How!suitable!is!SCAT!to!become!a!web!application?! ! • RQ4:!How!can!communication!between!an!outdated!client!and!a!recently! updated!server,!e.g.!database,!be!prevented?!

1.4 Delimitations

The!web!application!prototype!is!not!designed!to!be!a!fully!functional!application,!but! rather!to!give!a!taste!of!how!a!web!application!of!SCAT!might!look!and!behave.!The! work!is!supposed!to!act!like!a!manual!for!later!implementation.!It!takes!considerable! time!to!produce!a!web!application;!we!have!20!weeks!at!our!disposal!for!this!entire!

(13)

thesis.!The!focus!is!also!to!briefly!examine!and!evaluate!a!number!of!solutions!rather! than!immersing!in!a!specific!one,!a!breadthBfirst!approach!rather!than!a!depthBfirst! approach.! ! The!work!is!being!carried!out!within!IWNR,!the!department!for!.NET!development.! Because!of!this,!we!have!chosen!not!to!deviate!from!the!.NET!environment!meaning!all! solutions!are!based!on!.NET.!Other!technologies,!such!as!Java,!will!not!be!addressed!in! this!work.! ! The!employees’!computers!at!Scania!mainly!run!the!Microsoft!Windows!operating! system.!Work!will!therefore!be!based!on!techniques!and!methodologies!best!suited!for! this!environment.!

1.5 Division of work

In!the!context!of!IT!and!specifically!programming,!teamwork!is!often!practiced.!The! same!has!been!applied!in!this!case!with!a!few!exceptions.!The!theoretical!parts!have! been!somewhat!divided!between!Erik!and!Jonathan.!Erik!has!focused!more!on!the! general!technologies!such!as!.NET,!explained!in!Chapter!3,!whereas!Jonathan!has!been! focusing!more!on!the!specific!Scania!software!and!environment,!explained!in!Chapter! 4.! ! The!development!of!prototype!solutions!has!in!general!been!carried!out!together.!Two! of!the!four!solutions!have!been!more!confined!in!complexity!compared!to!the!other! two,!which!led!us!to!not!divide!responsibilities,!but!rather!work!on!them!together.! Implementation!and!documentation!have!been!conducted!alternately.! ! The!two!other!solutions!were!significantly!more!complex!and!time!consuming.! Responsibility!for!the!solutions!has!therefore!been!split!between!the!parties.!Erik!has! been!responsible!for!the!web!application!and!Jonathan!took!responsibility!for!the! initiation!program.!Despite!this,!both!parties!have!been!involved!in!all!work.!

1.6 Thesis structure

• Chapter!2:!Describes!the!research!methods!that!have!been!used!throughout!the! work.!! ! • Chapter!3:!Theory!about!the!.NET!framework,!more!precisely!about!general! types!of!applications,!different!application!architectures!and!deployment! options.! ! • Chapter!4:!Presentation!of!Scania!and!the!application!that!is!the!basis!of!this! thesis.! ! • Chapter!5:!Theory!about!relevant!technologies!that!seem!promising!and!are! evaluated.!Also,!a!subchapter!about!a!related!project!at!Scania.! !

(14)

• Chapter!6:!Describes!the!prototype!implementation!for!each!technology! described!in!Chapter!5.! ! • Chapter!7:!The!results!from!evaluating!the!technologies!mentioned!in!Chapter! 5.!These!will!consist!of!advantages!and!disadvantages!for!each!technology,!both! in!a!general!and!Scania!context.! ! • Chapter!8:!Conclusions!consisting!of!three!scenarios!based!on!the!results.!Each! scenario!represents!different!factors!that!are!important!when!choosing!a! solution.!Each!scenario!has!been!assigned!the!appropriate!solution.! ! • Chapter!9:!Discussion!and!post!mortem!of!the!work.!What!has!gone!well!and! what!has!gone!bad?!!

(15)

2. Method

This!chapter!includes!descriptions!of!several!methods!that!we!have!used!in!order!to! achieve!our!goal!with!this!thesis.!We!also!explain!why!we!have!chosen!these!methods! and!how!they!have!been!applied.!!

2.1 Initial proceedings

To!retrieve!the!information!gathered!we!have!had!several!meetings!and!interviews! with!employees!at!Scania.!At!the!beginning!of!our!work!we!knew!very!little!about! Scania’s!need!to!solve!the!problems!we!were!assigned.!We!also!didn’t!know!anything! about!the!application!SCAT!that!is!the!center!of!this!thesis.!Hence!we!did!not!know! how!to!begin.! With!the!help!of!our!supervisor,!who!also!is!one!of!the!developers!of!SCAT!and!SOCSS,! we!started!researching!the!systems!to!acquire!understanding.!We!had!several! meetings!where!he!briefly!explained!the!parts!making!up!the!system.!Along!with!this! we!got!access!to!documentation!of!the!system,!which!gave!a!more!detailed!perspective.! This!resulted!in!questions!regarding!communication!within!the!system,!the!packaging! process!and!much!more,!which!forced!us!to!initiate!contact!with!several!employees! with!insight!into!this.!Interviews!therefore!became!our!best!method!for!acquiring! information.!See!Chapter!2.4.! We!prepared!thoroughly!for!the!first!interview.!Some!basic!knowledge!about!the!topic! and!the!interviewee!in!question!was!acquired.!We!immersed,!for!example,!in!the! interviewee’s!department!and!responsibilities.!Being!prepared!enabled!us!to!ask!more! in!depth!questions!and!further!questions!that!emerged!during!the!interview.!It!all! resulted!in!a!good!long!discussion.!! Later,!while!trying!to!compile!the!interview!data,!it!became!clear!to!us!that!our!rather! crude!interview!technique!had!its!shortcomings.!We!noticed!that!we!hadn’t!followed! the!questions!but!instead!talked!around!them.!This!made!it!difficult!to!reproduce!what! had!been!said.!The!notes!we!had!made!were!also!inadequate!since!it!was!very!hard!to! write!down!all!that!was!being!said.!! Because!of!this!we!decided!to!record!future!interviews,!provided!the!interviewee! allowed!this.!This!was!expected!to!provide!more!detailed!interview!material.!We!also! decided!to!bring!a!question!sheet!for!the!interviewee!to!follow.!These!changes! simplified!the!compilation!process!and!resulted!in!more!detailed!material.!A! compilation!of!the!Q&A!was!sent!to!the!interviewee!to!read!through!and!comment.!! ! Our!reviewer!later!advised!us!to!read!through!and!follow!the!techniques!in!some!wellB known!literature!concerning!research!methods,!e.g.!works!by!Steinar!Kvale.! ! !

(16)

2.2 Research methodology and methods

We!chose!a!book!on!research!methods!by!Catherine!Dawson![1]!over!one!by!Steinar! Kvale!as!these!proved!difficult!to!come!by.! The!research!performed!in!this!project!is!qualitative!research.!This!kind!of!research! explores!attitudes,!behaviors!and!experiences!in!a!specific!context!and!makes!use!of! interviews!and!focus!groups!to!collect!data.![1,!p.!14]!! ! Our!goal!was!to!find!a!solution!for!reducing!leadBtimes!at!Scania,!mentioned!in! Chapter!1.2.!The!goal!was!not!to!find!the!best!general!solution!applicable!to!every! organization!in!the!world.!This!means!that!we!had!to!take!into!account!the!real! conditions!in!a!specific!organization.!Much!of!the!research!has!therefore!circled! around!attitudes,!behaviors!and!experiences!concerning!software!updates!at!Scania.! ! The!opposite!of!qualitative!research!is!quantitative!research.!It’s!based!on!generating! statistics!through!the!use!of!largeBscale!survey!research!and!aims!to!find!a!general! opinion!and!a!solution!that!is!generally!applicable.![1,!p.!15]! There!are!several!research!methodologies!under!the!umbrella!of!qualitative!research.! We!have!chosen!to!follow!a!methodology!called!Grounded(theory.!The!emphasis!in!this! methodology!is!on!the!generation!of!theory!which!is!grounded!in!the!data!B!emerged! from!the!data.!Interviews!and!focus!groups!along!with!a!literature!review!are!the! preferred!data!collection!methods.![1,!p.!18B19]! Dawson!states!that;!“In!grounded(theory(studies(the(number(of(people(to(be(interviewed( is(not(specified(at(the(beginning(of(the(research.(This(is(because(the(researcher,(at(the( outset,(is(unsure(of(where(the(research(will(take(her.(Instead,(she(continues(with(the(data( collection(until(‘saturation’(point(is(reached,(that(is,(no(new(information(is(being( provided.(Grounded(theory(is(therefore(flexible(and(enables(new(issues(to(emerge(that( the(researcher(may(not(have(thought(about(previously.”![1,!p.!19]! ! As!the!methodology!above!states,!we!have!used!interviews,!focus!groups!and!a! literature!review!as!methods!for!collecting!data.!!

2.3 Literature review

A!literature!review!is!central!to!all!theses.!To!review!what!has!been!done!before!in! relevant!areas!of!science!is!crucial!for!laying!the!foundation!to!the!own!research.!You! should!not!reinvent!the!wheel!but!instead!build!upon!the!works!of!others.!Unless!you! want!to!refute!someone’s!theory,!this!is!the!way!to!go.!New!theories!are!also!more! interesting!for!others!and!can!be!used!for!further!work.!This!statement!is!also! supported!by!the!Grounded!Theory!research!methodology!that!we!are!using.! The!first!crucial!step!in!any!thesis!is!to!understand!the!nature!of!the!problem.!Our!first! step!was!therefore!to!go!through!documentation!concerning!SCAT!and!SOCCS!and!the! packaging!process!at!Scania.!Further!reading!was!needed!to!clarify!and!map!the! software!architecture!concerning!SCAT!and!SOCSS!and!its!surrounding!infrastructure.!!

(17)

The!next!step!was!to!research!solutions!to!the!problem.!We!started!off!by!browsing! the!web!for!the!problem!at!hand,!similar!problems!and!possible!solutions!knowing! that!any!references!we!might!find!would!be!uncertain!when!it!comes!to!credibility!and! permanency.!The!search!resulted!in!some!potential!solutions!for!the!problems! surrounding!SCAT!and!SOCSS,!see!Chapter!5.! An!extensive!literature!review!was!the!next!logical!step!to!acquire!some!scientific! ground!to!the!research.!Our!reviewer!had!earlier!advocated!the!Uppsala!University! Library.!Their!website!provided!great!means!of!searching!in!reputed!databases!and! other!published!materials.!We!became!especially!fond!of!the!Web!of!Science!database! along!with!the!IEEE!database!but!did!not!find!anything!of!relevance.!Many!works! seemed!promising!at!first!but!later!turned!out!not!to!have!much!in!common!with!ours.!! In!the!case!with!related!works!we!did!not!find!anything!relevant!on!the!web!or!in!the! databases.!However,!after!asking!our!supervisor!at!Scania,!we!became!aware!that! there!had!been!a!similar!project.!This!project!was!based!on!similar!problems! concerning!another!system.!See!Chapter!5.5!for!further!details.! Our!reviewer!at!Uppsala!University!had!earlier!stated;!“people!in!the!web!industry! write!websites,!not!books”.!After!going!through!a!lot!of!literature,!we!were!prepared! to!agree!with!this!statement.!We!did!however!find!some!books!concerning!.NET! technologies!but!we!were!not!entirely!sure!about!their!objectivity!since!many!of!them! were!from!Microsoft.!We!chose!to!overlook!this!fact!and!instead!reviewed!them!more! critically.!! ! A!major!source!for!information,!especially!when!researching!IT,!is!the!web.!This! proved!more!rewarding!but!we!had!to!be!very!selective!when!reading!material!on!the! web.!Since!most!of!what!we!sought!concerned!.NET,!Microsoft's!website!proved!very! helpful.!However,!it!required!a!critical!mind.!

2.4 Interviews

Interviews!are!a!big!part!of!the!Grounded!Theory!research!methodology.!The!book! “Practical!Research!Methods”![1]!describes!this!technique!thoroughly.!There!are!many! types!of!interviews.!The!three!most!common!are!unstructured,!semiBstructured!and! structured!interviews.!! 2.4.1 Unstructured interviews “Unstructured(or(inAdepth(interviews(are(sometimes(called(life(history(interviews.(In(this( type(of(interview,(the(researcher(attempts(to(achieve(a(holistic(understanding(of(the( interviewees’(point(of(view(or(situation.”![1,!p.!27]! The!emphasis!of!this!type!of!interview!is!to!let!the!interviewee!talk!freely!and!ask!as! few!questions!as!possible.!“The(participant(is(free(to(talk(about(what(he(or(she(deems( important,(with(little(directional(influence(from(the(researcher.(This(type(of(interview( can(only(be(used(for(qualitative(research.”![1,!p.!28]!

(18)

Unstructured!interviews!might!be!perceived!as!the!easiest!kind.!However,!this!is!not! necessarily!the!case.!The!researcher!must!continuously!strive!to!establish!rapport! with!the!participant!in!order!to!get!intimate!information!and!also!“need(to(remain(alert,( recognizing(important(information(and(probing(for(more(detail.”![1,!p.!28]!It!is! important!to!know!how!to!“tactfully(steer(someone(back(from(irrelevant(digressions.”! This!kind!of!interview!can!“produce(a(great(deal(of(data,(which(may(be(difficult(to( analyze.”![1,!p.!28]! 2.4.2 Semi-structured interviews “SemiAstructured(interviewing(is(perhaps(the(most(common(type(of(interview(used(in( qualitative(social(research.”![1,!p.!29]!The!interviewee!is!presented!with!a!list!of!more! or!less!specific!questions!or!topics.!Keeping!the!interview!flexible!and!relaxed!can! enable!other!important!information!to!arise.!“In(some(research,(such(as(a(grounded( theory(study,(the(schedule(is(updated(and(revised(after(each(interview(to(include(more( topics(which(have(arisen(as(a(result(of(the(previous(interview.”![1,!p.!29]!! 2.4.3 Structured interviews Structured!interviews!is!a!quantitative!research!method!that!is!common!in!research! were!different!kinds!of!surveys!are!used.!These!types!of!interviews!are!very! structured!in!the!sense!that!the!interview!questions!are!followed!strictly,!meaning! there!is!no!room!for!“probing”!during!the!interview.!The!questions!are!asked!in!the! same!order!for!each!participant!and!the!answers!are!limited!to!a!number!of!response! options.!This!reduces!longer!discussions!that!might!deviate!from!the!relevant!topics.! 2.4.4 Chosen interview method

Based!on!these!three!options,!we!have!chosen!to!use!semiBstructured!interviews.!This! method!is!best!suited!for!our!work!since!we!are!conducting!qualitative!research!but! also!have!well!defined!questions!that!need!answers!in!order!to!progress!with!the! work.!! ! Most!of!the!conducted!interviews!have!resulted!in!a!new!perspective!to!the!problem,! which!has!led!to!new!interviews!with!new!people.!This!has!meant!that!all!interviews! have!been!conducted!with!a!different!set!of!questions.! ! The!documented!interviews!can!be!seen!in!Appendix!B!and!C.!

2.5 Focus groups

A!focus!group!is!a!group!interview!or!discussion.!A!number!of!people!who!are! believed!to!possess!relevant!knowledge!are!called!together!to!discuss!certain! question(s)!or!issue(s).!“The(discussion(is(led(by(a(moderator(or(facilitator(who( introduces(the(topic,(asks(specific(questions,(controls(digressions(and(stops(breakaway( conversations.”![1,!p.!30] This!method!is!prone!to!induce!group!opinions!rather!than! individual!opinions.!It!might!also!produce!a!wide!range!of!responses!that!can!be!hard! to!compile.

(19)

This!sort!of!method!was!used!frequently!throughout!our!thesis.!The!meetings!with! Nils!and!Magnus!focused!on!discussion!around!the!progress!of!the!thesis,!the! problems!that!occurred!during!the!work!and!the!issues!that!could!arise!in!the!future.! The!meetings!usually!ended!in!a!theoretic!solution!to!the!problems!that!might!have! been!and!how!to!continue!with!the!work.!! ! One!example!is!when!we!had!created!the!first!prototype!(the!initiation!program).! There!was!a!meeting!in!form!of!a!demonstration!with!Nils,!Magnus!and!Mathias!(head! solution!architect)!that!led!to!a!discussion!about!the!design!and!functionality!of!the! prototype.!This!resulted!in!changes!to!the!final!solution.!

2.6 Benchmarking

Benchmarking!is!the!process!of!comparing!one’s!business!processes!with!others!to! establish!a!“best!practice”!solution.![2]!We!planned!to!use!this!method!to!establish! what!other!companies!are!doing!in!the!field!of!software!packaging!and!distribution.!! ! We,!however,!chose!not!to!spend!much!time!on!this!so!only!one!company!was!selected.! They,!however,!solved!their!packaging!and!distribution!by!letting!a!thirdBparty!handle! it.!This!gave!us!no!useful!information.!Instead!we!tried!to!make!contact!with!the!thirdB party!but!this!was!unsuccessful.! ! Therefore!we!abandoned!this!method.!An!interview!with!the!company!can!be!seen!in! Appendix!C.! ! !

(20)

3. .NET Framework

This!chapter!will!address!the!.NET!Framework!and!the!types!of!applications,!different! application!architectures!and!deployment!options!that!are!available!when!using!this.! ! The!.NET!Framework!is!a!development!platform!from!Microsoft.!It!is!used!for!building! applications!for!Microsoft!environments!such!as!Windows.!“The(platform(includes(the( C#(and(Visual(Basic(programming(languages,(a(runAtime(environment(called(Common( Language(Runtime(and(extensive(class(libraries.”![3]!

3.1 Types of applications

This!subchapter!describes!two!types!of!applications!that!can!be!created!using!this! framework,!namely!Windows!Forms!applications!and!web!applications.!

3.1.1 Windows Forms applications

A!Windows!Forms!application!is!a!desktop!application!with!a!rich!graphical!user! interface!(GUI).!Examples!of!such!applications!are!the!Visual!Studio!integrated! development!environment!(IDE),!Microsoft!Word,!Microsoft!Excel!and!so!on.! ! Windows!Forms!applications!have!the!following!general!features:![4,!p.!2B6]! ! • A!dynamic!user!interface!with!rich!controls!(for!example,!DataGrids).! • Users!generally!have!the!ability!to!do!sophisticated!actions!quickly!(for! example,!dragging!and!dropping).! • The!application!is!installed!on!desktops!and!thus!uses!desktop!resources.!For! example,!the!application!can!access!printers,!hard!drives,!and!so!on.!The! application!can!also!communicate!with!other!running!applications!on!the! machine!or!spawn!new!processes!and!threads.! There!are!both!advantages!and!disadvantages!with!desktop!applications.!Some! advantages!are:![5]! !! • Greater!potential!to!create!an!extensive!GUI!(graphical!user!design)!compared! to!web!applications.!There!are!almost!no!limitations!when!developing!the!GUI.! • In!the!case!with!Windows!Forms!development,!there!are!many!provided! graphical!components!that!can!be!used.! • Total!control!over!the!exact!positioning!of!screen!elements.! • Desktop!applications!can!use!resources!in!the!local!machine.!For!example,!an! application!have!the!possibility!to!access!files!on!a!hard!drive!and!a!game! application!might!take!advantage!of!the!graphics!card.! • Performance!is!quicker!for!desktop!applications!compared!to!web!applications.! The!screen!image!is!only!drawn!once!and!only!the!data!changes.!This!can! however!also!be!the!case!for!web!applications!when!using!AJAX,!explained!in! Chapter!4.1.2.! • It!is!relatively!easy!to!integrate!a!desktop!application!with!other!products!such! as!Microsoft!Office.!

(21)

Some!known!disadvantages!are:![5]! ! • Desktop!applications!are!sometimes!hard!to!use!if!the!user!works!from!a! remote!location.!It!may!require!remote!access!to!the!corporate!network!and! certain!firewall!privileges,!which!can!be!tedious!and!pose!a!security!risk.! • Deployment!and!updating!of!a!desktop!application!can!be!a!tedious!task! requiring!both!packaging!and!some!method!of!distribution.!The!problem!grows! with!the!number!of!users.! • If!users!move!between!computers,!they!have!to!worry!about!whether!or!not! the!application!is!installed.!The!look!and!feel!of!the!operating!system! environment!may!also!differ,!such!as!colors!and!other!preferences.! 3.1.2 Web applications A!web!application!is!an!application!targeted!to!run!in!a!web!browser.!In!the!.NET! context,!these!applications!are!created!using!the!ASP.NET!web!application!framework.! Execution!is!divided!between!a!serverBside!component!and!a!clientBside!component.! The!serverBside!contains!business!logic!and!handles!data!access.!The!clientBside! contains!the!view!(GUI)!that!is!rendered!and!displayed!in!a!browser.!Deployment!is! carried!out!by!copying!the!files!making!up!the!application!to!the!web!server.![4,!p.!6B9]! There!are!both!advantages!and!disadvantages!with!web!applications.!On!the! advantage!side!there!are:![5]! ! • Most!users!are!familiar!with!web!and!have!used!a!web!browser!before.!The! user!only!need!a!web!browser!found!in!almost!every!computer.!! • Application!deployment!and!updating!can!be!done!without!having!to!distribute! the!Microsoft!.NET!Framework.!The!new!software!only!has!to!be!placed!on!a! central!server!to!be!accessed!by!all!users.! • Some!applications!require!a!lot!of!processing!power.!Instead!of!updating!each! individual!desktop!computer,!you!can!increase!the!power!of!your!central! server,!which!is!more!cost!effective!during!upgrades.! • A!web!application!is!more!suited!for!remote!users!since!data!is!easily! transferred!through!corporate!firewalls!when!using!the!HTTP!protocol!instead! of!other!proprietary!protocol.! Some!known!disadvantages!are:![5]! ! • The!graphical!appearance!may!vary!between!different!web!browsers!giving!the! users!varying!experiences,!which!can!be!confusing.! • There!is!no!standard!way!of!providing!an!input!mask.!In!a!desktop!application,! you!can!specify!the!input!format!giving!the!user!little!opportunity!to!make! errors.!This!is!much!more!difficult!in!a!web!application!as!you!may!have!to! resort!to!scripts.! • Performance!is!generally!slower!compared!to!a!desktop!application.!Each! request!results!in!both!the!data!and!the!screen!image!being!sent!between!the! server!and!browser.!Calculations!are!made,!however,!in!the!more!powerful! server!instead!of!in!the!more!limited!desktop!computer.!

(22)

• It!is!not!easy!for!a!web!application!to!cooperate!with!other!desktop! applications!on!the!local!computer.!It!is!limited!to!what!the!web!browser!has!to! offer.!

3.2 Application architectures

This!chapter!will!explain!the!clientBserver!application!architecture!that!is!the!focus!of! this!report.!It!will!also!briefly!explain!the!nBtier!and!serviceBoriented!architectures.! These!three!are!common!architectures!in!use!today.! 3.2.1 Client-Server architecture A!popular!architecture!during!the!70s!and!80s!was!the!mainframe!architecture.!It! lacked!GUIs!and!didn’t!offer!geographically!remote!access!to!the!databases.!These! limitations!popularized!the!clientBserver!architecture.!As!shown!in!Figure!3B1,!the! architecture!is!divided!into!three!layers:!the!presentation!layer,!the!business!logic! layer!and!the!data!access!layer.!Each!layer!has!specific!responsibilities.!The! presentation!layer!manages!the!interaction!with!the!user,!the!business!layer!contains! logic!and!performs!calculations,!and!the!data!layer!handles!storing!and!retrieving!data.! The!presentation!layer!is!by!default!located!in!the!client,!whereas!the!business!and! data!layers!sit!on!the!server.!This!isn’t!always!the!case!however.!To!differentiate!this,! there!are!three!kinds!of!client!models:!thin,!thick!and!smart!clients.![4,!p.!14]! Figure!3B1:!The!three!software!layers!making!up!a!clientBserver!architecture.![4,!p.!14]! 3.2.2 Thin Client A!thin!client!application!only!contains!the!presentation!layer.!All!the!processing!takes! place!on!the!server(s).!This!category!consists!mainly!of!web!applications.!An!ASP.NET! web!application!is!the!equivalent!in!the!.NET!context.!Thin!clients!are!easy!to!update! and!maintain.!They!do,!however,!have!several!disadvantages.!For!example!poor!user! experience,!compelling!security!concerns,!and!network!connection!requirement.! There!is!no!offline!capability.!Despite!all!this,!it!has!been!a!popular!choice!in!the!past! decade!because!of!its!easy!deployment!and!global!reachability.![4,!p.!14B15]!

(23)

3.2.3 Thick Client A!thick!client!is!the!opposite!of!a!thin!client.!It!typically!contains!two!layers,!namely! the!presentation!and!business!logic!layers.!It!can!in!more!rare!cases!contain!all!three! layers!but!this!is!not!considered!good!practice!since!it!makes!for!inflexible!software.! Thick!clients!are!considered!dynamic!and!offer!a!rich!user!experience.!The! disadvantages!include!more!difficult!deployment!and!updates,!and!poor!maintenance! options.!These!difficulties!made!the!thin!client!more!popular!in!the!past!decade.![4,!p.! 15]! 3.2.4 Smart Client A!smart!client!is!“the!concept!of!architecting!your!application!solution!into!a!smart,! flexible!and!convenient!platform!that!utilizes!web!services!for!communication.”![6]! The!smart!client!concept!from!Microsoft!aims!to!restructure!Windows!Forms! applications!that!are!thick!clients,!towards!the!concept!of!thin!client!applications.! “This(is(accomplished(in(part(by(making(a(constant(effort(to(separate(an(application(into( distinct,(standAalone(components((tiers).”![6]!In!general,!this!is!what!distinguishes! smart!clients!from!traditional!clientBserver!applications,!which!are!known!for!creating! problems!with!deployment!and!updates.!! ! These!problems!are!always!considered!when!choosing!an!application!architecture,! which!is!why!companies!often!choose!to!develop!web!applications.!However,!by! separating!the!core!components!of!a!clientBserver!application!and!making!it!into!a! smart!client,!these!problems!can!be!dealt!with.!A!smart!client!uses!local!processing! and!the!deployment!and!updating!of!the!application!can!be!done!from!a!centralized! server!by!making!the!client!check!for!new!software.!The!downside!is!that!there!is!no! general!template!for!transforming!a!system!written!in!.NET!into!a!smart!client.![6]![4,! p.!15]! ! Figure!3B2!below!displays!some!differences!between!thin,!thick!and!smart!clients.!

(24)

Figure!3B2:!Some!differences!between!thick,!smart!and!thin!clients.![4,!p.!3]! 3.2.5 N-Tier Architecture An!application!is!often!broken!up!into!layers!for!scalability,!performance!and! maintainability!reasons.!Refer!to!Figure!3B3.!This!is!known!as!nBtier!architecture.!With! nBtier!architecture!you!may!have!the!business!and!data!layers!divided!and!running!in! standBalone!components!(tiers),!e.g.!different!machines.!Common!ways!to!achieve! optimal!performance!include!load!balancers,!server!farms!and!database!clusters.! ! The!three!layers!that!make!up!a!clientBserver!application!may!be!divided!in!a!number! of!ways.!In!a!oneBtier!application,!all!three!layers!are!bundled!together!on!the!same! machine.!Similarly,!in!a!twoBtier!application,!the!business!and!data!layers!are!bundled! together!while!the!presentation!layer!resides!on!a!separate!machine.!When!all!layers! are!residing!on!separate!machines,!you!have!a!threeBtier!application.!Each!layer!can! also!be!divided!between!several!tiers!as!shown!in!Figure!3B3!below.!This!produces!an! nBtier!application.![4,!p.!15B16]!

(25)

Figure!3B3:!Example!of!an!NBTier!architecture.![4,!p.!16]! 3.2.6 Service-Oriented Architecture (SOA)

A!serviceBoriented!architecture!(SOA)!is!a!software!design!methodology!that! according!to!Microsoft![7]!is!“a!loosely!coupled!architecture!designed!to!meet!the! business!needs!of!the!organization”.!This!loosely!coupled!architecture!usually!consists! of!several!“software!services”!that!aims!to!represent!the!realBworld!services!of!an! organization,!i.e.!the!services!that!the!organization!offers!to!both!employees!and! customers.!!!! ! The!“software!services”!in!a!SOA!are!usually!implemented!as!web!services!because!of! their!simplicity.!These!loosely!coupled!services!mitigate!the!risks!and!facilitates!when! changes!are!necessary.!This!is!because!each!service!is!autonomous!and!has!its!own! strict!interface.!Furthermore,!web!services!also!have!the!advantage!of!being! considered!technologyBand!platformBindependent!because!they!use!standard!XML! languages.![8]!This!means!that!the!development!becomes!very!flexible.![4,!p.!16B17]! [9]!Figure!3B4!below!shows!a!typical!SOA.!!

(26)

Figure!3B4:!An!example!SOA!architecture.![4,!p.!17]!

3.3 Deployment in .NET

Thin!clients!have!been!favored!over!thick!clients!for!many!years!because!of!its!easy! deployment!and!global!reach.!This!in!spite!of!the!thick!clients!more!advanced!controls,! user!interface,!local!resource!access!and!so!on.![4,!p.!137]!Figure!3B5!shows!the! benefits!of!a!thin!client!versus!a!thick!client.!! Figure!3B5:!Feature!comparison!between!a!thick!and!thin!client.![4,!p.!137]! The!figure!above!clearly!states!that!thick!clients!are!superior!to!thin!clients!in!most! respects.!A!solution!that!combines!a!thick!client’s!benefits!with!a!thin!client’s!benefits!

(27)

has!long!been!sought.!The!difficulty!with!thick!clients,!however,!is!that!they!have!to!be! installed!on!the!user’s!computer.!! ! This!introduces!several!problems:![4,!p.!137B138]! ! • How!to!perform!software!updates?! • How!to!manage!DLL!(Dynamic!Link!Libraries)!versions?! ! Microsoft!states;![10]!“A(DLL(is(a(library(that(contains(code(and(data(that(can(be(used( by(more(than(one(program(at(the(same(time.(For(example,(in(Windows(operating( systems,(the(Comdlg32(DLL(performs(common(dialog(box(related(functions.(Therefore,( each(program(can(use(the(functionality(that(is(contained(in(this(DLL(to(implement(an( Open(dialog(box.(This(helps(promote(code(reuse(and(efficient(memory(usage.”!! !! Microsoft!worked!for!many!years!to!solve!the!problems!above.!The!first!problem!that! needed!to!be!solved!in!order!to!move!forward!was!the!DLL!problem.!This!problem! consists!of!the!complications!that!may!arise!from!DLLs!in!Microsoft!Windows! operating!system.!The!solution!to!the!problem!came!to!be!called!sideAbyAside( deployment,!explained!below.!With!this!problem!out!of!the!way,!Microsoft!was!able!to! develop!and!introduce!a!web!based!deployment!method,!called!noAtouch(deployment.! [4,!p.!138]!This!method!and!the!more!traditional!MSI!deployment!method!will!be! explained!in!subchapters!below.! 3.3.1 Side-by-Side deployment SideBbyBside!deployment!is!a!feature!in!the!.NET!Framework!that!allows!for!sideBbyB side!assemblies!(DLLs)!and!isolated!application!installation.!It!was!introduced!with! the!Windows!XP!operating!system.!SideBbyBside!assemblies!allow!multiple!versions!of! an!assembly!to!be!installed!and!run!at!the!same!time.!An!isolated!application!refers!to! an!application!that,!upon!installation,!won’t!affect!applications!that!are!already! installed.!Moreover,!with!sideBbyBside!deployment!applications!make!use!of!metadata! (data!describing!data)!to!describe!themselves!rather!than!the!registry!as!before.![4,!p.! 138B139]! ! ! The!benefits!with!the!technique!are:![4,!p.!138]! ! • Applications!written!and!tested!against!a!specific!assembly!are!executed! against!the!same!assembly.! • Application!deployment!is!just!a!matter!of!copying!and!pasting!files.! • Installation!no!longer!requires!a!system!reboot.! 3.3.2 No-touch deployment NoBtouch!deployment!(NTD)!enables!smart!clients!to!be!deployed!in!a!manner!similar! to!how!thin!clients!are!deployed,!i.e.!by!copying!the!application!files!to!a!web!server! and!letting!the!user!access!the!application!via!a!URL.![4,!p.!140]! When!the!user!clicks!the!URL,!Internet!Explorer!downloads!the!application!to!user’s! computer!and!a!special!executable!(IEExec.exe)!runs!the!application.!The!application!

(28)

author!does!not!have!to!touch!the!client!machine!at!all,!hence!the!name!noBtouch! deployment.![4,!p.!140]! ! This!is!also!true!for!updates,!which!are!simply!a!matter!of!copying!the!new!version!of! the!application!to!the!web!server.!The!next!time!the!application!is!launched,!Internet! Explorer!checks!for!a!newer!version,!finds!it!and!downloads!it.![4,!p.!140]! ! The!advantages!with!NTD!are:![4,!p.!141]! ! • Easy!deployment!and!updating! • Administrator!privileges!are!not!required!for!installation.!This!is!generally!the! case!with!MSI!deployment.! ! The!disadvantages!are:![4,!p.!141]! ! • Requires!Internet!Explorer.!No!other!web!browser!works.! • The!application!runs!in!code!access!security!(CAS)!sandbox,!which!prevents!it! from!utilizing!local!resources!such!as!disks!and!Microsoft!Office.!This!limits!the! application’s!functionality.! • The!entire!application!has!to!be!downloaded!every!time!before!it!can!be! launched.! ! Despite!of!its!many!disadvantages,!this!technology!laid!the!groundwork!for!and! evolved!into!a!more!advanced!smartBclient!deployment!technology!called!ClickOnce,! see!Chapter!5.2.! 3.3.3 MSI deployment MSI!(Microsoft!Installer)!is!a!deployment!solution!for!thick!client!applications!on! Windows!operating!system.!It!was!initially!aimed!at!larger!organizations!with!the! need!for!a!standardized!deployment!solution.!Many!organizations!had!until!then! developed!their!own!deployment!methods.!The!method!is!nowadays!known!as! Windows!Installer.![4,!p.!139B140]! Advantages!with!MSI!are:![4,!p.!139]! ! • Can!write!to!the!registry! • Can!write!program!files!to!the!hard!drive,!i.e.!to!the!program!files!folder! • Can!create!databases!and!shortcuts! • Allows!custom!control!of!every!step!of!the!deployment! The!disadvantages!are:![4,!p.!139]! ! • Requires!that!the!MSI!package!is!delivered!to!the!client!somehow! • Requires!administrator!privileges! • Generally!the!users!have!to!go!through!a!wizard!with!many!steps! !

(29)

4. Scania

This!chapter!describes!Scania,!the!organization!and!the!focus!of!this!thesis,!the! application!SCAT.!Chapters!4.2!to!4.5!are!based!on!information!gathered!from!Scania! Inline![11]!and!interviews!and!focus!groups!with!Scania!employees.!

4.1 What is Scania

Scania!is!one!of!the!world’s!leading!manufacturers!of!heavy!trucks!and!buses.!It!also! manufactures!engines!for!motive!power!of!heavy!vehicles,!marine,!and!general! industrial!applications.!The!company!was!founded!in!1891!and!has!since!then!built! and!delivered!more!than!1,400,000!trucks!and!buses.![12]! Scania!is!a!global!company!with!a!sales!and!service!organization!in!more!than!100! countries.!Aside!from!sales!and!services,!Scania!offers!financial!services!in!many! markets.!Scania’s!production!units!are!located!in!Europe!and!Latin!America.![12]! ! Scania!has!approximately!37,500!employees.!Of!these,!some!16,000!work!with!sales! and!services!in!Scania’s!own!subsidiaries!worldwide.!About!12,400!people!work!at! production!units!in!seven!countries!and!regional!product!centers!in!six!emerging! markets.!Scania’s!Head!Office!is!located!in!Södertälje,!Sweden,!where!a!total!of!5,800! people!work!with!sales!as!well!as!administrative!and!other!tasks.!Also!in!Södertälje! are!Scania’s!research!and!development!operations,!with!about!3,300!employees.![12]!

4.2 The product

A!Scania!truck!or!bus!consists!among!other!things!of!a!number!of!ECUs!(Electronic! Control!Unit),!see!Figure!4B1!below.!These!are!embedded!systems,!each!of!which!is! responsible!for!and!controls!a!task!(electrical!system)!in!the!vehicle.!Examples!of!ECU! systems!are:! • Fleet!Management!System!(FMS)!B!monitors!a!vehicle’s!position!and!status!! • Electronic!Brake!System!(EBS)!B!ensures!that!the!brakes!are!working! satisfactorily! • All!Wheel!Drive!(AWD)!B!ensures!that!power!is!distributed!to!all!wheels! A!Scania!vehicle!consists!of!several!ECU!systems.!The!picture!below!shows!a!general! truck!with!some!of!its!accompanied!ECU!systems.!

(30)

Figure!4B1:!A!schematic!of!a!truck!and!its!ECU!systems.![11]!

4.3 Managing ECU systems

An!ECU!system!consists!of!a!software!(SW)!and!hardware!(HW)!component.!These!are! in!turn!composed!of!various!components!depending!on!which!ECU!system!they!belong! to.!Software!for!a!specific!hardware!is!constantly!evolving!and!new!versions!are! released!periodically.!A!new!version!may!contain!bug!fixes,!new!features!or!other! improvements!that!may!give!way!for!new!possible!uses.!Each!new!version!is!assigned! a!unique!article!number.!These!article!numbers!are!used!for!all!different!kinds!of! components!whether!it!is!a!software!version!or!a!screw.! Initially,!all!systems!and!their!accompanied!software!versions!were!kept!in!an!Excel! sheet.!This!was!managed!by!R&D!and!is!still!in!use!today.!Up!until!today!it!has!grown!

(31)

considerably!in!both!size!and!complexity.!More!so!than!initially!planned!for!and!this! has!since!long!been!a!growing!problem.! ! A!solution!to!the!problem!was!a!database.!In!2001,!the!database!SOCSS!(SOftware! Configuration!and!Supply!Server)!was!created!in!order!to!act!as!a!mirror!of!the!main! article!database!system!at!Scania!called!SPECTRA.!SPECTRA!is!an!old!legacy!database! system!that!Scania!were!reluctant!to!change!because!changes!have!a!direct!impact!on! production.!! At!this!point!there!existed!a!database!with!the!potential!to!replace!the!Excel!sheet.!In! order!to!give!users!easy!access!to!the!database,!Scania!developed!a!client!application! capable!of!reading!and!writing!data!in!SOCSS.!This!made!it!possible!for!users!to! manage!the!same!data!that!resides!in!the!Excel!sheet,!i.e.!software!articles!and!their! dependencies.! ! The!client!application!is!a!Windows!Forms!application!and!is!called!SCAT!(Software! CATalogue).!The!advantages!of!this!application!compared!to!the!Excel!sheet!were!that! it!could!prevent!human!errors!to!a!greater!extent.!This!is!due!to!the!business!logic!that! was!incorporated!into!both!SCAT!and!SOCSS.![11]!

4.4 SCAT and SOCSS

As!mentioned!in!the!assignment!above!SCAT!is!the!application!that!is!to!be!evaluated! in!this!thesis.!This!application!utilizes!a!database,!a!largeBscale!computer!and!a!web! service.!SCAT!is!used!for!many!things!within!Scania!such!as!creating!and!maintaining! data!about!ECUs,!which!are!one!of!the!core!components!in!Scania!trucks.! SCAT!is!a!Windows!Forms!application!used!by!more!than!hundred!employees!within! Scania.!It!can!be!thought!of!as!a!register!tool!that!creates!important!data!about!ECU! systems!and!rebuilding!possibilities!for!trucks!and!buses.!Systems!used!in!Scania! workshops,!are!dependent!on!this!data!when!installing!the!software!in!the!physical! ECUs!of!Scania!trucks.!The!SCAT!client!provides!the!user!with!an!interface,!which!lists! existing!ECU!systems!and!their!respective!underlying!articles.!This!data!resides!in!the! SOCCS!database!and!the!largeBscale!computer!AROS.!! ! Each!ECU!system!has!a!certain!classification!and!consists!of!two!things,!“parts”!and! “variant!codes”!also!known!as!FPC!(Functional!Product!Characteristic)!codes.!This! classification!property!links!together!ECU!systems!depending!on!its!purpose.!As!an! example!there!are!three!ECU!systems!called!S6,!S7!and!S8.!These!three!are!different! ECUs!for!engine!control!and!are!therefore!categorized!as!EMSs!(Engine!Management! System).!The!classification!properties!give!the!users!of!SCAT!a!higher!level!of! abstraction,!which!is!a!necessity.![11]!

(32)

4.4.1 Overall system architecture Figure!4B2!below!displays!the!overall!architecture!around!SCAT!and!SOCSS.! Figure!4B2:!System!architecture!around!SCAT!and!SOCSS.! The!largeBscale!computer,!called!AROS,!is!a!high!performance!transaction!server! running!on!IBM!Mainframes.!It!contains!a!database!management!system!(DBMS)! called!ROSAM.!The!manufacturer!states!“Aros(Transaction(Server((ATS)(enables(instant( access(to(your(mainframe(data(via(OLE/DB,(ODBC(or(JDBC.(This(means(that(you(can( write(new(PC(applications(that(retrieve(and(update(your(legacy(data(in(Rosam(databases( using(the(same(development(tools(and(methods(that(you(use(to(access(data(in(any(SQL( database.”![13]! ! AROS!hosts!several!systems,!each!containing!data!that!are!used!by!endBuser! applications!such!as!SCAT.!The!article!information!that!is!of!particular!interest!for! SCAT!is!stored!in!the!system!SPECTRA.!SPECTRA!is!responsible!for!the!management! of!product!structures!found!in!all!Scania!products,!i.e.!trucks,!buses!and!engines.!! ! SOCSS!is!only!allowed!to!read!data!from!SPECTRA,!not!write!data.!The!only!way!for! SOCSS!to!communicate!with!SPECTRA!is!by!using!SIAM!IP,!which!is!a!messaging! service!based!on!the!IBM!WebSphere!MQ.!It!acts!as!middleware!between!SOCSS!and! SPECTRA!enabling!the!transfer!of!data.! SCAT!is!a!twoBtier!thick!client!application.!As!shown!in!the!picture!above,!SCAT! accesses!the!SOCSS!database!directly!without!consulting!a!business!logic!tier.!The! client!holds!both!presentation!and!business!logic!layers!making!it!a!thick!client.!The!

(33)

database!also!holds!the!business!logic!layer!to!some!extent!in!the!form!of!advanced! stored!procedures.!

4.4.2 The SCAT client

This!chapter!explains!the!SCAT!client!and!its!functional!parts!in!more!detail.! Information!in!this!chapter!is!gathered!from!interviews!with!Scania!employees!and! Scania!Inline![11].! 4.4.2.1 Variant codes A!variant!code,!also!known!as!FPC!code,!is!a!value!of!a!property!that!categorizes!a! certain!part!of!an!ECU!system.!Examples!of!properties!are!the!“Passenger!door! position”!and!“Cab!length”.!In!SCAT,!the!user!can!choose!to!display!all!variant!codes! that!exists!for!all!ECU!systems.!The!list!can!be!narrowed!down!to!only!display!the! variant!codes!that!affects!a!certain!system.!! ! A!property!value!is!specified!with!a!character!or!a!number!of!characters!like!A,!B!or!ZZ.! When!a!customer!orders!a!product,!she!gives!a!description!of!what!the!product!will!be! used!for!and!how!it!should!look.!This!will!result!in!a!list!of!variant!codes!that!Scania! has!translated!from!interpreting!the!customer!description.!These!codes!can!all!be! found!in!SCAT!and!the!choice!of!variant!codes!determines!what!combination!of! hardware!and!software!that!is!applicable.! ! By!getting!this!sort!of!information,!the!right!software!and!hardware!can!be!used!in! each!ECU!system.!The!total!amount!of!ECU!systems!constitutes!a!large!part!of!the! finished!product.!This!information!helps!to!make!the!finished!product!accomplish! what!the!customer!ordered.! 4.4.2.2 Authorization levels The!SCAT!client!provides!four!different!authorization!levels!for!the!users.!The!lowest! level,!called!“viewer”,!only!provides!the!user!with!reading!rights.!The!second!lowest! level!is!“system!owner”!and!these!types!of!users!can!edit!the!article!numbers,!but!not! the!FPC!codes.!To!be!able!to!edit!FPC!codes!you!need!to!have!the!third!authorization! level,!called!“product!coordinator”.!This!however,!no!longer!gives!the!user!the!ability! to!edit!article!numbers.!! ! The!last!and!highest!authorization!level!is!called!“SCAT!administrator”.!By!having!this! role,!the!users!are!able!to!do!all!of!the!above!and!also!create!article!structures,! configure!user!rights!and!add!new!ECU!systems,!which!is!the!most!advanced!feature!in! this!application.! 4.4.2.3 Rebuild tool The!rebuild!tool!is!a!very!useful!tool!in!SCAT!and!is!also!the!only!graphical!tool.!It!can! be!seen!in!Figure!4B3!below.!As!a!user!you!create!boxes,!which!contains!ECU!systems! with!its!belonging!hardware!and!software!components.!These!boxes!form!chains!of! varied!lengths!that!show!the!possible!replacements!of!each!ECU!system’s!software.!In! some!cases,!there!are!chains!that!are!put!together!in!a!form!of!a!tree!that!also!shows! possible!rebuilds!that!can!be!done.

(34)

It!is!important!to!understand!the!differences!between!the!replacement!and!the!rebuild! of!a!software!component.!Replacing!means!updating!the!software!to!a!newer!or!older! version!while!rebuilding!means!changing!the!software!to!a!complete!different!one.!All! boxes!in!a!chain!or!a!tree!always!share!common!hardware!components!since!it!is! always!the!software!that!is!being!replaced!or!rebuilt,!not!the!hardware.! Figure!4B3:!Rebuilds!tool!in!SCAT!client.! 4.4.2.4 ECOs ECO!stands!for!Engineering!Change!Order,!which!could!be!explained!as!an!assignment! with!a!unique!id!and!a!particular!time!for!when!the!result!of!the!assignment!will!be! finished!and!put!into!production.! An!example!could!be!that!Scania!needs!to!lower!emissions,!and!this!in!turn!leads!to! the!development!of!a!new!engine!system.!This!process!can!be!long!and!its!status!will! change!over!time!depending!on!what!stage!the!development!is!in.!Every!ECO!has!a! unique!id!and!a!deadline.!This!enables!everyone!involved!in!the!ECO!process!to!keep! track!of!its!progress.! All!ECOs!are!all!stored!in!the!largeBscale!computer!system!AROS.!SCAT!however,!is! only!involved!with!ECOs!concerning!the!hardware!and!software!components!of!ECU! systems.! 4.4.2.5 SCAT Architecture The!underlying!architecture!of!SCAT!can!be!labeled!as!a!twoBtier!architecture.!The! client!and!most!of!its!logic!is!hosted!by!the!user!desktop!computer!and!the!data!layer! is!hosted!on!a!remote!server.!A!general!clientBserver!architecture!means!that!an! application!is!divided!into!three!layers.!The!client!consists!of!the!presentation!and!

(35)

business!logic!layers!making!it!a!thick!client.!See!Chapter!3.2.3.!! !

The!main!thing!that!separates!a!thick!client!from!a!thin!client,!which!also!is!the! Achilles!heel!of!SCAT,!is!that!a!thick!client!is!generally!harder!to!deploy!and!update.! 4.4.3 The SOCSS database

4.4.3.1 Function SOCSS!database!is!a!Microsoft!SQL!Server!2008,!which!contains!huge!amounts!of!data! for!systems!around!Scania.!Most!of!its!data!however,!is!extracted!from!the!largeBscale! computer!AROS!and!the!extraction!is!possible!because!of!a!messageBsystem!named! SIAM!IP.! SIAM!IP!was!built!so!that!older!largeBscale!computer!systems!such!as!AROS,!could! concentrate!on!communication!against!one!single!source,!instead!of!having!multiple! connections!to!different!types!of!systems.!The!simple!explanation!of!what!SIAM!IP! does!is!message!passing!between!two!points!resulting!in!data!extraction.! 4.4.3.2 Technology Every!night!a!data!transfer!occurs!between!SOCSS!and!AROS.!This!data!contains!all!the! ECOs!that!exist!in!AROS.!They!are!copied!into!SOCSS!because!of!the!easier!accessibility! for!systems!such!as!SCAT.! When!an!ECO!is!ready!to!be!put!into!SCAT,!there!are!a!number!of!steps!the!SCAT!user! must!perform!which!involves!SOCSS.!The!ECO!itself!has!one!or!more!articles! connected!to!it.!These!articles!are!stored!in!AROS,!not!in!SOCSS.!A!request!is!therefore! stored!in!one!of!the!database!tables!with!the!prefix!MQ.!In!the!background!there!is!a! trigger!that!notices!a!change!in!this!table!and!a!message!is!sent!by!SIAM!IP!to!AROS!for! the!extraction!of!these!articles.!The!articles!is!sent!back!by!SIAM!IP!and!inserted!into!a! table!with!the!prefix!IW!to!be!updated!in!SCAT.!See!Figure!4B4!below. Each!message!has!a!contract!ID!that!tells!the!messenger!what!type!of!message!it!is!and! its!destination.!The!newly!stored!articles!in!SOCSS!have!different!status!but!none!of! them!are!production!valid.!The!users!of!SCAT!need!to!approve!these!articles,!its! structures!and!sub!articles.!When!this!is!done!their!statuses!in!the!table!is!changed!but! can!still!not!be!used!by!outside!systems.!This!will!change!when!the!whole!ECO!has! been!approved!and!the!date!of!when!it!is!to!be!in!production!has!passed.! SOCSS!have!around!60!database!tables.!Figure!4B4!below!shows!an!abstract!of!the! parts!related!to!SCAT.!The!prefixes!are!there!to!make!it!easier!for!the!developers!to! see!what!type!of!processes!the!tables!are!involved!in.!SOCSS!also!consists!of!stored! procedures,!which!form!part!of!the!business!layer!in!SCAT. The!tables!with!the!MQ!prefix!holds!data!for!the!communication!via!message!passing! that!SIAM!IP!is!responsible!for.!The!IW!prefix!tables!are!temporary!storage!tables!for! article!and!ECO!information!that!has!not!yet!been!approved!to!go!into!production.! Once!they!have!been!approved,!they!are!moved!to!the!SC!prefix!tables,!which!holds!all! the!production!valid!articles!and!ECOs.!

(36)

Figure!4B4:!The!tables!in!SOCSS!concerning!SCAT!and!their!relationship!with!SPECTRA.! 4.4.4 SCAT service SCAT!service!is!a!Windows!service!that!follows!the!WCF!(Windows!Communication! Foundation)!framework,!which!is!built!for!the!development!of!serviceBoriented! applications.!The!framework!makes!it!possible!to!send!data!as!asynchronous! messages!to!other!services.!This!feature!is!used!whenever!data!must!be!sent!between! SOCSS!database!and!AROS!mainframe.! The!responsibility!of!SCAT!service!is!to!save!newly!createdB!and!updated!article! classifications!to!AROS.!Whenever!a!user!creates!a!new!article!classification!or! updates!an!old!one!in!the!SCAT!client,!SCAT!service!makes!sure!that!this!data!is!stored! in!both!AROS!and!SOCSS!database.!These!two!storages!need!to!have!identical! information!about!the!article!classifications.!

SCAT!service!uses!ODBC!(Open!Database!Connectivity)!for!the!communication!with! SOCSS!database.!ODBC!is!a!standard!middleware!API!for!connectivity!with!database! management!systems.!To!connect!with!AROS,!it!uses!an!interface!called!ATS!(Aros! Transaction!Server),!which!makes!it!possible!for!SCAT!service!to!access!AROS!the! same!way!as!it!does!with!SOCSS!database,!i.e.!with!ODBC.! A!second!thing!that!SCAT!service!is!responsible!for!has!to!do!with!the!ECU!structures.! AROS!stores!information!about!ECU!compatibility.!Whenever!a!user!of!SCAT!client! wants!to!rebuild!a!structure!of!an!ECU,!it!is!SCAT’s!job!to!check!in!AROS!if!this!rebuild! is!valid.!If!the!rebuild!is!not!valid,!a!warning!will!be!generated!in!the!client,!telling!the! user!that!the!structure!created!or!updated!is!not!possible.!This!acts!as!an!insurance!to! prevent!human!errors!that!can!occur.!It!was!to!prevent!these!human!errors!that!the! ExcelBsheet!was!replaced!by!an!application!in!the!first!place.!

(37)

4.4.5 Future of SOCSS Scania!is!currently!developing!a!new!platform!for!the!administering!of!articles!and! structures,!called!OAS!(Object!And!Structure!Tool).!The!goal!is!for!it!to!replace!the!ECO,! AI!and!SPECTRA!systems!in!AROS.! ! SOCSS!is!practically!a!subset!of!AROS!meaning!that!all!data!in!SOCSS!also!resides!in! AROS,!but!not!vice!versa.!The!reason!for!the!existence!of!SOCSS!is!mainly!the! unwillingness!to!make!changes!in!AROS!and!because!a!relational!DBMS,!such!as!SOCSS,! provides!a!more!modern!interface!for!applications!such!as!SCAT.!The!introduction!of! OAS!will!most!likely!render!SOCSS!obsolete!and!unnecessary.!SOCSS!was!something!of! a!compromise!from!the!beginning!in!the!sense!that!the!AROS!mainframe!was!not! developed!in!line!with!business!requirements!and!the!need!of!IT!development!at!the! time.!

4.5 Application packaging and distribution at Scania

There!are!many!software!applications!at!Scania!today!that!need!to!go!through!a! packaging!and!distribution!process!before!they!are!delivered!to!the!users.!This! process!has!been!used!for!many!years!and!is!a!Scania!policy!because!of!the!efficient! and!standardized!way!of!installation!it!brings!with!it.!! ! The!process!begins!with!the!submission!of!a!new!version!of!the!application!to!the! ITWS!(Software!Asset!Management)!department.!The!application!can!be!either!inB house!or!third!party.!ITWS!test!the!application!by!installing!it!and!checking!that! everything!is!working!as!it!should!in!the!Scania!IT!environment!before!forwarding!it! for!software!packaging.!This!is!performed!by!a!supplier!in!Ukraine.!The!packaged! application!is!returned!after!about!a!week!in!either!of!two!formats,!MSI!or!ThinApp.! The!choice!of!format!is!made!in!advance!by!ITWS!and!is!based!on!the!application's! need!for!isolation!from!other!applications!and!special!execution!environment.! An!MSI!installation!is!the!classic!way!of!installing!software!on!a!Windows!system.!The! application!becomes!aware!of!environmental!variables,!registry!keys!and!other! installed!applications.!MSI!is!described!more!thoroughly!in!Chapter!3.3.3.!A!ThinApp! installation!behaves!differently.! ! An!application!installed!with!ThinApp!is!unaware!of!environmental!variables,!registry! keys!and!other!installed!applications!in!the!system.!These!are!instead!virtualized!to! suit!the!application’s!needs.!A!ThinApp!installation!works!as!an!impenetrable!bubble! because!of!its!unawareness!of!the!actual!outside!world,!i.e.!the!surrounding!operating! system!environment,!and!vice!versa.!The!application!may!however!require!access!to! certain!features!of!the!operating!system!and!this!requires!some!connections!between! the!parties.![14]!Figure!4B5!below!shows!a!conceptual!picture!of!ThinApp.!

(38)

Figure!4B5:!A!conceptual!picture!of!ThinApp.![14]! When!the!packaged!application!has!arrived!it!is!time!for!the!final!testing.!This!occurs! regardless!of!the!packaging!format!used.!The!testing!process!can!take!several!days! depending!on!how!many!test!subjects!are!involved!in!the!tests!and!the!complexity!of! the!application.!The!subjects!are!in!the!case!of!an!inBhouse!application,!some!of!the! developers.!A!third!party!application!is!tested!by!ITWS.!The!process!is!iterative!if! errors!or!other!faults!are!discovered!that!require!repackaging.!This!prolongs!leadB times!even!further.! ! Once!the!testing!process!is!completed,!it!is!time!for!deploying!the!application.!This!can! be!done!in!two!ways!at!Scania,!either!by!CDA!or!WTS.!

4.5.1 Common Desktop Architecture (CDA)

“Common(Desktop(Architecture((CDA)(is(a(principle(that(says(that(it(is(much(more( efficient(to(manage(all(systems(as(one(entity,(rather(than(a(bunch(of(separate( systems.((The(larger(a(LAN(of(PCs(gets,(the(more(this(becomes(true.”![15]!Scania! implements!this!principle!by!using!a!SCCM!(System!Center!Configuration!Manager)! server!to!distribute!software!installations.!SCCM!is!a!product!from!Microsoft!for! managing!large!groups!of!WindowsBbased!computers.!It!is!used!to!help!corporations,! such!as!Scania,!to!distribute!software.! ! When!a!new!version!of!a!client!application!has!gone!through!the!testing!process!with! no!errors!and!is!ready!for!distribution,!the!employees!at!ITWS!puts!up!the!packaged! installation!file!on!the!SCCM!server.!From!here!it!gets!distributed!to!all!users!of!the! application.!Once!the!application!is!uploaded!to!the!users!desktop,!it!prompts!the!user! to!update!and!install!the!new!software!with!the!predetermined!user!rights,!which!are! stored!on!the!SCCM!server.!These!user!rights!are!decided!by!the!customer!long!before! the!installation!process.!The!very!installation!will!differ!depending!on!what!packaging! format!the!application!is,!as!explained!in!the!beginning!of!this!chapter.!

(39)

4.5.2 Windows Terminal Server (WTS) WTS!(Windows!Terminal!Server)!is!the!second!method!of!distribution!at!Scania.!It!is! very!different!from!CDA.!Instead!of!distributing!the!client!application!to!every!user! desktop,!it!is!installed!on!one!central!server!to!be!accessed!remotely!by!the!users.!This! technology!will!be!explained!more!in!detail!in!Chapter!5.3.! ! By!using!this!method!of!distribution!you!never!have!to!think!of!users!running! outdated!versions!of!the!client,!which!could!cause!problems!with!the!database!it!is! using.!Though!this!is!very!convenient,!other!problems!could!arise!which!wouldn’t! exist!with!CDA.!Since!the!client!application!is!running!on!a!central!server,!which! usually!is!hosting!more!than!one!application,!it!could!be!interference!among!the! applications,!especially!when!a!new!application!needs!to!be!installed.!This!installation! however,!can!be!different!depending!on!the!format!of!the!installation!file!as! mentioned!earlier!in!this!chapter.!! ! If!the!installation!has!been!packaged!as!an!MSI!file!it!will!be!installed!normally!but!this! also!requires!a!server!restart.!This!however,!is!only!allowed!during!“change!weekends”! at!Scania,!which!occurs!the!third!weekend!of!every!month.!For!some!applications!such! as!SCAT,!this!is!not!acceptable!because!its!new!releases!can’t!be!depending!on!certain! dates.!The!solution!to!this!problem!is!to!package!the!application!as!a!ThinApp,!which! would!give!installation!opportunities!whenever!the!customer!wants!it.!! !

(40)

5. Relevant technologies

There!are!four!possible!techniques!that!might!solve!the!problems!stated!in!Chapter! 1.2.!These!were!compiled!as!a!result!of!several!long!discussions!together!with!the! developers!of!SCAT,!Magnus!Hållström!and!Nils!Johansson.!! ! The!first!obvious!technique!would!be!to!rewrite!the!Windows!Forms!application!as!a! web!application.!The!second!and!third!technique!would!be!to!use!ClickOnce!and!WTS,! which!will!be!explained!below.!An!important!thing!to!mention!about!ClickOnce!is!that! Microsoft’s!Visual!Studio!offers!this!technique!to!be!applied!to!the!Windows!Forms! projects!by!only!changing!some!options.!! The!fourth!and!last!technique!that!was!discussed,!called!initiation!program,!is!a! solution!that!many!online!gaming!and!poker!clients!use.!When!the!user!starts!the! game!or!poker!client!that!has!been!installed!on!the!computer,!it!prompts!the!user!with! an!initiation!program.!This!starts!a!connection!to!the!central!servers!of!the!game!or! poker!sites!to!make!sure!that!the!local!application!has!all!the!necessary!updates! needed!to!play.!By!using!this!technique!you!no!longer!need!to!worry!about! connections!between!older!versions!of!the!client!and!newly!updated!databases,!which! is!one!of!the!problems,!SCAT!is!having!today.!!

5.1 Web application

This!subchapter!describes!suitable!web!application!technologies,!the!chosen! architecture!and!a!use!case!that!will!be!used!throughout!the!development!of!the!SCAT! web!application!prototype.! 5.1.1 Web technology There!are!many!technologies!for!creating!web!applications.!Examples!of!these!are!PHP,! JSP,!Ruby!on!Rails!and!ASP.NET!to!name!a!few.!The!IT!environment!at!Scania!is! foremost!.NET!and!the!plan!is!that!frontBend!applications!will!continue!to!be!based! on!.NET.!For!this!reason,!it!is!therefore!natural!to!proceed!with!this!platform.!! A!web!application!was!the!only!proposed!solution!for!this!project!and!likely!the!most! obvious!choice!for!many!companies!today.!It!offers!easy!deployment!and!updating,! and!all!users!will!work!with!the!latest!version!of!the!client!at!all!times.!There!will!no! longer!be!any!risk!of!someone!using!an!outdated!client,!which!may!cause!database! errors.!Accessibility!is!another!concern!solved!with!a!web!application.!See!Chapter! 3.1.2!for!more!details.! ! Web!migration!aims!to!move!the!client!software!from!the!desktop!to!the!web!meaning! it!is!replaced!with!a!web!browser,!found!in!almost!every!computer.!This!allows!for!a! larger!user!base!and!that!the!application!is!made!available!everywhere!in!the!world.! Web!development!within!the!.NET!environment!is!done!using!the!ASP.NET!web! framework.!It!is!a!development!framework!for!building!web!pages!and!web!sites!with! HTML,!CSS,!JavaScript!and!server!scripting.!ASP.NET!supports!three!different!

(41)

development!models!seen!in!Figure!5B1.!These!are!Web!Pages,!MVC!(Model!View! Controller),!and!Web!Forms.!Each!model!creates!and!structures!a!web!application! using!a!slightly!different!approach.![16]! Figure!5B1:!The!ASP.NET!development!models.!Each!model!sits!on!top!of!ASP.NET!and! each!model!is!ASP.NET.! The!three!models!have!different!characteristics.!Web!Forms!is!suited!for!developers! with!a!client!application!development!background.!Other!properties!are:![16]! ! • ControlB!and!eventBbased!programming!model! • ServerBside!encapsulates!some!of!the!complexities!with!HTML,!CSS!and! Javascript! • UI!controls!such!as!DataGrids,!charts!and!AJAX! • Data!from!databases!can!be!retrieved,!displayed!and!manipulated!directly!in!UI! controls! • Web!browser!differences!are!handled!by!the!UI!controls! MVC!is!a!slightly!more!lowBlevel!programming!model.!It!does!not!provide!higherBlevel! abstractions!like!controls!and!requires!more!knowledge!in!HTML!and!HTTP.!It!is! suited!for!developers!with!a!traditional!web!development!background.!Other! properties!are:![16]! ! • Control!over!HTML!markup!and!URLs! • Enables!the!flexibility!of!CSS!and!Javascript! • Supports!unit!testing,!TDD!(testBdriven!development)!and!is!often!used! alongside!Agile!methodologies! • Encourages!more!prescriptive!applications! • Flexible!and!extensible! The!third!and!final!development!model,!Web!Pages,!is!the!simplest!of!the!models!and! is!based!on!individual!pages!similar!to!PHP!and!classic!ASP.!It!provides!an!easy!way!to! combine!HTML,!CSS,!JavaScript!and!server!code.!Other!properties!are:![16]! ! • Easy!to!learn,!understand,!and!use! • Inline!scripting!with!C#!and!VB.NET! • Control!over!HTML!markup! • Reusable!methods!and!libraries!called!helpers! • Simplified!model!with!topBtoBbottom!execution!

References

Related documents

The system we implemented is selective acknowledgment (SACK), where the receiver can recognize which packet is lost as well as which packet is received last. The

Utifrån dessa resultat ser vi att våra Smart Beta-portföljer under de förhållanden som gäller för studien faktiskt uppvisar en riskjusterad avkastning som överstiger

Arguably, in fulfilling these two purposes, this thesis may further our understanding of how multiple and co-existing institutional logics are present in the practices of

The research question is: How can language learning practices occuring in informal learning environments be effectively integrated with formal education through the use of

1) Theory phase aims to develop the necessary pre-understanding of the relevant issues in remanufacturing research (Campbell, 1975; Eisenhardt, 1989). To assist in

Distribution av pellets görs på ett flertal olika sätt. Kunden kan välja att själv köpa vid ett lager, transportera själv och därmed erhålla ett lägre pris. Pellets säljs ofta i

It is important that textbooks present a range of oral tasks that promote rhetorical training since there are many rhetorical-and communicative strategies that students benefit

Ytterligare en fråga som relaterar till examination är om vi med säkerhet vet vilken students prestationer vi bedömer? Inlämning via digitala medier försvårar