• No results found

Denna studie var genomförd på experiment som skedde i en isolerad miljö. I framtida studier skulle man kunna utföra dessa experiment även i en verklighetsbaserad miljö. Med andra ord låta HTTP-förfrågningarna skickas till en webbserver som ligger i ett nätverk utanför webbapplikationens egna nätverk. Validiteten av studien skulle stärkas då många verkliga system även kommunicerar utanför sitt egna nätverk. Till följd av att studien är en högskoleingenjörsuppsats och att tidsramen är begränsad utfördes aldrig detta.

Framtida studier skulle också kunna inkludera implementation av en egen HTTP-klient från grunden och enbart fokusera på prestanda och inget annat. Vidare jämföra den egenbyggda HTTP-klienten med de befintliga för att se om det är möjligt att utveckla ett bibliotek som tillför en lägre fördröjningstid. Å ena sidan om prestandan blir bättre, kan man föreslå detta bibliotek till IT företagen istället. Å andra sidan om prestandan blir likvärdig, kan man undersöka om det är HTTP-klienten i sig som är flaskhalsen av fördröjningstiden eller inte.

Vidare rekommenderar vi att man gör en studie med fler parallella anrop och större mängder data för att fortsätta analysera den trenden vi upptäckt i kapitel 4.2 Empiri från experiment utan cache. Det kan visa sig att differensen går stadigt uppåt och bekräftar skillnaden på prestanda mellan klienterna.

Referenser

[1] Scott Hanselman. Comparison of Flurl and HttpClient. 2018-06-23.URL: https:

//www.hanselman.com/blog/UsingFlurlToEasilyBuildURLsAndMakeTestableHttpClientCallsInNET .aspx (hämtad 2020-01-18).

[2] Microsoft. .NET Documentation. URL: https : / / docs .microsoft .com / en -us/dotnet/ (hämtad 2020-01-18).

[3] Stack Overflow. Stack Overflow survey 2019 development. 2019. URL: https:

//insights.stackoverflow.com/survey/2019 (hämtad 2020-05-21). [4] Mattias Cederlund. Performance of frameworks for declarative data fetching An

evaluation of Falcor and Relay+GraphQL. Tekn. rapport. 2016.

[5] Arnar Freyr Helgason. “Performance analysis of Web Services: Comparison between RESTful & GraphQL web services”. I: (2017), s. 1–66.

[6] Fiach Reid. Network programming in. NET: with C# and Visual Basic. NET. El- sevier, 2004, s. 6.

[7] Richard Blum. C# network programming. John Wiley & Sons, 2006, s. 522–528. [8] NuGet. RestSharp statistics on NuGet. 2020. URL: https://www.nuget.org/

packages/RestSharp (hämtad 2020-05-22).

[9] NuGet. Flurl statistics on NuGet. 2020. URL: https : / / www .nuget .org / packages/Flurl/3.0.0-pre3 (hämtad 2020-05-22).

[10] Sarah Ishida Preston Gralla. How the Internet works. Indianapolis, IN, 1998, s. 41.

[11] Mark Masse. REST API Design Rulebook: Designing Consistent RESTful Web Service Interfaces. Ö’Reilly Media, Inc.", 2011.

[12] Joel L. Fernandes m. fl. “Performance evaluation of RESTful web services and AMQP protocol”. I: International Conference on Ubiquitous and Future Networks, ICUFN (2013), s. 810–815. ISSN: 21658528. DOI: 10 .1109 / ICUFN .2013

.6614932.

[13] Dave Evans. The Internet of Things. 2011-04-010. URL: https://www .cisco .com/c/dam/en_us/about/ac79/docs/innov/IoT_IBSG_0411FINAL.pdf (hämtad 2020-03-17).

[14] Oleg Kalnichevski, Jonathan Moore och Jilles van Gurp. HttpClient Tutorial. 2009.

[15] Microsoft. HttpClient Class documentation. URL: https://docs .microsoft .com/en-us/dotnet/api/system.net.http.httpclient?view=netframework -4.8 (hämtad 2020-04-14).

[16] Microsoft co. Httpwebrequest class documentation.URL: https://docs.microsoft .com/en-us/dotnet/api/system.net.httpwebrequest?view=netcore-3 .1 (hämtad 2020-05-17).

[17] Microsoft Co. WebRequest Klass. URL: https://docs .microsoft .com/en -us/dotnet/api/system .net .webrequest ?view=netcore -3 .1 (hämtad 2020-04-14).

[18] Microsoft co. Await and async. URL: https : / / docs .microsoft .com / en

-us / dotnet / csharp / programming -guide / concepts / async/ (hämtad 2020-05-18).

[19] Microsoft. NuGet documentation. 2020.URL: https://docs.microsoft.com/ en-us/nuget/ (hämtad 2020-05-13).

[20] Vijay Surwase. “REST API modeling languages-a developer’s perspective”. I: Int. J. Sci. Technol. Eng2.10 (2016), s. 634–637.

[21] Macario Polo, Mario Piattini och Francisco Ruiz. “Reflective persistence (Re- flective CRUD: reflective create, read, update and delete)”. I: Sixth European Conference on Pattern Languages of Programs (EuroPLOP). Citeseer. 2001, s. 69– 85.

[22] Microsoft. ASPDotNETCore. URL: https://docs .microsoft .com/en -us/

aspnet / core / introduction -to -aspnet -core ?view = aspnetcore -3 .1 (hämtad 2020-06-11).

[23] Zimarev A & RestSharp gemensamhet Sheehan J Young A. Restsharp Github ba- secode. URL: https://github.com/restsharp/RestSharp/blob/master/ src/RestSharp/Http.cs (hämtad 2020-04-14).

[24] Todd Menier. FlurlhttpClient. URL: https://github .com/tmenier/Flurl/

blob/dev/src/Flurl.Http/FlurlClient.cs (hämtad 2020-01-18).

[25] Microsoft. NuGet Packet manager statistics. 2020. URL: https://www .nuget .org/stats/packages (hämtad 2020-05-15).

[26] Microsoft. Statistics for Flurl. 2020.URL: https://www.nuget.org/packages/

[27] Microsoft. Threadpool.URL: https://docs.microsoft.com/en-us/dotnet/ api / system .threading .threadpool ?view = netframework -4 .8 (hämtad 2020-01-18).

[28] A. Uurlu, A. Zeitler och A. Kheyrollahi. Pro ASP.NET Web API: HTTP Web Ser- vices in ASP.NET. Expert’s voice in .NET. Apress, 2013.ISBN: 9781430247265.

URL: https://books.google.se/books?id=XWT9AAAAQBAJ. [29] Eric C Cooper och Richard P Draves. “C threads”. I: (1988).

[30] Stephanie Glen. Probability and statistics, T-test.URL: https://www.statisticshowto

.datasciencecentral .com / probability -and -statistics / t -test/ (hämtad 2020-02-10).

[31] K. Vännman. Matematisk Statistik. Studentlitteratur, 2002.

[32] Github Inc. Github. URL: https://github.com/about (hämtad 2020-01-18).

[33] Sebastian Nanz m. fl. “Benchmarking usability and performance of multicore lan- guages”. I: International Symposium on Empirical Software Engineering and Me- asurement(2013), s. 183–192. ISSN: 19493770.DOI: 10.1109/ESEM.2013.10. arXiv: 1302.2837.

[34] Ensar Ajkunic m. fl. “A comparison of five parallel programming models for C++”. I: MIPRO 2012 - 35th International Convention on Information and Com- munication Technology, Electronics and Microelectronics - ProceedingsJuly 2012 (2012), s. 1780–1784.

[35] Jianbin Fang, Ana Lucia Varbanescu och Henk Sips. “A comprehensive perfor- mance comparison of CUDA and OpenCL”. I: Proceedings of the International Conference on Parallel Processing (2011), s. 216–225. ISSN: 01903918. DOI: 10.1109/ICPP.2011.45.

[36] Sonam Bhatia och Jyoteesh Malhotra. “A survey on impact of lines of code on software complexity”. I: 2014 International Conference on Advances in Engine- ering and Technology Research, ICAETR 2014 (2014), s. 3–8. DOI: 10 .1109/

ICAETR.2014.7012875.

[37] Vu Nguyen m. fl. “A SLOC Counting Standard”. I: COCOMO II Forum. 2007 (2007), s. 1–15.

[38] Lumnify Pty Ltd. Landing Page of thirdparty Lumnify.URL: https://lumnify

[39] C-Sharpcorner. Comparison Await versus ContinueWith. URL: https://www.c -sharpcorner.com/UploadFile/pranayamr/difference-between-await -and-continuewith-keyword-in-C-Sharp/ (hämtad 2020-01-18).

[40] Microsoft. .NET Documentation. URL: https : / / docs .microsoft .com / en -us / dotnet / csharp / programming -guide / concepts / linq/ (hämtad 2020-01-18).

[41] Ahmad Emad Mageed. “The Evolution of the C# Language: The Impact of Syn- tactic Sugar and Language Integrated Query on Performance”. I: (2015). ISSN: 1098-6596. DOI: 10 .1017 / CBO9781107415324 .004. arXiv: arXiv : 1011 .1669v3.

[42] Peter Sestoft. “Microbenchmarks in Java and C #”. I: (2015), s. 1–26.

[43] Jeffrey C Mogul, Equipment Corporation och Palo Alto. “The Case for Persistent- Connection HTTP”. I: ().

[44] Steve J. Gordon. Httpclient and connection pooling.URL: https://www.stevejgordon

.co .uk / httpclient -connection -pooling -in -dotnet -core (hämtad 2020-05-17).

[45] Macoratti.net. Httpclients Comparison. URL: http://www .macoratti .net/ 16/08/net_web1.htm (hämtad 2020-05-17).

[46] Donald E Knuth. “S t r u c t u r e d P r o g r a m m i n g w i t h go to S t a t e m e n t s”. I: 4 (1974), s. 268.

[47] GeeksForGeeks. TimeComplexity. URL: https://www .geeksforgeeks .org/ analysis-algorithms-big-o-analysis/ (hämtad 2020-05-15).

[48] Mark A Weiss. Data structures & algorithm analysis in C++. Pearson Education, 2012.

Bilagor

Bilaga A

Github repository

Följande länk leder till projektet som innehåller branches för både REST API och ap- plikationen.

Bilaga B

Statistik för nedladdningar av Flurl

Related documents