research

Palvelun skaalaus moniasiakasympäristössä

Abstract

Opinnäytetyössä toteutettiin jyväskyläläiselle ohjelmistoalalalla toimivalle Codecenter Oy:lle Java-ohjelmointikielellä skaalautuva muunnospalvelu moniasiakasympäristöön, jolla muunnettiin XML-tiedostoja eri muotoihin. Palvelun toteutuksessa hyödynnettiin VMwaren vFabricalustaa sekä avoimen lähdekoodin ratkaisuja, joista tärkein oli Spring Framework. Toteutettu palvelu koostui erillisestä hallintasovelluksesta ja viestikäsittelijästä. Työssä vertailtiin vertikaalista ja horisontaalista skaalausta keskenään teoriatasolla. Muunnospalvelu toteutettiin noudattaen horisontaalisen skaalauksen periaatteita. Työssä käsiteltiin muistinvaraisten tietokantojen ja viestijonojen käyttämistä osana skaalausratkaisuja. Muistinvaraisena tietokantana käytettiin vFabric GemFirea, joka mahdollisti useita eri lähestysmistapoja muistinvaraisen kannan muodostamiseen. Viestijonototeutuksena taas käytettiin RabbitMQ:ta. Muunnosten tekeminen suoritettiin Apache ServiceMix -alustalle toteutettua käsittelijäkomponenttia käyttäen. Tällöin mahdollistettiin muunnospalvelun joustava integroiminen muiden järjestelmien kanssa. ServiceMix ja sen kanssa käytetty Apache Camel tarjosivat yhdessä mittavan joukon erilaisia työkaluja integraatioita varten. Tutkimustuloksena saatiin tietoa horisontaalisen skaalauksen soveltamisesta oikean sovelluksen toteutuksessa sekä tietoa vFabric-alustan käytöstä. Horisontaalisen skaalauksen keskeisimpänä periaatteena esitelty useisiin osiin jaottelu osoittautui käytännössä hyvin toimivaksi ratkaisuksi. vFabric-alusta tarjosi hyvät työkalut skaalautuvan palvelun toteuttamiseen.This bachelor's thesis describes the implementation process of a scalable transformation service given as an assignment by an IT company called Codecenter Oy. The service was aimed at a multiuser environment. The transformation service was used for transforming XML files into other formats. VMware's vFabric platform was used for implementing scalability. Other open source tools were also used, including Spring Framework. Vertical and horizontal scaling were compared; but the main focus, however, was on horizontal scaling. The use of an in-memory database and message queues were the two most important concepts. vFabric GemFire was used as an implementation for an inmemory database and RabbitMQ as a messaging queue implementation. Apache ServiceMix and Apache Camel were used together for providing the best way of performing transformations. They also provided a number of tools for integrating the service with other systems. The thesis demonstrates how to apply the theory of horizontal scaling in practice. The results were promising and prove how splitting was the best way to implement horizontal scaling. vFabric platform was the most important solutions provider for scalability

    Similar works