Java alapú szinkronizáló modul fejlesztése egy autókereskedés számára - Valente Alex Vilmos (2016)
Magyar nyelvű kivonat Általános leírás: Ez az alkalmazás egy Java alapú szinkronizációs szoftver. Az a célja, hogy Java objektumokat szinkronizáljon két számítógép között. Ekkor a program kiolvassa az adatokat egy MySql adatbázisból, Java objektumokat készít belőle, majd elküldi a másik gépnek, ami majd dolgozhat az adatokkal. Feltöltheti azokat a saját adatbázisába, így mindkét gép ugyanazt az adatot fogja látni, ami a fő adatbázisban van a szerveren. Ebben az esetben a program egy autó kereskedés számára szinkronizál adatokat. Adatokat küld az adatközpont és az elosztottan elhelyezett autókereskedések között. Mentesítve a felhasználót az adatcsere folyamata alól. Ilyen adatcsere lehet, például ha a központban bevezetnek egy új terméket, vagy egy meglévőt módosítanak. A módosításokat végre kell hajtani az ellátási láncban is. Ez a szoftver nagy flexibilis, így könnyen implementálható olyan hasonló környezetbe ahol adatokat kell küldeni alkalmazások között. Technikai leírás: A program TCP kapcsolaton keresztül kommunikál és helyi hálózaton, vagy VPN hálózaton keresztül kell használni, ha a szervernek nincs dedikált IP címe az interneten. Ez külön preferált, mert az alkalmazásnak nincsenek a küldőre és az üzenet eredetiségére vonatkozó ellenőrző protokollok. Csak adatot küld egy csatornán keresztül. Az egyetlen ellenőrzés, ami a klienstől jön, az az első üzenetében van. Az üzenet tartalmazza a felhasználónevet, de ennek csak logolási célja van, arra, hogy később ellenőrizhető legyen ki és mikor próbált meg szinkronizálni. Technológiai rész: Az alkalmazás Java oldali adatbázis kapcsolathoz JPA-t használ. Ez lehetővé teszi összetett Java adatszerkezetek használatát az adatbázisból való adat kinyeréshez és adatbázisba íráshoz. Ezen kívül még Apache common könyvtárakat használtam a konfigurációs fájlok olvasásához. A programbak van egye kisebb felhasználói felülete, ahol a felhasználó kiválaszthatja a szinkronizálandó objektumot. Az nézethez pedig egy php oldalt készítettem. Ennek a célja, hogy láthatóvá tegye az adatbázis tartalmát a felhasználó számára. A weboldal egy WAMP szerveren fut. Angol nyelvű kivonat General description: This application is a Java based synchronization software. It can used to synchronize Java object between two computers. In this case, the program read data from MySQL database, create Java objects, sent to the other machine then the other machine can work with the data, update it for its own database so it will see the same data as it is in the master date on the server. In this scenario, this program synchronizes data for a car shop. Sending data between the data center and the distibutors like car shops. Removing the overhead from users generated by data transfer. This transfer is like introduce a new product or modifie it. The changes must be done in the supply chain. This software is highly flexible so it can fit in any similar requirements e.g. as transfer data between applications. Technical part: The program communicates over TCP and must be used on local network or VPN network if the server doesn’t have dedicated IP on the internet. This is also preferred because the application doesn’t support sophisticated authentication and authorization protocol. Only just send the data through a socket channel. The only authentication from the client is when it sends the first message. There will be the username in that message. But this is mainly for logging purpose, to know whom and when tried to do the synchronization. About the technological part: I used JPA in the Java side database handling, it makes possible to use complex Java object both to get data from database or save data. I also used some Apache common libraries for data validation and to read configuration from configuration file. The program has a small user interface where the user can select and synchronize objects. For the view I created a php page. This is a simple page just to make the data visible. To run this php page I used WAMP server.