Denna undersökning har gått ut på att utveckla ett system “Order Engine” vars uppgift är att asynkront konsumera köer med ordrar (uppgifter) åt både interna- och externa enheter. Systemet har utvecklats enligt paradigmet MTEDA och prestandajämförts med ett (sedan tidigare befintligt) OE-system som är utvecklat enligt paradigmet COOA för att avgöra vilket av de två paradigmen som är att föredra vid utveckling av ett OE-system. Systemet som följer paradigmet MTEDA använder en struktur där en huvudprocess delegerar arbete till slavprocesserna som följer en event-driven arkitektur, vilket innebär att processer skapas och avbryts av huvudprocessen. Systemet som följer paradigmet COOA använder istället en trådpool där trådar tilldelas arbete ifall de är lediga. Det visade sig att MTEDA-systemet exekverade ordrarna snabbare än COOA-systemet väl under själva exekveringen av ordrarna, dock så kan olika förutsättningar hos ordrarna påverka exekveringshastigheten för MTEDA-systemet. MTEDA-systemet är en mer kostsam lösning på grund av det mindre effektiva sättet som arbete fördelas på. Skapandet och avbrytandet av flertalet processer visade sig nämligen vara mer kostsamt än hanteringen av en trådpool. Båda av dessa paradigmen kan vara fördelaktiga att följa vid utvecklingen av ett OE-system. Resultatet från denna undersökning tyder på att det paradigm som ska väljas vid utveckling av ett OE-system bör avgöras med avseende för resurstillgänglighet samt de generella förutsättningar som inkommande ordrar har. / The purpose of this project has been about comparing what performance-differences there is between the paradigms MTEDA and COOA when applied for an “Order Engine”-system, a system that receives orders (tasks) from internal and external units and executes them asynchronously. The company Dewire that has developed the COOA-system has supervised the author to find out if an OE-system can benefit from using the MTEDA-paradigm. The solution for the MTEDA-system included a structure where a master-process delegate incoming orders for slave-processes, the slave-processes then executes the orders through an event-driven manner. The COOA-system on the other hand uses a thread-pool, where the orders get assigned to the threads in the pool if they are available. It turned out that the MTEDA- system executed the orders faster than the COOA-system, even though the MTEDA-system can gain- or loose execution-speed depending on the conditions of the orders. The way MTEDA delegates the orders, that is spawning and destroying processes, turned out to be more expensive for the CPU. Assigning orders to threads that are already active turned out to be an efficient way of using the resources. Both of these paradigms could be the better choice when developing an OE-system. Therefore, the things that should decide that choice is the resources available and the general conditions that the incoming orders have.
Identifer | oai:union.ndltd.org:UPSALLA1/oai:DiVA.org:miun-28124 |
Date | January 2016 |
Creators | Estlind, Björn |
Publisher | Mittuniversitetet, Avdelningen för informations- och kommunikationssystem |
Source Sets | DiVA Archive at Upsalla University |
Language | Swedish |
Detected Language | Swedish |
Type | Student thesis, info:eu-repo/semantics/bachelorThesis, text |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.0015 seconds