Providing persistence for an existing three-tier Java application with a legacy relational database

No Thumbnail Available
Journal Title
Journal ISSN
Volume Title
Helsinki University of Technology | Diplomityö
Checking the digitized thesis and permission for publishing
Instructions for the author
Date
2009
Major/Subject
Ohjelmistotekniikka
Mcode
T-106
Degree programme
Language
en
Pages
(9+) 91 s.
Series
Abstract
This thesis provides a general persistence solution for an existing three-tier Java application using a legacy relational database schema. In addition to keeping track of and saving the changes made to objects in the database and mapping between the objects and database tables, the main issues are concurrency control and fitting the solution to the architecture of the target case. The literature review first covers a general scope and then focuses on the specific context of Java. The solutions, based on and developed from current available literature, are gathered and evaluated in the context of the target case. Based on this, a prototype for the solution is created and evaluated. During the research, many candidate solutions were found, both patterns and techniques for different aspects of persistence as well as frameworks and libraries providing complete solutions. It was found that the existing frameworks are mainly targeted at server-side programmes, such as web applications. Based on various special properties of the target case and the challenges of using existing frameworks with the rich client approach, a custom solution was made by combining various ideas and patterns, based on optimistic concurrency control and using the Command pattern. A prototype for the persistence solution was made with support for a couple of types of entities. Based on the evaluation done, the solution works well within the target case and will be used for the application. Instead of trying to provide a solution for different Java applications in general, this solution provides a general and flexible solution for the needs of the target case and its basic structure could also be used with other similar software.

Tämän diplomityön aiheena on yleisen ratkaisun kehittäminen pysyvyyden toteuttamiseksi olemassa olevaan, olemassa olevaa relaatiotietokantamallia käyttävään kolmikerrosarkkitehtuuriin perustuvaan Java-ohjelmistoon. Työn pääkysymyksiä ovat olioihin tehtyjen muutosten hallinta ja tallentaminen tietokantaan, rinnakkaisuuden hallinta ja olemassa olevaan ohjelmistoon ja arkkitehtuuriin soveltuvan ratkaisun etsiminen. Työssä tehdään kirjallisuuskatsaus aiheesta, ensin yleisellä tasolla ja sitten Javan yhteydessä. Löytyneet ratkaisumallit kootaan yhteen ja arvioidaan niiden soveltuvuutta kyseessä olevaan tapaukseen. Valittujen ratkaisujen avulla tehdään prototyyppi toteutuksesta. Työssä löytyi erityyppisiä ratkaisuvaihtoehtoja ja -malleja. Osa löydetyistä vaihtoehdoista oli pysyvyyden osa-alueisiin kohdistuvia tekniikoita ja suunnittelumalleja, osa puolestaan kokonaisratkaisua tarjoavia valmiita ohjelmistokehyksiä. Valmiiden ratkaisujen havaittiin olevan suuntautuneita palvelinpuolen ohjelmistoihin, kuten www-sovelluksiin kun taas kohdeohjelmistossa pääosa toiminnoista tehdään asiakaspuolella. Tämän lisäksi ohjelmiston ja tietokantamallin erityispiirteet vaikuttivat siihen, että päädyttiin oman ratkaisun tekemiseen. Ratkaisun perusteiksi valittiin optimistinen rinnakkaisuuden hallinta ja Käskyolio-suunnittelumalli (Command pattern). Prototyypin arvioinnin perusteella ratkaisu täyttää hyvin tavoitteet. Sen sijaan, että ratkaisu pyrkisi palvelemaan erilaisia Java-sovelluksia yleisesti, tarjoaa se kohdeohjelmiston tarpeisiin sopivan yleisen ja joustavan toteutuksen pysyvyydelle siten, että ratkaisua voisi soveltaa muissakin samantyyppisissä ohjelmistoissa.
Description
Supervisor
Malmi, Lauri
Thesis advisor
Koitto, Mikko
Keywords
persistence, pysyvyys, Java, Java, relational databases, relaatiotietokannat, SQL, SQL, JDBC, JDBC, three-tier architecture, kolmikerrosarkkitehtuuri, rich client, Hibernate, Hibernate, ORM, ORM
Other note
Citation