Establishing a suitable middleware based on reconstruction and repeating patterns

DSpace Repository

Establishing a suitable middleware based on reconstruction and repeating patterns

Show full item record

Files for download

Facebook

Simple item record

Publication Bachelor thesis
Title Establishing a suitable middleware based on reconstruction and repeating patterns
Author(s) Johansson, Peter ; Hansen, Jesper
Date 2016
English abstract
In distributed systems, components communicate by passing messages between each other and a middleware bridges gaps between the interaction of different applications. The aim was to investigate and analyse middleware designs that handle a one-to-many communication usable in XFS based software and identify possible problems during the development process. Reverse engineering was used to reconstruct our stakeholders XFS based software. Entry and exit points were localised and visualised with UML diagrams from the reconstruction. By focusing on the stakeholders requirements and the reconstruction, the design pattern Broker and Reactor were used to decouple a one-to-one relationship towards the stakeholders hardware. The architecture of the middleware prototype was based on a client-server architecture and the prototype utilises a one-to-many inter-process communication that sends JSON messages over a pipe connection. The prototype was evaluated using written test cases and the test cases presented satisfactory results. The final version of the prototype was able to handle several clients communicating with the stakeholders hardware through the server and all clients displayed callbacks. Choices made during the iterative development identified problems that are valuable to other developers. The two main problems were high complexity in a legacy software system and that all logic in the XFS standard is open to interpretation. Our solution is successful as a start-up approach but asynchronous patterns are determined as a possible optimisation for the software system.
Swedish abstract
I distribuerade system, kommunicerar komponenter genom att skicka meddelanden till varan- dra och mellanprogramvara överlappar integrationen mellan olika applikationer. Syftet var att undersöka och analysera olika designmönster till en mellanprogramvara som hanterar kommunikationen i en en-till-många relation och som kan användas i en XFS baserad programvara samt identifiera eventuella problem som uppkom under utvecklingsprocessen. Reverse engineering användes för att rekonstruera vår uppdragsgivares XFS baserade mjukvara. Ingång- och utgångspunkter lokaliserades och visualiserades med hjälp av UML-diagram. Med hjälp av vår uppdragsgivares krav och rekonstruktion av deras mjukvara, de designmönster som valdes var Broker och Reactor. Dessa valdes för att frikoppla en-till-en relationen mot vår uppdragsgivares hårdvara. Arkitekturen i vår prototyp av mellanprogramvaran baserades på klient-server och prototypen använder en en-till-många interprocesskommunikation för att skicka JSON-meddelande över en pipe anslutning. Prototypen utvärderades med hjälp av testfall och utfallet av testen var till belåtenhet. Slutversionen av vår prototyp klarade av att hantera kommunikation mellan flera klienter till vår uppdragsgivares hårdvara genom en server. Callbacks hanterades och presenterades i alla klienter. Valen som gjordes under utvecklingen identifierade problem som är värdefulla för andra utvecklare. Två huvudproblem uppstod för att det är väldigt hög komplexitet i välutvecklade system samt att logiken bakom XFS standarden är öppen för fri tolkning. Vår lösning är bra vid en utvecklingsuppstart men det fastställs att asynkrona mönster är en möjlig optimering av mjukvarusystemet.
Publisher Malmö högskola/Teknik och samhälle
Pages 63
Language eng (iso)
Subject(s) Distributed systems
Middleware
XFS
Inter-process communication
JSON
Pipes
Reconstruction
UML
Patterns
Handle http://hdl.handle.net/2043/20941 (link to this page)

This item appears in the following Collection(s)

Show full item record

Search


Browse

My Account

Statistics