Reducing lead-times for updating client-server applications in - DiVA

79
UPTEC IT 13 008 Examensarbete 30 hp Juni 2013 Reducing lead-times for updating client-server applications in .NET Jonathan Andersson Erik Hellberg

Transcript of Reducing lead-times for updating client-server applications in - DiVA

UPTEC IT 13 008

Examensarbete 30 hpJuni 2013

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

Jonathan AnderssonErik Hellberg

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-serverapplications in .NET

Jonathan Andersson and Erik Hellberg

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

A common challenge for Scania today is to reduce lead-times caused by theapplication packaging and distribution process associated with client-serverapplications in .NET. Another problem caused by the client-server architecture is datainconsistency that may occur between an outdated client and its correspondingdatabase.

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 differenttechnologies. The prototypes are implemented, tested and compared to one anotherin terms of advantages and disadvantages, and also in terms of cost-effectiveness andrisks that may affect the business.

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

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

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

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

3!

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.!!

!

4!

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!

5!

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!

6!

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!

7!

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!

!

8!

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.!

9!

!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!clientBserver!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!

10!

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.!!

11!

• 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?!!

12!

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!wellBknown!literature!concerning!research!methods,!e.g.!works!by!Steinar!Kvale.!!!

13!

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.!!

14!

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]!

15!

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.

16!

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!thirdBparty!but!this!was!unsuccessful.!!Therefore!we!abandoned!this!method.!An!interview!with!the!company!can!be!seen!in!Appendix!C.!!!

17!

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.!

18!

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.!

19!

• 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]!

20!

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.!

21!

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]!

22!

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.!!

23!

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!

24!

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!sideBbyBside!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!

25!

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!

!

26!

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.!

27!

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!

28!

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]!

29!

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!

30!

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.

31!

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!

32!

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.!

33!

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.!

34!

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!inBhouse!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.!

35!

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!leadBtimes!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.!

36!

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.!!!

37!

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!

38!

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!

39!

Aside!from!having!different!characteristics,!the!models!all!share!the!functionality!and!libraries!that!comes!with!the!ASP.NET!web!framework.!This!includes!authentication,!authorization,!user!membership,!role!security,!deployment,!AJAX!and!more.![17]!The!reason!for!not!mentioning!additional!web!techniques!within!.NET,!such!as!Silverlight!and!Windows!Presentation!Foundation,!is!that!they!are!more!focused!on!advanced!features,!such!as!3D,!which!are!unnecessary!in!our!case.!!We!have!chosen!Web!Forms!instead!of!MVC!and!Web!Pages!as!development!model.!The!reason!is!that!Web!Forms!enables!faster!development!compared!to!MVC!and!we!think!it!is!easier!to!learn.!It!is!also!more!powerful!than!Web!Pages!since!it!offers!rich!UI!controls.!MVC,!however,!provides!better!application!structure,!supports!parallel!development!and!is!easier!to!test.!These!advantages!can!be!beneficial!in!the!long!term,!but!we!believe!they!may!be!unnecessary!for!our!short!development!period.![17]!

5.1.2 AJAX AJAX!(Asynchronous!Javascript!and!XML)!is!a!group!of!technologies!that!provides!mechanisms!that!allows!for!asynchronous!commands!to!be!sent!between!the!client!web!browser!and!the!web!server!without!the!need!for!a!postback.!This!produces!less!network!traffic!and!generally!higher!performance.!The!communication!is!made!through!web!services.!The!user!experience!with!AJAX!is!improved!compared!to!traditional!ASP.NET!applications!since!processing!occurs!quicker.![18,!p.!53]! Some!other!advantages!that!AJAX!brings!are:![18,!p.!54]!!

• No!reload!of!the!page!when!a!request!is!sent,!hence!no!flash!of!the!page!reloading!

• The!users!stays!at!the!same!location!within!the!page!and!thus!stays!within!the!same!context!

• The!user!interface!is!not!blocked!from!additional!operations!on!the!client! One!disadvantage!is!that!users!expect!that!the!browser!back!button!will!take!them!to!the!previous!page!or!state!of!that!page.!However,!the!back!button!in!an!AJAX!page!will!not!necessarily!take!the!user!to!the!previous!state!of!the!page,!but!to!the!previous!page.!This!might!be!confusing!for!the!users.![18,!p.!55]!!!AJAX!is!well!suited!for!the!SCAT!web!application!because!of!these!advantages,!especially!that!data!can!be!reloaded!in!the!same!page.!This!is!similar!to!today's!SCAT!as!a!Windows!Forms!application.!

5.1.3 Web architecture A!web!application!may!hold!both!the!presentation!and!business!logic!layers,!as!in!the!case!with!the!thick!SCAT!client.!A!better!solution!is!to!let!a!dedicated!web!service!host!the!business!logic!layer!and!also!the!data!layer!making!it!responsible!for!both!the!manipulation!and!access!of!data.!This!means!in!turn!that!the!web!application!is!left!with!the!responsibility!of!handling!presentation.!

40!

The!above!design!methodology!is!synonymous!with!SOA!(Service!Oriented!Architecture)!mentioned!in!Chapter!3.2.6.!It!brings!with!it!loose!coupling!between!web!application!and!database!which!is!not!the!case!with!SCAT!and!SOCSS!today.!!!We!have!chosen!this!design!methodology!because!it!aligns!with!the!future!vision!of!OAS!at!Scania.!OAS!is!to!become!a!SOA!with!services!to!many!parts!of!the!business.!This!is!explained!briefly!in!Chapter!4.4.5.!When!working!with!the!.NET!platform!there!is!a!framework!called!WCF!(Windows!Communication!Foundation)!that!can!be!used!for!building!serviceBoriented!applications.![19]!We!have!chosen!WCF!for!the!implementation!of!the!web!service!since!it!provides!satisfactory!results!and!is!built!into!VS.!Figure!5B2!below!displays!the!proposed!system!architecture.!

Figure!5B2:!Proposed!system!architecture!for!SCAT!web!application!according!to!the!

SOA!design!methodology.!

5.1.4 Use case We!have!chosen!a!specific!use!case!to!implement!since!we!do!not!have!time!to!develop!the!whole!application.!This!will!also!be!used!for!time!estimation!of!the!whole!application!as!it!represents!a!specific!part!of!the!application.!!The!selected!use!case!is!the!one!that!SCAT!is!primarily!used!for.!The!use!case!is!based!on!the!user!selecting!an!ECU!system!from!a!list!of!all!available!systems.!The!user!now!has!to!choose!between!displaying!variant!codes!or!parts!for!the!selected!system.!Both!choices!will!result!in!a!list!of!information!being!displayed.!Figure!5B3!below!demonstrates!the!use!case.!

41!

Figure!5B3:!A!UML!diagram!of!the!use!case.!

There!are!several!reasons!behind!this!approach.!The!most!apparent!is!the!lack!of!time!we!have!at!our!disposal.!We!have!determined!that!this!use!case!has!moderate!complexity!in!relation!to!the!time!we!have!and!to!other!features!of!the!application.!We!believe!that!this!can!facilitate!the!time!estimation!for!the!development!of!the!entire!web!application!in!the!future.!As!mentioned!above,!this!use!case!is!also!the!most!prominent!in!the!application.!

5.2 ClickOnce Windows!Forms!applications!can!be!deployed!using!a!technique!called!ClickOnce.!This!technique!allows!for!a!web!based!deployment!model.!What!this!means!is!that!Windows!Forms!applications!can!be!deployed!in!the!same!easy!manner!as!web!applications.!Visual!Studio!has!builtBin!support!for!ClickOnce!deployment!since!the!2005!version.!Installation!does!not!require!users!to!have!administrative!privileges!and!you!can!install!multiple!copies!of!the!same!application!on!the!same!machine,!i.e.!there!is!no!need!to!remove!older!versions.! This!is!in!contrast!to!today's!SCAT,!which!uses!the!MSI!deployment!model,!described!in!Chapter!3.5.!This!model!requires!administrative!privileges!and!updates!require!users!to!run!another!MSI,!which!then!wipes!out!the!older!version.!MSI!does!not!allow!for!more!than!one!version!of!the!same!application!on!the!same!machine.![4,!p.!139B140]!!When!a!new!version!of!an!application,!e.g.!SCAT,!is!available!for!deployment,!the!developers!may!choose!to!publish!it!with!ClickOnce!to!a!web!site!or!network!share.!The!publishing!process!is!quick!and!is!performed!from!within!Visual!Studio.!The!publishing!location!is!predetermined!and!known!to!the!users.!When!new!users!want!to!acquire!the!application!they!navigate!to!the!predetermined!publishing!location!and!runs!the!installation!process!from!here.!! The!application!is!downloaded,!installed!and!started!on!the!end!user’s!computer.!Items!are!added!to!the!“Start”!menu!and!the!“Add/Remove!Programs”!feature!in!the!Control!Panel.!The!application!behaves!in!a!manner!similar!to!that!of!an!MSI!deployed!

42!

application.!The!“look!and!feel”!is!no!different!than!conventional!Windows!applications.![20]!!ClickOnce!applications!can!be!made!selfBupdating!in!the!sense!that!they!check!for!newer!versions!at!startup.!If!a!newer!version!exists!in!the!publishing!location,!the!currently!installed!version!is!replaced!with!the!newer!one.!This!is!done!completely!automatic!provided!that!the!user’s!computer!have!network!access!to!the!publishing!location!in!question.!!As!mentioned!earlier,!ClickOnce!deployment!allows!for!multiple!installations!of!the!same!application!on!the!same!computer.!This!is!because!ClickOnce!applications!are!selfBcontained,!meaning!that!each!ClickOnce!application!is!installed!to!and!run!from!a!secure!perBuser,!perBapplication!cache.![21]!!

5.3 WTS All!Windows!servers!are!capable!of!working!as!a!terminal!server.!“Windows!Server!2012,!Windows!Server!2008!R2,!Windows!Server!2008,!or!Windows!Server!2003!with!Remote!Desktop!Services!(formerly!known!as!Terminal!Services)!allow!a!server!to!host!multiple,!simultaneous!client!sessions.”!according!to!Microsoft.![22]!This!means!that!the!client!applications!will!be!running!on!a!server!and!can!be!accessed!by!multiple!users!through!a!terminal!window!also!known!as!a!thin!client.! By!using!the!Remote!Desktop!Connection!Tool!that!exist!in!Windows,!the!users!can!connect!and!open!up!a!remote!desktop!window!which!will!work!as!their!graphical!interface!(GUI)!towards!the!server.!This!GUI!will!be!simulating!the!server’s!environment!looking!identical!to!a!normal!Windows!desktop.!All!the!incoming!mouse!movements,!clicks!and!keystrokes!are!sent!with!the!Remote!Desktop!Protocol!(RDP)!and!will!be!processed!and!executed!by!the!server!much!like!if!the!software!were!installed!locally.!This!together!with!the!GUI!makes!the!users’!experience!very!similar!to!that!of!a!regular!local!desktop!application.!!!An!alternative!to!the!Remote!Desktop!Connection!Tool!in!Windows!is!a!solution!called!Citrix!Receiver!from!Citrix.!It!is!an!option!that!allows!remote!access!to!applications!from!many!devices!and!operating!systems.![23]! The!advantages!this!technology!brings!are!many,!one!being!able!to!use!applications!only!provided!by!Windows!when!operating!on!another!operating!system!like!Unix!or!Mac!OS!X.!Another!thing!that!makes!it!very!useful!is!the!ability!for!users!to!access!applications!or!data!from!other!places!than!their!personal!computers,!i.e.!from!home!or!a!colleague’s!computer.!!SCAT!has!been!distributed!via!CDA!for!several!years!but!it!has!been!tested!with!WTS.!However,!the!packaging!only!worked!with!MSI.!The!other!packaging!option,!ThinApp!(mentioned!in!Chapter!4.5),!was!tested!but!packaging!failed!due!to!problems!with!dependencies!between!different!components!of!the!application.!!!

43!

The!MSI!packaging!meant!that!distribution!could!only!be!carried!out!at!“change!weekends”!occurring!every!third!weekend!of!each!month.!This!was!not!acceptable.!ThinApp,!however,!would!enable!almost!immediate!distribution,!once!the!packaging!has!been!carried!out.!!In!order!to!take!advantage!of!WTS,!the!problems!with!ThinApp,!mentioned!earlier,!have!to!be!solved.!This!has!been!attempted!earlier!but!was!abandoned!due!to!bad!costBbenefit.!Solving!these!problems!will!however!make!WTS!deployment!a!potentially!good!solution.!

5.4 Initiation program The!fourth!proposed!solution!is!an!initiation!program.!It!can!be!implemented!in!two!different!ways.!Either!as!an!extension!to!the!existing!SCAT!client!or!as!a!separate!application!that!handles!the!startup!of!SCAT.!!The!first!option!includes!the!newest!version!of!SCAT!being!added!an!initiation!program.!This!version!also!needs!to!be!packaged!and!set!up!on!a!shared!folder!or!server!where!the!users!can!reach!it!and!download!the!client.!So!far,!this!will!work!as!it!does!today,!only!the!users!have!to!download!and!install!the!client!themselves!instead!of!getting!it!through!the!CDA!distribution!process.!!!The!advantages!with!this!solution!come!when!a!new!version!of!SCAT!is!to!be!released.!This!version!can!be!uploaded!to!the!shared!folder!or!server!where!the!originated!SCAT!version!is!being!held.!After!this!has!been!done!and!the!users!start!up!the!SCAT!client!for!the!first!time,!the!initiation!program!will!check!the!network!location!for!new!updates!or!versions.!When!the!client!notices!that!the!SCAT!application!has!been!updated!and!is!not!consistent!with!the!locally!installed!one,!it!will!begin!downloading!and!installing!the!new!version!of!SCAT.!!! The!other!way!that!this!technique!could!be!solved!is!to!make!the!initiation!program!an!independent!program!instead!of!added!into!the!SCAT!application.!By!doing!it!this!way,!the!SCAT!application!can!be!placed!on!the!shared!folder!or!server!without!any!first!time!packaging.!However,!this!will!force!the!initiation!program!itself!to!be!packaged!and!distributed!to!the!SCAT!users!where!it!will!be!installed.!!!This!program!will!be!the!“start!icon”!for!SCAT.!It!will!check!the!version!that!resides!on!the!network!location!and!compare!it!to!the!locally!installed!one.!If!the!versions!are!a!match!it!will!simply!start!up!SCAT.!Otherwise,!it!will!download!and!install!the!newer!version!of!SCAT,!replacing!the!old!one.!!!These!two!options!are!equivalent!except!for!how!they!are!implemented.!They!will!both!achieve!the!same!result!in!the!end.!

5.5 Related work at Scania A!similar!project!has!recently!been!carried!through!at!Scania.!It!involved!an!inBhouse!system!called!Mexlab.!This!was!a!clientBserver!application!that!dealt!with!the!testing!

44!

of!engine!structures.!An!engine!structure!is!a!combination!of!unique!articles.!Test!structures!were!built,!tested!and!the!results!were!collected!and!stored!within!the!application!for!further!analysis.!!!The!application!was!based!on!Visual!Basic!6!with!a!Microsoft!SQL!Server!as!data!layer.!A!number!of!problem!areas!with!the!application!led!to!a!change!project.!The!problems!concerned!the!overall!lack!of!support!for!Visual!Basic!from!Microsoft,!an!inflexible!user!interface!development!and!hard!coupling!between!tiers.!In!addition!to!these!problems,!there!were!also!the!same!problems!as!with!SCAT!regarding!application!packaging!and!distribution.!!!Proposed!solutions!included!a!conversion!from!Visual!Basic!to!a!more!modern!.NET!environment,!the!purchase!of!thirdBparty!solutions!for!general!product!testing,!and!finally!a!migration!to!the!web!together!with!the!introduction!of!SOA,!see!Chapter!3.2.6.!!!The!first!solution!would!not!have!solved!the!problems!with!packaging!and!distribution.!The!second!solution!was!considered!but!no!suitable!software!was!found.!The!candidates!were!considered!not!to!fit!the!business!well!enough!or!provide!the!degree!of!flexibility!that!Scania!strives!in!its!testing.!These!two!alternatives!were!therefore!excluded.!The!third!and!final!alternative!was!deemed!to!be!a!workable!solution,!much!because!it!fits!with!the!future!vision!of!a!SOABbased!IT!infrastructure!at!Scania.!This!is!mentioned!in!Chapter!5.1.3.! The!chosen!web!approach!aimed!to!“break!apart”!the!Visual!Basic!application!and!create!services!that!will!serve!many!business!areas,!not!just!engine!testing.!This!resulted!in!many!software!layers!that!in!turn!boost!flexibility!in!the!sense!that!change!becomes!more!forthcoming.!The!downside,!however,!is!that!each!layer!brings!overhead!that!leads!to!longer!response!times.!!The!new!and!improved!Mexlab!was!built!as!a!web!application!based!on!Java!technology.!The!reason!for!leaving!the!.NET!technology!was!because!of!a!thirdBparty!process!server!being!introduced.!The!process!server,!an!IBM!Business!Process!Manager,!was!based!on!Java!technology.!An!advantage!of!webBbased!applications!is!that!you!get!a!greater!technological!independence.!This!is!evident!in!that!some!of!the!new!services!are!based!on!.NET.!!The!data!layer!was!not!changed!during!the!migration.!It!is!still!a!.NET!environment!consisting!of!a!Microsoft!SQL!Server!incorporating!some!of!the!old!business!logic.!This!logic!together!with!software!bugs!that!was!eminent!before!the!migration!remains!and!must!therefore!be!counteracted.!!!All!in!all,!the!project!took!three!developers!1.5!years!to!complete.!

45!

6. Implementation This!chapter!consists!of!the!proceedings!we!have!carried!out!in!order!to!implement!and!test!the!possible!solution!methods!mentioned!in!Chapter!5.!The!solution!methods!are!in!turn;!an!initiation!program,!a!ClickOnce!solution!and!a!web!application.!!!The!WTS!solution!is!already!known!to!Scania!so!we!will!not!implement!and!test!it.!The!ITWS!department!are!responsible!for!these!matters!and!for!pursuing!the!issue!if!needs!be.!We!will,!however,!in!Chapter!7,!evaluate!WTS!based!on!the!information!we’ve!acquired!through!documentation!and!interviews.!!

6.1 Initiation program The!goal!with!this!idea!is!to!create!a!simple!independent!application!responsible!for!updating!and!starting!SCAT.!Initially,!we!received!the!code!for!the!SCAT!client!and!made!a!local!copy!of!it!to!our!computers!to!make!changes!to.!Microsoft’s!Visual!Studio!2010!(VS)!had!been!deployed!some!weeks!earlier!so!everything!was!prepared!for!development.!The!idea!was!to!create!a!small!standalone!Windows!Forms!application.!Hence,!a!new!Windows!Forms!project!was!created!in!VS.!We!decided!to!utilize!the!C#!programming!language!since!we!have!some!previous!knowledge!and!since!the!SCAT!application!is!based!on!this.! The!general!idea!with!the!application!is!that!it!compares!the!version!number!of!the!local!SCAT!installation!on!the!user’s!hard!drive!with!a!“master!installation”!housed!on!a!local!file!share.!The!local!installation!is!replaced!with!the!master!version!if!the!latter!has!a!higher!version!number.!The!newer!files!are!downloaded!and!overwrite!the!older!ones.!However,!if!the!master!and!local!installations!have!equal!versions,!the!software!is!up!to!date!and!nothing!needs!to!be!done.!The!SCAT!client!will!now!launch.!!Any!errors!during!the!process!are!communicated!to!the!user!via!a!popup!window.!Startup!of!an!outdated!client!is!no!longer!possible!in!order!to!protect!the!database,!which!may!have!been!altered!in!conjunction!with!the!new!client.!The!updates!are,!however,!checked!only!at!startup!so!a!program!that!is!never!turned!off!will!not!notice!new!updates.! Firstly,!the!executable!for!the!master!version!is!located!on!the!local!file!share.!If!this!fails,!it!may!be!due!to!network!error!or!simply!that!the!file!share!doesn’t!contain!the!right!files.!Secondly,!the!local!executable!is!located.!If!this!fails,!it!may!be!due!to!that!it!is!the!user’s!first!time!starting!the!initiation!program!and!therefore!there’s!no!previous!SCAT!installation!available!on!the!user’s!computer.!A!directory!is!then!created!and!the!SCAT!installation!is!copied!into!it.!!!If!a!previous!version!does!exist,!however,!the!executables’!version!numbers!are!compared!with!each!other.!If!the!master!version!proves!to!be!newer,!the!older!local!installation!is!replaced!with!the!newer!master!installation.!Errors!may!occur!during!the!transfer!process!so!the!version!numbers!are!again!checked!for!equality!after!the!process!is!completed.!If!the!version!numbers!are!not!equal,!a!popup!dialog!is!displayed!telling!the!user!that!a!problem!has!occurred.!

46!

The!visual!parts!of!the!initiation!program,!i.e.!the!application!window,!was!only!developed!in!order!to!display!something!substantial!and!to!display!messages,!e.g.!error!messages.!The!final!product!will!not!display!anything!except!for!when!an!error!occurs.!This!error!will!then!be!displayed!in!a!popup!dialog.!If!there!is!no!error!then!the!initiation!program!will!pass!by!unnoticed.!This!is!the!behavior!preferred!by!Scania!IT!because!it!does!not!introduce!any!new!behavior!for!the!users.!!Difficulties!emerged!during!the!work.!Our!initial!idea!was!to!put!the!SCAT!installation!in!a!subfolder!to!“C:\Program!Files”!like!most!installed!programs!on!Windows.!This!proved!complicated!since!the!client!did!not!have!the!necessary!permissions!to!write!in!that!folder.!!!A!suggestion!that!emerged!was!to!package!and!distribute!the!initiation!program!via!CDA!as!the!original!SCAT!client!and!place!the!SCAT!client!installation!in!the!user’s!temp!folder.!This!folder!is!found!at!“C:\Users\username\AppData\Local\Temp”!in!a!Windows!7!environment!and!can!be!found!in!every!version!of!Windows.!Paths!may!differ!between!versions,!but!can!always!be!found!using!environment!variables.! By!packaging!the!initiation!program!with!CDA,!one!also!solves!the!issues!regarding!installation!and!certificates!and!it!also!provides!a!basis!for!accounting.!The!CDA!deployment!procedure!is!familiar!to!the!users!and!does!not!contribute!with!any!new!or!changed!procedures.!The!installation!ensures!that!files!are!placed!in!the!appropriate!places!and!that!the!application!gets!registered!accordingly.!! Another!alternative!to!a!standalone!initiation!program!would!be!to!include!the!same!functionality!in!the!existing!SCAT!application.!The!functionality!is!then!responsible!for!checking!the!file!share!for!a!newer!version!and!update!the!existing!one!if!necessary.!Startup!of!an!outdated!client!would!be!prevented.!However,!updating!an!executing!application!is!troublesome!and!most!likely!impossible!because!the!files!that!are!to!be!updated!are!in!use.!The!operating!system!doesn’t!allow!files!in!use!to!be!altered.!For!this!reason!we!decided!to!exclude!this!alternative.! We!have!taken!the!help!of!Microsoft!Developer!Network!(msdn)!in!order!to!create!this!application.!In!spite!of!previous!knowledge!in!Windows!Forms!and!C#!we!still!had!to!read!up!on!topics!such!as!moving!files!within!the!Windows!file!system,!checking!the!version!number!of!an!executable!and!lastly!how!to!start!another!executable!from!code.!

6.2 ClickOnce This!idea!was!to!take!the!existing!thick!client!SCAT!application!and!make!a!smart!client!of!it.!This!is!done!with!the!deployment!technology!called!ClickOnce!from!Microsoft.!It!allows!you!to!publish!WindowsBbased!applications!to!a!web!server!or!a!network!file!share!for!easy!access!and!installation.!The!smart!client!can!be!made!selfBupdating!and!the!user!does!not!need!administrative!privileges!for!this.!!This!type!of!deployment!does!not!require!any!packaging!and!distribution!via!CDA.!Users!who!want!access!to!the!application,!navigate!to!the!web!page!or!file!share!where!the!application!is!housed!and!perform!a!simple!installation.!The!address!needs!to!be!

47!

published!for!all!potential!users!first!though.!A!user!only!needs!to!install!once.!When!a!new!version!of!the!application!is!made!available,!the!user’s!copy!will!automatically!update!itself!at!next!startup.!The!update!is!mandatory!so!the!user!will!not!be!able!to!run!an!outdated!version!of!the!application.!!We!encountered!a!lot!of!problems!with!the!implementation!of!this!due!to!our!lack!of!knowledge!of!ClickOnce!and!VS.!After!publishing!SCAT!on!our!local!computer!we!could!no!longer!debug!the!application!in!Visual!Studio!due!to!“file!in!use”!errors.!We!could!however!find!the!published!application!locally!but!installing!it!failed!due!to!“inaccessible!missing!files”.!We!figured!out!that!it!takes!a!UNC!(Universal!Naming!Convention)!path!in!order!to!publish!to!a!disk!drive,!i.e.!file!share.!A!UNC!path!is!used!by!Microsoft!Windows!in!order!to!describe!the!location!of!a!network!resource.!Until!then,!we!had!chosen!a!mapped!drive,!which!in!turn!corresponded!to!a!UNC!path!on!the!Scania!network.!Selecting!the!UNC!path!instead,!solved!this!error!but!a!new!error!emerged.!!!This!error!that!was!due!to!lack!of!read/write!privileges!to!the!selected!path,!was!also!seen!while!implementing!the!initiation!program.!We!knew!from!the!earlier!issue!that!there!is!no!quick!solution!to!this!without!making!changes!to!the!security!policies.!The!quickest!solution!was!to!use!the!“temp”!file!share!accessible!to!anyone.!This!is!really!just!for!temporary!use!since!the!file!share!is!cleared!every!night.!! Up!until!now!we!had!only!tried!to!publish!the!initiation!program!developed!before!we!started!with!ClickOnce.!The!advantage!was!that!we!knew!how!the!client!worked!since!we!had!developed!it!ourselves.!!!When!the!problems!were!solved,!we!wanted!to!apply!the!same!strategy!to!the!real!SCAT!application,!i.e.!publish!it.!However,!this!created!further!problems!that!had!nothing!to!do!with!ClickOnce.!The!problem!had!to!do!with!the!SCAT!application!itself.!We!had!problems!building!and!debugging!in!VS!since!we!had!configured!the!VS!project!improperly.!We!had!inadvertently!included!the!“bin”!folder!in!the!solution!and!building!process.!This!is!not!customary.!Having!excluded!“bin”!from!the!solution!made!it!possible!to!publish!the!application.!! We!now!tested!the!new!SCAT!application!to!make!sure!it!worked!satisfactory.!While!performing!these!tests!we!observed!that!updates!functioned!as!specified!by!Microsoft.!However,!the!user!still!had!the!option!to!decline!a!new!update!and!hence!continue!working!with!an!outdated!version!of!SCAT.!This!could!cause!issues!with!the!database!consistency!as!mentioned!earlier.!We!solved!this!by!configuring!a!setting!in!VS!that!forces!the!application!to!be!the!latest!version.!The!updates!are,!however,!checked!only!at!startup!so!a!program!that!is!never!turned!off!will!not!notice!new!updates.! !

6.3 Web application This!option!is!significantly!larger!compared!to!previous!options.!It!involves!a!platform!change!from!desktop!to!web.!The!related!work!with!the!application!Mexlab,!similar!in!complexity!to!SCAT!underwent!the!same!change.!This!took!them!1.5!years.!This!is!mentioned!in!Chapter!5.5.!Based!on!this,!we!have!decided!that!we!only!have!time!to!

48!

implement!a!small!part!of!the!application.!We!have!therefore!selected!a!specific!use!case!to!implement,!see!Chapter!5.1.4.! We!learned!from!some!experienced!web!developers!at!our!department!that!the!preferred!way!of!implementing!web!applications!is!by!using!web!services,!also!known!as!a!SOA.!This!copes!well!with!future!changes!concerning!OAS!mentioned!in!Chapter!4.4.5.!The!developers!also!agreed!with!our!idea!of!using!ASP.NET!Web!Forms!for!implementation!of!the!presentation!layer.!The!first!step!involved!a!meeting!with!the!customer!of!SCAT,!the!department!of!Diagnostic!Architecture!and!Tools!(RESD).!At!the!meeting!we!requested!a!proposal!for!a!GUI,!which!was!later!delivered.!It!was!now!time!to!start!the!implementation.!Projects!were!now!created!in!Visual!Studio.!One!web!site!project!that!would!house!the!presentation!layer!of!the!application,!one!WCF!project!that!would!house!the!web!service!and!three!class!library!projects!to!act!as!the!backend!for!the!web!service.!These!projects!will!together!form!the!web!application.!Figure!6B1!below!depicts!a!representation.!!

Figure!6B1:!The!three!tiers!and!its!layers!making!up!the!web!application.!

Having!set!up!the!Visual!Studio!environment!correctly,!we!started!off!tackling!the!presentation!layer,!i.e.!the!web!site.!It!was!to!be!implemented!in!ASP.NET!Web!Forms,!which!provides!a!plurality!of!UI!controls.!Some!of!these!were!evaluated!based!on!their!ability!to!meet!the!customer’s!design!proposal.!!

49!

This!process!was!a!series!of!“trial!and!errors”!that!resulted!in!a!decision!to!use!the!UI!control!called!GridView.!It!is!a!table!of!values!that!allows!selecting,!sorting!and!editing!of!data!that!has!much!in!common!with!a!ListView!and!DataGrid.!The!ListView!allows!for!more!flexibility!in!controlling!how!the!data!is!displayed.!This!was!deemed!unnecessary!for!the!rather!simple!data!in!SOCSS.!The!DataGrid!is!a!predecessor!to!GridView!and!was!therefore!ruled!out.!!Up!to!this!point,!the!design!proposal!had!been!followed.!As!we!shifted!our!focus!to!the!"look!and!feel"!of!the!web!site!we!started!to!deviate!more!and!more!from!the!proposal.!Much!due!to!the!fact!that!we!wanted!to!mimic!other!web!applications!at!Scania!that!follows!a!standard!web!template.! Having!completed!the!web!site,!i.e.!presentation!layer,!we!moved!on!to!the!web!service.!It!consists!of!a!WCF!interface!and!backend!layers!handling!business!logic,!data!access!and!encapsulation.!For!our!use!case!we!needed!to!access!information!about!all!ECU!systems,!which!would!be!used!to!populate!the!GridView,!mentioned!earlier.!To!achieve!this,!we!studied!the!source!code!for!the!old!SCAT!application.!We!needed!to!figure!out!how!to!communicate!with!SOCSS,!what!information!to!extract!and!what!calculations!or!logic!was!performed!on!the!data.!!We!had!knowledge!and!experience!in!C#!since!earlier,!but!lacked!the!equivalent!in!web!development.!For!this!reason!we!have!relied!heavily!upon!the!Microsoft!Developer!Network!(MSDN)!in!order!to!create!this!web!application.!In!addition,!we!also!received!help!from!developers!at!our!department,!see!Preface.! !

50!

7. Results This!chapter!contain!the!results!from!testing!the!solutions;!initiation!program,!ClickOnce!and!web!application.!WTS!is!also!brought!up,!even!though!we!have!not!explicitly!tested!this!technology.!It!is,!however,!a!wellBknown!technology!from!Microsoft,!used!frequently!at!Scania!today.!!These!results!consist!of!the!advantages!and!disadvantages!of!each!technology,!both!in!a!general!and!a!Scania!context.!Conclusions!based!on!the!results!is!addressed!in!Chapter!8.!!!

7.1 Initiation program Time&estimation&We!have!spent!approximately!52!hours!on!implementing!this.!The!work!has!involved!designing,!programming!and!testing!the!solution.!This!also!includes!time!that!has!been!spent!on!evaluating!packaging!options!and!where!to!place!the!installation!on!the!local!computer!but!excludes!time!spent!on!documentation.! Advantages&Scania!context:!

• A!complete!solution!that!is!tailored!to!the!business.!• Is!distributed!via!CDA!only!once.!• Solves!the!problems!concerning!leadBtimes!and!database!inconsistency!caused!

by!outdated!clients.!• Cheap!because!it!has!already!been!developed.!• Can!be!deployed!shortly.!• Proprietary!solution!meaning!it!can!be!tailored!for!the!business.!No!thirdBparty!

product!that!most!likely!will!result!in!a!compromise.!• Can!be!made!invisible!so!that!it!does!not!cause!a!distraction.!

!General!context:!

• A!good!way!to!inform!about!new!patches,!features!and!other!updates.!• Bulletin!board!with!news.!• A!good!way!to!distribute!updates.!The!users!are!made!aware!of!updates,!which!

are!mandatory!in!order!to!continue!use!the!application.!This!way,!all!users!will!run!the!latest!version.!

• You!need!not!worry!about!outdated!clients.!• Works!together!with!many!technologies,!not!only!.NET!and!Windows!

environments.!• Easy!to!apply!on!many!applications.!It!is!not!developed!for!only!one!specific!

application.!E.g.!the!application!Steam!manages!several!game!applications.!&&&&&

51!

Disadvantages&Scania!context:!

• Must!be!packaged!once!which!will!then!produce!leadBtime.!If!the!infrastructure!changes,!such!as!networks!paths,!the!application!must!be!repackaged.!

• Solves!the!problems!stated!but!does!not!take!the!future,!i.e.!OAS,!into!account.!There!is!still!an!old!clientBserver!application!with!a!tightly!coupled!architecture.!

• Is!only!run!at!startup!of!the!application.!A!running!application!will!therefore!not!become!aware!of!a!new!update.!

!General!context:!

• When!a!new!update!is!available,!the!user!is!forced!to!wait!for!the!update!to!be!installed.!This!halts!the!work.!

• When!a!new!update!is!to!be!installed,!all!users!currently!using!the!application!must!be!evicted.!This!is!to!ensure!that!everyone!has!the!latest!version.!Work!is!halted!and!unsaved!data!may!be!lost.!

7.2 ClickOnce Time&estimation&We!have!spent!approximately!18!hours!on!implementing!this.!The!work!has!involved!researching!the!technology,!applying!it!in!on!present!SCAT!in!Visual!Studio!and!testing!the!result.!This!excludes!time!spent!on!documentation.! Advantages&Scania!context:!

• Really!cheap!and!simple,!just!a!couple!of!clicks!in!Visual!Studio!and!documentation!on!Microsoft’s!website.!

• Can!be!deployed!shortly.!• Solves!the!problems!concerning!leadBtimes!and!database!inconsistency!caused!

by!outdated!clients.!• Almost!invisible,!only!a!small!status!windows!when!checking!for!newer!version.!

!General!context:!

• A!good!way!for!distributing!updates,!the!users!are!made!aware!and!installation!is!mandatory!in!order!to!continue!using!the!application.!In!doing!this,!all!users!are!running!the!latest!version.!

• You!need!not!worry!about!outdated!clients.!• Cheap!and!simple!solution!for!.NET!applications.!

&Disadvantages&Scania!context:!

• The!users!must!be!made!aware!of!the!network!path!to!the!installation.!• ThirdBparty!product,!less!configurable.!• The!application!needs!to!be!reinstalled!when!the!network!path!is!changed.!• Is!only!run!at!startup!of!the!application.!A!running!application!will!therefore!

not!become!aware!of!a!new!update.!

52!

• Solves!the!problems!stated!but!does!not!take!the!future,!i.e.!OAS,!into!account.!There!is!still!an!old!clientBserver!application!with!a!tightly!coupled!architecture!

• It!is!hard!to!keep!record!of!the!users!that!are!using!the!application.!!General!context:!

• Only!a!solution!for!.NET!applications.!• When!an!update!is!available,!the!user!must!stop!the!work!he!or!she!is!doing!

until!it!is!fully!updated.!

7.3 Web application The!implementation!is!functional!but!not!completed.!The!second!leg!of!our!use!case!(variant!codes),!see!Chapter!5.1.4,!is!not!yet!operational.!However,!it!is!exactly!the!same!thing!but!with!other!information!to!be!displayed.!The!information!that!is!displayed!in!the!functional!leg!(parts)!is!only!a!subset!of!what!is!meant!to!be!displayed.!The!aim!is!to!demonstrate!the!ability!to!display!information!in!a!web!interface!rather!than!displaying!the!correct!data.!The!design!is!rather!crude!but!still!functional.!Continued!development!is!easy!for!those!who!are!familiar!with!web!development!and!the!SOCSS!database.! Time&estimation&We!have!spent!approximately!58!hours!on!the!website,!i.e.!the!presentation!layer!and!38!hours!on!the!SOA,!i.e.!data!and!business!layers.!The!work!has!involved!designing,!programming!and!testing!the!solution.!This!excludes!time!spent!on!documentation.!!!The!estimation!affects!only!one!use!case!and!includes!a!startup!period.!This!use!case!is!however!not!entirely!completed,!as!mentioned!above.!An!accurate!estimation!therefore!requires!more!time.!However,!we!have!unwanted!startup!time!included!in!our!measurement!that!corresponds!to!this.!The!conclusion!is!that!our!measured!time!only!corresponds!to!our!use!case.!To!accumulate!the!startup!time!for!each!use!case!results!in!an!inaccurate!estimate.!We!will!instead!add!a!startup!time!in!the!end.!!!!SCAT!consists!of!approximately!seven!equally!complex!use!cases,!ours!included.!An!eighth!use!case,!a!search!function,!is!also!planned!to!be!introduced!in!the!next!version!of!SCAT.!The!total!estimated!time!for!the!development!of!the!web!application!will!therefore!be!approximately!8!times!the!time!for!our!implemented!use!case,!around!19!weeks.!This!is!effective!time!for!mainly!development.!Test!and!planning!phases!have!not!been!performed!in!our!work.!!!Our!work!has!utilized!the!concept!of!pair!programming![24],!which!is!why!this!time!estimate!may!not!be!suitable!for!other!methods!such!as!agile!methods.!!&&&&&&

53!

Advantages&Scania!context:!

• Will!give!a!whole!new!and!improved!flow!and!interface.!• Adaptable!for!future!OAS!and!services.!• Gives!good!access!to!the!application!and!can!be!reached!by!more!users!and!

computers.!• Solves!all!problems!stated!in!this!thesis.!

!!General!context:!

• Easy!to!do!changes!and!add!new!features.!• More!suited!for!today's!use!of!software.!• Can!be!used!on!many!different!devices,!giving!more!accessibility!and!

portability.!• Operating!system!and!platform!independent,!all!that!is!required!is!a!web!

browser.!• Quick!and!simple!updates!(only!need!to!upload!the!new!files!to!the!server!

hosting!the!application).!• No!installation!needed.!

Disadvantages&Scania!context:!

• Expensive.!• Cannot!be!launched!in!the!near!future.!• Hard!to!reuse!code!from!the!existing!application.!• The!performance!may!get!worse!because!of!the!multiBlayer!architecture!(SOA)!

that!has!been!chosen.!Each!layer!produces!a!few!extra!milliseconds!in!response!time.!

• Login!may!be!more!tedious!since!Windows!Authentication!might!not!be!used!as!with!SCAT!today.!

• A!new!GUI!and!flow!might!confuse!the!users.!!General!context:!

• Can!cause!bad!response!times!because!it!is!dependent!on!the!Internet!connection.!

• The!graphical!user!interface!(GUI)!can!be!primitive.!• Often!demands!a!long!development!process.!• Different!requirements!for!different!web!browsers.!• Security!risks.!• Bad!accessibility!to!local!resources!and!applications.!

7.4 WTS Time&estimation&We!have!not!implemented!this!solution.!It!has!been!researched!in!the!context!of!Scania.!The!work!consists!of!solving!the!problems!associated!with!the!packaging!of!SCAT!as!ThinApp!mentioned!in!Chapter!5.3.!Making!a!time!estimate!on!this!is!very!difficult!when!the!work!is!to!solve!the!problems!that!arise!with!the!packaging.!

54!

Advantages&Scania!context:!

• Solves!the!problem!with!database!inconsistency!caused!by!outdated!client.!!!General!context:!

• Users!do!not!have!to!install!the!application.!• All!it!takes!is!a!remote!desktop!client!that!produces!a!remote!desktop.!• CostBeffective!application!management.!!

Disadvantages&Scania!context:!

• Does!not!solve!the!main!problem!stated!in!this!thesis!concerning!leadBtimes.!Nor!does!it!take!the!future!OAS!into!account!(the!old!clientBserver!architecture!with!its!tight!couplings!will!remain).!

• The!packaging!problem!must!be!solved!before!this!solution!may!be!deployed.!• Will!still!demand!packaging.!

!General!context:!

• Generally!bad!response!times!in!the!remote!desktop!environment.!• Tedious!with!another!environment!separated!from!the!user’s!local!

environment.!

55!

7.5 Comparison The!following!table!is!a!comparison!of!key!features!among!the!four!solutions.!These!will!be!the!basis!of!our!conclusions!in!the!next!Chapter.!!

! WTS! Initiation&program! ClickOnce! Web&Application!

Cost& Moderate! Cheap! Very!Cheap!(free)! Expensive!

Solves&the&stated&problems&

No! Yes! Yes! Yes!and!also!future!problems!

Adaptable&No!(third!party!solution)!

Yes!(inBhouse)!

No!(third!party!solution)! Yes!(inBhouse)!

Development&time&

Moderate! Short! Immediate! Long!

Recognized&at&Scania&

Yes! No,!new!technology!

No,!new!technology! Yes!

Changes&to&users&

No! No! Yes! Yes!(new!user!flow!and!GUI)!

56!

8. Conclusions This!chapter!contains!our!conclusions!based!on!the!results!in!the!previous!chapter.!We!choose!to!completely!ignore!WTS!as!a!potential!solution!because!this!technology!does!not!solve!the!main!problem!stated!in!this!thesis.!It!does!not!improve!leadBtimes!regarding!software!packaging.!!!The!best!solution!to!the!problem!cannot!be!determined!because!the!solutions!are!not!easy!to!compare,!they!have!different!advantages!and!disadvantages.!We!have!therefore!compiled!three!scenarios!that!take!into!account!various!factors,!such!as!cost!and!adaptability.!These!factors!are!important!when!choosing!a!solution!to!implement!in!the!future.!Each!scenario!has!been!assigned!one!of!the!proposed!solutions,!WTS!excluded.!

8.1 Scenarios The!scenarios!are!the!following:! Scenario&1&If!Scania!is!opting!for!the!cheapest!solution!then!ClickOnce,!described!in!Chapter!5.2,!is!the!best!alternative.!We!believe!that!this!solution!is!basically!risk!free!since!it!is!a!simple!feature!in!Visual!Studio!that!has!been!tested!successfully!on!a!clientBserver!application,!namely!SCAT.! Scenario&2&If!Scania!is!opting!for!both!a!cheap!and!adaptable!solution!then!the!initiation!program,!described!in!Chapter!5.4,!is!the!best!alternative.!It!has!been!developed!within!this!thesis!but!a!proper!testing!process!remains!to!avoid!the!risk!of!faulty!behavior.!It!is!a!more!adaptable!technology!that!can!be!tailored!to!fit!the!business!and!it!can!be!used!for!other!platforms!than!just!Windows.! Scenario&3&If!Scania!is!opting!for!an!improved!user!flow!and!future!adaptability,!a!web!application!is!the!best!alternative.!It!is!described!in!Chapter!5.1.!This!solution!is!the!best!in!the!long!run!since!it!is!adaptable!to!changes!and!is!prepared!to!work!with!the!upcoming!system!OAS,!mentioned!in!Chapter!4.4.4.!The!risk!with!this!solution!is!that!the!development!time!is!difficult!to!estimate.!

8.2 Future work From!our!point!of!view,!the!best!approach!for!Scania!is!to!first!introduce!the!initiation!program!as!a!temporary!solution!since!it!solves!all!current!problems,!is!cheap!and!quick!to!implement.!The!reason!for!choosing!this!in!front!of!ClickOnce!is!that!it!provides!a!means!for!keeping!record!of!the!users.!ClickOnce!does!not!have!this!property!by!default.!!!The!initiation!program!does,!however,!not!alter!the!current!clientBserver!application.!A!web!application!is!the!best!solution!in!the!long!run!since!its!data!layer!can!be!

57!

redirected!to!use!the!upcoming!OAS!instead!of!SOCSS.!This!is!troublesome!with!the!current!clientBserver!application.!!

58!

9. Discussion This!final!chapter!will!include!a!discussion!of!the!work!procedures,!a!sort!of!project!post!mortem,!describing!what!has!been!successful!and!what!has!been!less!successful.!It!will!also!consider!what!we!would!do!differently!if!we!started!the!project!today.! What&has&been&successful?&&

• Being!two!people!that!have!worked!a!lot!together!in!the!past!has!been!useful!since!we!knew!each!other’s!strengths!and!weaknesses.!!

• Once!we!had!the!same!vision,!the!work!proceeded!very!smoothly!and!responsibilities!were!easy!to!divide!between!us.!!

• Interviews!were!a!good!method!for!finding!information!about!the!problem.!Most!employees!were!very!courteous!and!gladly!shared!information.!!

What&has&been&less&successful?&&

• Unclear!vision!made!the!work!hard!in!the!beginning.!We!were!not!sure!of!where!to!begin.!Knowing!this!is!a!difficult!and!important!part!of!a!research!project.![25,!p.!20]!!!

• The!report!structure!was!unclear!during!the!work.!!

• We!initially!had!different!visions,!which!caused!long!discussions!and!irritations.!!

• We!were!not!that!versed!in!web!development,!which!was!troublesome!when!implementing!the!web!solution.!!

What&could&have&been&done&differently?&

• The!report!structure!should!have!been!set!first!of!all.!The!work!would!then!have!had!a!plan!to!follow.!!

• More!time!should!have!been!spent!on!planning!in!general.!!

• Ambiguities!between!us!relating!to!the!vision!could!have!been!avoided!if!more!time!had!been!spent!on!reaching!a!consensus.!!

• We!should!have!started!working!on!the!web!application!at!an!earlier!stage!since!it!required!much!more!time!compared!to!the!other!prototypes.!

! !

59!

Bibliography [1]!Catherine!Dawson,!Practical(Research(Methods.:!How!to!Books,!2002,!vol.!1.!

![2]!Jim!Riley.!(2013,!May)!Benchmarking.![Online].!

http://www.tutor2u.net/business/strategy/benchmarking.htm!!

[3]!Microsoft.!(2013,!Mar).NET!Framework.![Online].!http://msdn.microsoft.com/enBus/vstudio/aa496123.aspx!!

[4]!Sayed!Y.!Hashimi,!Deploying.NET(Applications:(Learning(MSBuild(and(ClickOnce,!1st!ed.:!Apress,!2006.!!

[5]!Paul!D.!Sheriff.!(2013,!Apr)!Designing!for!Web!or!Desktop?![Online].!http://msdn.microsoft.com/enBus/library/ms973831.aspx!!

[6]!Joe!Misner!Jonathon!Walsh.!(2013,!Mar)!Smart!Clients!B!A!Practitioner's!Point!of!View.![Online].!http://www.developer.com/ws/other/article.php/3306741/SmartBClientsBmdashBABPractitionersBPointBofBView.htm!!

[7]!msdn.!(2013,!Apr)!Service!Oriented!Architecture!(SOA).![Online].!http://msdn.microsoft.com/enBus/library/bb833022.aspx!!

[8]!Borja!Sotomayor.!(2013,!Apr)!1.2.!A!short!introduction!to!Web!Services.![Online].!http://gdp.globus.org/gt4Btutorial/multiplehtml/ch01s02.html!!

[9]!SOA!Institute.!(2013,!Apr)!The!Four!Tenets!of!Service!Orientation.![Online].!http://www.soainstitute.org/resources/articles/fourBtenetsBserviceBorientation!!

[10]!Microsoft.!(2013,!Jun)!What!is!a!DLL?![Online].!http://support.microsoft.com/kb/815065!!

[11]!Scania.!(2013,!May)!Scania!Inline.![Online].!http://inline.scania.com!!

[12]!Scania!Group.!(2013,!Apr)!Scania!in!brief.![Online].!http://www.scania.com/scaniaBgroup/scaniaBinBbrief/!!

[13]!Rosam.!(2013,!Mar)!Aros!Transaction!Server.![Online].!http://www.rosam.se/products/pc/ats.htm!!

[14]!Bright!Streams.!(2013,!Apr)!VMware!ThinApp;!ThinAppBBasics.![Online].!http://brightBstreams.com/?p=137!!

60!

[15]!LLC!Queme!Consulting.!(2013,!Jun)!Common!Desktop!Architecture!(CDA).![Online].!http://quemeconsultingllc.com/Q%20Consulting%20B%20%20Common%20Desktop%20Architecture.htm!!

[16]!w3schools.com.!(2013,!Apr)!ASP.NET!Tutorial.![Online].!http://www.w3schools.com/aspnet/!!

[17]!Scott!Hanselman.!(2013,!Apr)!Choosing!the!Right!Programming!Model.![Online].!http://www.asp.net/webBforms/videos/howBdoBi/choosingBtheBrightBprogrammingBmodel!!

[18]!Paul!Glavich,!Steve!C.!Orr,!Craig!Shoemaker,!Steven!A.!Smith,!Jim!Zimmerman!Wallace!B.!McClure,!Beginning(ASP.NET(2.0(AJAX,!1st!ed.:!Wrox,!2007,!vol.!1.!!

[19]!Juval!Lowy,!Programming(WCF(Services,!1st!ed.:!O'Reilly!Media,!2007,!vol.!1.!!

[20]!msdn.!(2013,!Mar)!Choosing!a!ClickOnce!Deployment!Strategy.![Online].!http://msdn.microsoft.com/enBUS/library/71baz9ah(v=vs.80).aspx!!

[21]!msdn.!(2013,!Mar)!ClickOnce!Deployment!Overview.![Online].!http://msdn.microsoft.com/enBus/library/142dbbz4(v=vs.80).aspx!!

[22]!msdn.!(2013,!Mar)!Remote!Desktop!Services.![Online].!http://msdn.microsoft.com/enBus/library/windows/desktop/bb892075(v=vs.85).aspx!!

[23]!Citrix.!(2013,!Mar)!Citrix!Receiver.![Online].!http://www.citrix.com/products/receiver/overview.html!!

[24]!Robert!Kessler!Laurie!Williams,!Pair(Programming(Illuminated,!1st!ed.:!AddisonBWesley!Professional,!2002.!!

[25]!Adrian!Thornhill,!Philip!Lewi!Mark!N.K.!Saunders,!Research(Methods(for(Business(Students,!5th!ed.:!Prentice!Hall,!2009.!

! !

61!

Appendices

Appendix A Web designs The!customer!of!SCAT,!the!RESD!(Diagnostic!Architecture!and!Tools)!department,!provided!us!with!the!following!proposal!of!a!design!for!the!web!application.!

Figure!AB1:!A!mockup!of!SCAT!as!a!web!application.!A!new!tabBbased!flow!is!

introduced,!along!with!a!search!function!and!“workviews”.!

62!

The!result!from!our!implementation!of!the!one!use!case!can!be!seen!below.!

!Figure!AB2:!Screen!shot!from!our!web!application!prototype.!It!follows!the!blue!

standard!color!used!for!many!Scania!applications.!

63!

Appendix B Internal Interviews

Packaging Process Coordinator at ITWS (Software Asset Management) Interview!performed!in!person!January!25th!2013.!!

1. What&is&your&role&at&Scania?&My!name!is!Eva!Hermansson!and!I!am!packaging!process!coordinator!for!CDA/WTS!and!SALT!administrator.!!

2. Can&you&explain&the&software&packaging&process&in&general?&My!department!receives!an!order!of!an!application!to!be!distributed!via!either!CDA!or!WTS.!We!make!sure!that!all!parameters!and!configurations!are!set!and!then!determine!if!the!application!is!to!be!packaged!using!MSI!or!ThinApp.!The!software!is!then!sent!to!an!external!contractor!for!the!actual!packaging.!After!receiving!the!result,!we!test!the!software!to!make!sure!that!it!works!as!specified!by!the!customer.!The!final!tests!are!performed!by!a!select!group!of!end!users.!If,!however,!any!errors!or!faults!are!found!during!testing,!the!software!is!sent!back!for!repackaging.!!

3. It&is&explained&to&be&very&lengthy&process&that&produces&long&leadYtimes.&Is&this&your&opinion?&Do&you&know&the&reason&for&this&in&that&case?!Since!we!replaced!our!old!packaging!contractor,!we!have!improved!our!lead!times!significantly.!Our!earlier!leadBtimes!generally!exceeded!several!weeks.!Now!we!have!a!time!frame!of!10!working!days.!SCAT!receives!special!attention!though!and!only!has!a!time!frame!of!three!days.!Last!time!we!completed!it!in!one!day.!It’s!company!policy!that!all!software!within!Scania!goes!through!a!rigorous!testing,!packaging!and!distribution!process.!This!has!proven!to!be!the!most!effective!way!of!providing!computer!software!within!a!large!company.!!

4. What&do&you&know&about&the&attempt&to&introduce&SCAT&into&the&WTS&environment?&Why&didn’t&it&work&out?&The!goal!was!to!introduce!SCAT!into!the!WTS!environment.!SCAT!had!so!far!been!packaged!as!MSI!and!been!distributed!via!CDA.!To!introduce!the!MSI!package!in!the!WTS!environment!instead!could!only!be!done!at!“change!weekends”,!which!occurred!approximately!the!third!week!of!every!month.!This!was!not!an!acceptable!delay!since!SCAT!is!a!prioritized!application.!The!only!alternative!was!to!package!the!application!using!ThinApp!instead,!making!distribution!possible!at!any!time!as!with!CDA.!During!this!attempt,!several!errors!were!found,!and!this!wasn’t!solved!due!to!the!lack!of!time!and!interest.!!!!

5. Can&WTS&be&a&good&environment&for&SCAT&in&the&future?&Can&the&long&leadYtimes&and&problems&associated&with&an&outdated&client&be&circumvented&somehow?!WTS!can!be!a!good!environment!if!one!took!the!time!to!properly!investigate!and!solve!the!packaging!problems!associated!with!SCAT!and!ThinApp.!Next!step!would!be!to!assign!time!for!testing!to!identify!the!errors.!If!this!is!succeeded!one!would!get!rid!of!the!problems!associated!with!outdated!clients!

64!

but!the!leadBtimes!would!still!be!the!same!as!with!CDA.!The!outdated!client!problem!can!easily!be!solved!by!sending!an!eBmail!to!the!SCAT!users.!These!are!easily!listed!from!a!SALT!report.!!

6. Is&there&any&way&of&circumventing&the&packaging&process&of&SCAT?&No,!CDA!and!WTS!require!the!packaging!process,!which!cannot!be!circumvented.!A!web!application!may!be!a!solution,!but!I’m!not!versed!in!this!subject.!I!refer!to!ITMW!B!Web!Platforms.!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

65!

Provider Maintenance Manager at IMTA (Aros Rosam Development) Interview!performed!in!person!January!29th!2013.!!!

1. What&is&your&role&at&Scania?&My!name!is!Stefan!Weidensjö!and!I!am!a!Provider!Maintenance!Manager!(PMM)!for!the!applications!Spectra,!Expart,!AI!and!ECO!within!AROS.!I!am!responsible!for!managing!and!staffing!these!applications.!!!

2. What&is&AROS?&We’ve&heard&that&it’s&a&highYperformance&transaction&server,&is&that&right?&AROS!is!a!legacy!highBperformance!transaction!server!running!on!IBM!mainframes.!It!consists!of!several!applications!that!involves!different!business!areas!within!Scania.!Each!application!hosts!its!associated!data!in!Rosam!databases.!For!example,!the!AI!application!contains!and!manages!articles!whereas!the!ECO!application!concerns!Electronic!Change!Orders.!A!development!project!to!replace!AROS!is!in!progress!and!has!been!for!a!few!years.!It’s!planned!to!be!completely!phased!out!by!2015.!A!new!system!called!OAS,!based!on!databases!from!Oracle!and!the!Java!programming!language,!is!expected!to!take!its!place.!!

3. How&does&the&SOCSS&application&communicate&with&AROS?&It!uses!the!SIAM!IP!integration!platform!service!that!is!developed!by!Scania!IT!and!based!on!the!IBM!MQSeries!message!passing!technology.!It!allows!applications!with!different!interfaces,!the!ability!to!communicate!effectively.!!

4. Are&there&any&interfaces&other&than&SIAM&IP&that&is&accessing/extracting&information&from&AROS?&Some!applications!use!a!messageBoriented!middleware!called!VCOM,!which!enables!communication!with!the!applications!within!AROS.!FTP!(File!Transfer!Protocol)!is!also!used!by!some!applications.!!

5. Do&you&know&what&data&SOCSS&extracts&from&AROS?&I’m!not!that!versed!in!SOCSS!but!I!know!that!it!reads!and!writes!information!from!the!AI!and!ECO!applications!in!AROS.!

! !

66!

Head Solution Architect at ITMW (Web Platforms) Interview!performed!in!person!January!31st!2013.!

1. What&is&your&role&here&at&Scania?!My!name!is!Peter!Watz!and!I!am!working!with!web!technology!and!web!servers.!I!am!moving!progressively!towards!the!architect!role.!I!have!a!background!as!a!technician!and!have!been!working!here!since!1995.!I’m!also!senior!mentor!to!newer!coBworkers.!!

2. Can&you&explain&what&your&department&is&responsible&for?&My!department!is!responsible!for!managing!and!administrating!all!web!servers!at!Scania.!We!have!Microsoft!and!Linux!platforms.!I!work!with!the!Microsoft!platform!where!we!preferably!use!IIS!(Internet!Information!Server),!Microsoft’s!web!engine!that!runs!.NET!applications.!We!also!have!Tomcat!and!JBoss!for!Java!applications.!!

3. Can&you&explain&in&detail&the&process&of&deploying&a&new&or&updated&web&application/web&page?&Our!customers,!i.e.!departments!at!Scania,!submit!requests/orders!including!configuration!properties!such!as!operating!system,!32!or!64Bbit!environment,!software!environment!etc.!We!offer!our!customers!two!different!sets!of!server!environments;!webBhotels!and!dedicated!servers.!If!a!client!chooses!a!dedicated!server,!it!comes!with!administrator!permissions,!allowing!for!more!independent!management.!Though,!the!server!environment!is!only!managed!by!us.!The!webBhotel!hosts!several!applications!but!uses!load!distribution!among!two!mirrored!servers!for!improved!performance!and!redundancy.!Before!deployment,!we!test!the!application!with!software!from!HP!called!WebInspect.!It!performs!security!testing!and!assessment.!!!

4. How&long&are&your&leadYtimes&for&deployment?&The!process!from!order!to!deployment!is!usually!completed!within!2!weeks!if!the!request!is!approved.!The!actual!deployment!leadBtime!is!only!a!couple!of!minutes,!and!is!roughly!a!matter!of!inserting!or!replacing!files.!If!the!customer!requests!a!patch!to!be!installed!we!do!this!as!soon!as!possible,!provided!a!valid!problem!is!reported.!!

5. How&much&does&it&cost&to&have&a&web&application&hosted&by&you?&Do&you&know&where&you&stand&in&comparison&to&WTS&or&CDA?&I!have!very!little!insight!in!cost!issues.!But!I!would!estimate!that!a!small,!dedicated!server,!including!management!and!backup,!costs!around!3000B4000!SEK!per!month.!A!spot!in!our!webBhotel!for!a!small!application!costs!around!200B300!SEK!per!month.!But!I’m!not!really!sure!about!this.!We!always!make!an!offer!after!first!having!identified!the!customers’!needs.!Talk!to!Patrik!Askermark!who!is!handling!these!orders.!!

6. How&do&you&think&we’d&go&about&creating&a&web&application&of&SCAT?&Are&there&any&preferred&techniques&used&at&Scania?&

67!

SCAT!is!based!on!.NET!so!it’s!should!be!a!relatively!easy!process!to!migrate!it!to!the!web.!This!is!assuming!all!logic,!i.e.!the!controller!in!a!MVC!analogy,!is!independent!from!the!GUI!parts,!i.e.!the!view.!If!this!is!the!case,!then!one!would!keep!the!logic!parts!and!develop!a!new!web!GUI!in!possibly!C#!or!some!other!language!appropriate!for!.NET!and!IIS.!A!user!study!is!appropriate!to!determine!if!a!web!application!is!the!right!way!to!go!and!to!determine!user!requirements!and!improvement!requests!etc.!You!also!have!to!consider!making!it!compatible!with!as!many!.NET!versions!as!possible!and!strive!for!a!64Bbit!environment.!Anne!and!Jan!at!your!department!can!help!you!with!these!technical!questions.!Security!is!an!important!issue!as!well.!I!can!help!you!test!the!application!once!it’s!in!that!stage.!Make!sure!to!use!the!existing!LDAP!services.!Don’t!reinvent!the!wheel.!When!you!are!to!present!this!at!your!school,!it’s!possible!to!install!a!local!AD!service!on!your!computers!in!order!to!demonstrate!the!features!of!the!new!SCAT!web!application.!!!

7. Is&it&possible&to&deploy&a&web&application&for&a&Scania&customer&without&involving&you?&If&this&is&the&case,&what&do&you&think&of&it?&Benefits/drawbacks?!You!will!always!need!a!platform!to!run!on!and!this!has!to!certified!and!approved!according!to!our!rules.!We!have!to!put!in!the!AD,!and!if!you!want!backup!and/or!some!kind!of!supervision,!we’re!the!ones!to!set!that!up!too.!The!most!independent!thing!one!can!do!at!this!moment!is!to!manage!the!code!on!a!dedicated!server.!In!the!near!future,!this!will!also!be!possible!on!an!application!running!on!the!webBhotel.!

! !

68!

Packaging Process Coordinator at ITWS (Software Asset Management) Interview!performed!in!person!February!12th!2013.!

1. What&is&your&role/job&here&at&Scania&(what&does&it&include)?&My!name!is!Magnus!Arnesson!and!I’m!a!consult!from!a!company!called!Enfo!Zipper.!The!packaging!process!at!Scania!is!offshored!to!our!packaging!center!in!Ukraine.!They!perform!packaging!for!all!of!Enfo’s!clients!except!for!some!clients!that!want!packaging!consultants!on!site.!My!role!is!essentially!an!additional!service.!I’m!stationed!here!at!the!ITWS!department!and!work!as!an!applications!coordinator.!I!receive!and!go!through!software!orders!and!pass!them!on!for!packaging!if!there!are!no!problems!with!the!request.&!!

2. How&long&does&it&take&to&actually&go&through&a&packaging&process&from&start&to&finish?&Do&you&know&the&time&period&for&packaging&an&application&with&a&size&and&complexity&equal&to&SCAT?!Once!the!packaging!center!receives!an!order!they!have!10!days!to!deliver!back!a!packaged!result.!Some!applications!are!labeled!as!critical!and!are!processed!in!only!2B3!days.!SCAT!is!one!of!them!and!is!also!a!relatively!simple!application!without!interactions!with!other!applications.!The!packagers!test!the!packaged!software!remotely!against!the!Scania!environment!to!identify!obvious!errors.!When!the!packaged!software!has!been!sent!back!and!received!it!has!to!go!through!more!extensive!testing!here!at!Scania!to!make!sure!everything!is!functioning!as!desired.!The!client!establishes!a!group!of!testers!upon!making!the!order!and!they!are!now!responsible!for!the!testing.!If!problems!arise,!my!job!is!to!identify!the!problem!and!establish!its!origin.!Sort!of!finding!out!whom!to!blame.!The!whole!deployment!process!consists!of!four!stages:!ordering,!packaging,!testing!and!release.!The!ordering!stage!is!delicate!because!any!mistake!here!will!induce!a!new!iteration!of!the!whole!process.!The!release!process!in!general!is!quite!complex!and!differs!from!many!other!clients!of!Enfo!Zipper.!!!

3. How&does&it&work,&what&happens&to&the&“input&files”&you&get?&What&is&the&output&of&the&process&and&why&is&it&so&necessary&for&Scania&and/or&other&companies&in&general&to&package&their&applications?!To!make!an!order!you!need!to!hand!us!a!couple!of!documents.!You!need!to!write!a!detailed!description!of!all!prerequisites.!These!consist!of!installation!procedures,!required!software!environment!and!post!configurations!that!doesn’t!have!anything!to!do!with!the!actual!installation.!For!example!setting!up!desktop!icons,!creating!accounts!etc.!On!top!of!this!we!also!need!the!software!media!and!a!formal!documentation!of!the!software.!Software!packaging!is!crucial!to!maintain!orderliness!and!manageability.!Many!companies!start!of!managing!software!manually!but!control!is!lost!when!the!number!of!users!exceeds!a!dozen.!!

4. Do&you&know&anything&about&the&problem&with&changing&the&packaging&method&of&SCAT&from&MSI&to&ThinApp?&I’m!not!that!versed!in!this!topic!but!I!do!know!that!we!didn’t!troubleshoot!

69!

enough!to!solve!the!problem.!One!problem!that!I!can!think!of!right!now!is!with!CDA!5.!It’s!known!to!cause!problems!with!64Bbit!software!components.!My!guess!is!that!some!component!in!SCAT!has!caused!this!very!problem.!!

! !

70!

Business Analysts and expert SCAT users at RESD (Diagnostic Architecture and Tools) Interview!performed!in!person!March!6th!2013.!

1. What&are&your&roles/jobs&here&at&Scania&(what&does&it&include)?&Our!names!are!Per!Sjöström!and!Peter!Nashed.!!Per:!We’re!both!business!analysts!and!expert!users!in!SCAT.!I’m!also!chairman!for!the!management!team,!we!receive!SCAT!from!Scania!IT.!Peter:!We!also!deal!with!requirements!for!several!other!applications.!&!

2. For&what&reasons&do&you&use&SCAT?&There!are!two!primary!usages;!variant!codes!for!different!systems!and!the!article!database.!Classification!of!articles!is!another!reason.!SCAT!is!basically!a!mirroring!of!SPECTRA!and!is!used!for!these!reasons!at!R&D!instead!of!making!changes!to!SPECTRA.!&!

3. How&do&you&use&SCAT,&do&you&mostly&use&the&mouse&and/or&keyboard?&What&parts&of&SCAT&are&you&familiar&with?&Inexperienced!users!uses!the!mouse!mostly!while!more!experienced!ones!also!uses!some!keyboard!shortcuts!like!CtrlBF!for!the!search!function.!The!application!does!not!respond!to!keyboard!presses!such!as!Esc!for!aborting!and!Enter!for!accepting.!This!is!very!annoying!and!we!would!really!like!this!to!be!implemented.&!

4. How&suitable&do&you&think&SCAT&is&to&become&a&web&application?&Very!suitable!because!its!primary!focus!is!to!present!and!alter!data!in!an!easy!manner.!The!data!is!also!quite!simple!and!easily!foreseeable!which!makes!it!ideal!for!the!web.!Furthermore,!a!predecessor!to!SCAT!had!a!web!GUI.!The!concept!of!web!worked!well!but!the!implementation!was!inadequate.!It!was!later!replaced!with!the!current!Windows!Forms!application.!!!!!&!

5. How&do&you&imagine&SCAT&as&a&web&application?&What&changes&do&you&think&are&necessary&for&the&GUI?&Have&you&already&thought&of&a&web&GUI&or&an&inspiring&web&application?!We!would!like!a!faster!application.!It!should!preferably!be!required!fewer!clicks!for!the!user!to!complete!her!task.!There’s!also!some!planned!changes!coming!to!the!current!Windows!Forms!application!that!might!as!well!be!implemented!in!a!web!solution.!We!want!to!introduce!a!couple!of!new!columns!in!SCAT!and!the!concept!of!workspaces.!The!workspace!you!have!selected!determines!which!columns!you!will!see.!The!user!shall!be!able!to!create!own!workspaces.!Another!new!feature!is!the!possibility!to!alter!the!data!fields!like!in!Excel!instead!of!using!the!current!popup!window!used!for!this!purpose.!

The!pictures!below!displays!two!views!in!a!proposed!SCAT!web!GUI.!We!developed!these!rather!quickly!in!order!to!have!something!concrete!to!talk!around!during!the!interview.!The!gap!is!quite!big!between!a!desktop!application!and!a!web!application.!In!order!not!to!increase!the!gap!further!we!chose!a!design!similar!to!the!current!one.!

71!

Figure!BB1:!This!picture!illustrates!the!variant!code!branch!in!SCAT.!The!user!can!browse!among!all!variant!codes,!edit!a!variant!code!and!create!a!new!one.!The!picture!displays!two!example!codes.!This!design!is!very!similar!to!the!current!one.!!

Figure!BB2:!This!picture!illustrates!the!“ECO!chain”!feature!found!under!the!Export!

menu.!The!menu!options!found!under!Export!is!listed!on!the!left!side,!instead!of!being!listed!in!a!dropdown!menu!as!the!current!application.!

72!

While!discussing!this!design!other!topics!were!touched.!They!pointed!out!the!need!for!a!better!search!function!that!is!able!to!search!locally!in!the!current!view!and!externally!in!the!whole!database.!The!user!should!not!need!to!know!article!numbers!and!such!as!in!the!current!application.!The!need!for!a!smart!login!feature!was!also!addressed.! !

73!

Object Leader at NEA (Powertrain Control System Development) Interview!performed!in!person!March!8th!2013.

1. What&is&your&role/job&here&at&Scania&(what&does&it&include)?&My!name!is!Johan!Edlund.!There!are!two!roles!here!at!Scania!called!“system!owner”!and!“object!leader”.!A!system!owner!is!responsible!for!the!machinery!of!the!systems.!They!handle!the!more!technical!aspects!of!each!system!in!relation!to!the!object!leaders!that!are!responsible!for!the!administration!and!releasing!of!new!article!numbers.!!Today!I!am!working!as!object!leader!on!the!Powertrain!Control!System!Development!Department!known!as!NE.!We!develop!control!systems!for!engines,!gearboxes!and!afterBtreatment!systems.!

&2. For&what&main&reasons&do&people&use&SCAT?&

Users!are!searching!for!articles!concerning!ECU!systems,!putting!articles!into!production!and!producing!rebuild!chains.!

! !

74!

Appendix C External interview This!external!interview!was!conducted!for!the!purpose!of!benchmarking.!It!is!in!the!interest!of!this!thesis!to!find!out!if!other!companies!have!had!similar!problems!and!how!they!in!that!case!have!solved!them.!The!game!industry!obviously!deals!with!software!issues!such!as!packaging,!distribution!and!deployment,!and!is!therefore!of!interest!to!us.!!We!selected!the!game!development!company!Fatshark!AB!because!of!good!relations.!!!!!

Gameplay Programmer at Fatshark AB Interview!performed!by!eBmail!January!28th!2013.!!

1. Who&are&you&and&what&is&your&role&at&Fatshark?!My!name!is!Martin!Tittenberger!and!I!work!as!gameplay!programmer!at!Fatshark.!!!

2. We&have&been&informed&that&you&use&Steam&as&game&deployment&platform.&Can&you&briefly&explain&the&procedure&from&where&you&have&a&completed&game&ready&to&"ship"&to&that&it’s&available&for&download&on&Steam?!The!procedure!is!quite!simple.!Steam!takes!care!of!distribution!and!deployment!of!the!game.!The!firstBrelease!of!a!game!requires!some!configuration!concerning!language!versions,!available!inBgame!achievements!and!logotypes.!Next!step!is!the!process!of!uploading!the!packaged!versions!of!the!game!to!Steam’s!servers!and!after!a!few!more!clicks!of!a!button,!the!game!is!made!available!to!the!public.!Same!procedure!is!applied!when!patching!an!already!released!game,!i.e.!upload!to!Steam!and!let!them!handle!deployment!to!everyone!who!has!bought!the!game.!Steam!automatically!updates!all!user!copies!of!the!game.!!

3. How&long&does&this&process&take?&The!majority!of!the!time!is!spent!on!the!actual!uploading!process!to!Steam!so!it!depends!on!the!size!of!the!project!and!the!Internet!connection!used.!It!takes!around!15B20!minutes!with!the!game!project!I’m!working!on!now!(War!of!the!Roses).!Then!it!takes!time!for!the!user!to!download!the!new!version.!This!is!usually!a!quick!process!after!a!couple!of!releases!since!Steam!has!a!system!for!calculating!the!difference!between!this!release!and!the!most!recent,!i.e.!we!only!have!to!upload!the!files!that!has!changed!since!the!last!time.!!

4. Do&you&perform&the&packaging&process&yourselves&and&in&that&case,&how’s&it&done?&Or&do&you&outsource&it?&We!do!the!packaging!with!the!tools!supplied!by!the!game!engine.!The!process!consists!of!a!number!of!steps.!First!off!is!the!compilation!of!the!game!resources!(textures,!sound,!scripts,!levels!etc.)!into!a!more!optimized!format!used!by!the!game!engine!at!runtime;!textures!are!compressed,!sound!converted,!scripts!compiled!etc.!At!the!next!step,!the!resources!are!bundled,!i.e.!merged!into!a!smaller!number!of!files,!to!speed!up!the!loading!process!(a!few!large!files!load!faster!from!disk/BluBray!drive!than!many!small!ones).!The!last!step!is!a!script!

75!

that!makes!sure!that!necessary!installation!files!are!included,!that!the!executable!is!signed!and!that!finally!perform!the!uploading!process!to!Steam.!All!game!engines!implement!their!own!way!of!packaging!their!resources,!I’m!guessing!that!the!overall!steps!are!similar.!!!&!

5. Are&there&several&possible&packaging&methods&or&does&Steam&only&accept&one&specific?!Steam!has!no!requirements!on!how!the!game!is!packaged.!!

6. How&do&you&feel&about&the&packaging&process?&Is&it&tedious,&difficult,&expensive,&or&does&it&go&unnoticed?&It’s!out!least!difficult!process!since!it’s!fully!automated!and!doesn’t!take!much!time!(10B30!min).!We!could!optimize!some!parts!of!it!in!order!to!decrease!the!time!used,!for!example!parallelize,!but!in!the!end,!it!wouldn’t!make!much!difference.!&!

7. Could&you&explain&the&process&that&occurs&after&the&developers&are&done&with&a&new&version&and&before&it’s&released&on&Steam?&Are&there&any&test&phases&and&such&in&between?!We!usually!perform!a!bigger!test!for!completed!games,!involving!several!people!at!the!office.!This!is!generally!the!case!for!projects!that!has!multiplayer!support,!such!as!the!one!I’m!currently!working!on.!These!types!of!games!require!several!players!to!find!and!provoke!bugs!that!may!occur!during!network!gaming.!If!we!find!a!critical!bug,!we!won’t!deploy!the!version!to!the!users.!Beyond!these!major!tests,!we!developers!continually!test!our!features!before!committing!them!to!our!version!control!system.!We!also!have!employed!testers!(QA)!that!continuously!play!the!game!and!reports!any!bugs,!loadBbalancing!problems!etc.!!!!!!

8. Is&the&release&of&a&new&version&of&an&existing&game&associated&with&problems?&There’s!always!risk!involved!with!the!release!of!a!new!version!of!an!existing!game.!The!most!common!problem!is!that!players!discover!bugs!in!some!of!the!newly!released!features.!It!happens!that!we!unintentionally!break!something!else!while!fixing!a!bug.!There!can!also!be!problems!with!the!Steam!pipeline!that!prevents!us!from!uploading!the!game.!These!problems!have!also!caused!the!wrong!version!of!the!game!to!be!downloaded!when!the!user!is!updating,!but!this!is!uncommon.&!

9. Do&you&know&how&Steam&works,&i.e.&how&it&verifies&that&the&user&is&running&the&latest&version&of&a&game?!It’s!probably!best!if!you!ask!Steam!about!this.!!

10. What&do&you&think&of&Steam?&Both&“pros&and&cons”&are&of&interest.&From!a!distribution!perspective,!Steam!simplifies!a!lot.!Especially!concerning!patching.!This!is!thanks!to!their!system!that!allows!for!easy!updating.!If!there’s!some!problem!with!Steam,!there’s!nothing!we!developers!can!do!but!wait.!This!is!the!major!disadvantage!with!using!Steam.!For!example,!Steam!was!down!the!

76!

same!day!as!we!were!to!go!live!with!on!of!our!projects.!!

11. Have&you&ever&thought&about&how&the&leadYtimes&and&costs&would&be&without&having&Steam&as&you&distributor?&Of!course!we!could!distribute!games!and!patches!through!our!web!page!(and!thereby!keep!most!of!the!earnings!ourselves),!but!it!would!soon!be!unmanageable.!!!&!

12. Why&did&you&choose&Steam&as&your&distributor?&Was&there&any&other&alternatives&or&solutions&that&you&might&have&evaluated?&For!distribution!of!PC/Mac/(and!soon!Linux)!games,!we!don´t!know!of!any!alternatives!that!work!as!good!and!has!the!same!wide!user!base.&!