Version 10 (modified by pavlina, 16 years ago) (diff) |
---|
Analysis
Overview
The goal of this task is to research and decide which technologies we will use for deploying and running the Sophie server. They should be demonstrated.
Task requirements
- Decide which database we will use (i.e. HSQLDB, MySql, SqlLite, PostGre, Apache Derby)
- Talk to Milo what is the best decision.
- Deploy simple configuration of the chosen database.
- Decide which servlet container we will use (It is jetty. See S2S_CORE_DEPLOYMENT_R0)
- Decide if we will use JSPs for the web pages. Deploy them and give examples.
- Decide which technologies we will use for web services (i.e. SOAP web services(xfire, axis), rest services)
Task result
- Sophie 2 basic server which runs and use the chosen database and basic web user interface.
Implementation idea
- Compare the technologies - the pros and cons of each
- read its documentation - http://db.apache.org/derby/, http://hsqldb.org/, http://www.sqlite.org/, http://www.postgresql.org/
- see the license of the listed databases - it must not be GPL.
- MySql has GPL license, that's why we can't use it.
- use maven-jspc-plugin to compile the JSPs. We should have two-three JSPs showing the implemented logic.
Related
S2S_CORE_DEPLOYMENT_R0
S2S_WEB_COMMONS_R0
How to demo
- Show the running server and its web interface, consisting of JSPs and servlets.
- Demonstrate the communication with the chosen database - use SQuirreL to show the database and its fields.
Design
Here is the common deployment diagram:
- Server Core - UserService, GroupService classes (org.sophie2.server.service package)
- Persistence Layer - DatabaseManager, GroupDao, UserDao, AbstractEntity, Group, User (in org.sophie2.server.persistence.dao and org.sophie2.server.persistence.entity packages)
- The server should use Jetty as web / web service server.
- The data should be persisted by API which uses Derby ( JavaDB ) to an embedded database.
- The user should log to it from the client using the web services (REST or SOAP, for now we can't say which of the two will be the services, we should define them in the next revision of the task), or from the browser using the servlets, JSP pages or applets embedded in html pages.
- May be in the future we should use a protocol of our own for the communication between the client's connector and the server in some cases.
Implementation
(Implementation results should be described and linked here (from the wiki or the repository))
Testing
Comments
(Write comments for this or later revisions here.)