• 0

project advice


Question

i'm working on a hotel reservation system as a college project, and i've got a few questions...

some background info:

it's not actually being done for any real life company.

it's intended to be used within a hotel by hotel staff, primarily at the reception desk.

i'm producing it as a java application, with a mysql database. it needs to be platform independent (might run on windows/linux/mac).

hypothetically, there's the future possibility of a web application to go along with it, accessing the same database.

Q1) for the application to connect to mysql, it needs to use the JDBC driver. does the JDBC driver need to be on A) the client machines running the java application, B) the machine running mysql, or C) both? (i'm assuming A or C). Also, is it bundled with the JRE or would it have to be installed separately? i did google but i've not found the answer yet!

Q2) how would you suggest that the configuration information is stored? (connection string, mysql username, mysql password). it probably needs encrypting, but also, more importantly, how do i control editing? should i only allow windows users with admin rights? but then what about linux/mac...

Q3) i'm pretty lost on how authentication/authorisation might be implemented in a real life application like this. is the application having it's own system the best/only way?

what about interacting with active directory? what about active directory or alternatives on linux/mac?

what about smart cards?

what about the web application tying in to this? should staff be able to use the same login as with the application and have access to similar/same functionality that the java application provides, or should the web app only be for customers to make their own reservations?

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Hi,

Looks like you're putting in a lot of groundwork ahead of doing the project itself. Sounds good. Hopefully these answers will help your questions :)

1) You need to grab hold of the MySql Connector J, which is the official JDBC driver for MySql. You can get it here (http://dev.mysql.com/downloads/connector/j/). It's deployment is dependant on the type of application you are building. If you are planning to build a client-server application, with MySql as the server database component, then the MySql JDBC driver needs to be installed on the clients. If you decide on doing an intranet solution, you would need to have it installed on the same machine as your webserver software (Apache, or IIS). An intranet solution would require less administration, and a centralised management.

2) It's probably best having some sort of encrypted configuration file for storing that sort of information, but the update and management of that information would require you to use each machine in turn, or, having the file on a network share. If it was a intranet based solution, again administration would be in the single place.

3) Authentication system design is a hard decision to make, you could add another layer of security on top of the OS, which sometimes is unneeded. But a security model should be in place to control what does what and by whom. Active Directory is the Microsoft implementation of the LDAP security protocol, which means it can be used using standard LDAP queries. Previously when designing intranet tools, I have relied on Active Directory groups to control how I assign permissions in the applications I build, its a great way to leverage control of your existing infrastructure. Plus it shows that you can think outside the box ;)

4) I would envisage a two-tier web application. A client front end where they can book in, see the rooms etc, a staff backend for administration. Question is, is replicating the functionality of the website what you need to do, why not develop just the web application, for all of the work, accesible from a web browser (which solves your cross platform issues).

Hope that helps, good luck with the project :)

Link to comment
Share on other sites

  • 0

let's forget administration via the web application, i don't think it's really needed after all.

the main reason why i'm going with a desktop application over a web based one is simply because i already have a bit of experience with web apps, and i want to try it this way.

with the intranet solution, do you mean having the java application running alongside the web server, and serving html?

i think the way i would like it to work is to:

- have the JRE, connector/j, and the java application all running on the client machines, and mysql on a server.

- presume all machines are part of an active directory domain (or linux/mac alternative)

- tie authentication to the operating system, so the user does not have to login with the application separately.

- i presume user groups and application permissions can be stored in AD

- i presume the mysql conection data could also be stored in AD

the biggest problem for me besides a very limited amount of time, and figuring out how to write the code, is that i'm developing and demonstrating all of this on a single standalone pc running xp pro... how do i get around that???

i've really got very little time to produce this, so i might have to just make my own login system :/

Link to comment
Share on other sites

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.