wiki:S2S_DEPLOY_TECHNOLOGIES_R0

Version 11 (modified by pavlina, 17 years ago) (diff)

--

Error: Macro BackLinksMenu(None) failed
compressed data is corrupt

Error: Macro TicketQuery(summary=S2S_DEPLOY_TECHNOLOGIES_R0, format=table, col=summary|owner|status|type|component|priority|effort|importance) failed
current transaction is aborted, commands ignored until end of transaction block

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

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:
source:/trunk/sophie2-platform/modules/org.sophie2.server/doc/S2S_Deployment_Diagram.png

  • 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

  • server core implementation is in service package
  • Jetty is embedded and starts using server.FakeServerMain launch configuration(the TrueServerMain does not deploy jsps for now). See S2S_CORE_DEPLOYMENT_R0
  • JavaDB is embedded and used in org.sophie2.server.persistence module. Interfaces and classses using the database are implemented.

trunk/sophie2-platform/modules/org.sophie2.server.persistence

  • When the user is trying to log and is in the database he/she is redirected to the about Sophie page, otherwise he can't log. - 615 and 623

Testing

Comments

(Write comments for this or later revisions here.)