Analysis
Overview
Sophie2 should be able to connect to a Sophie2 Server and provide the same functionality as the S2S web interface. For this to happen, the client should be able to maintain server connection entries and to manage them, to manipulate server sessions, etc.
Task requirements
After this task is finished, Sophie2 must have the following abilities in prototypical form:
- Should have internal definitions for "server connection" and "session". Stable design for these must be built.
- Sophie2 must be able to list persisted connections, to add/remove other ones.
- Connections must be editable and persistable.
- Usernames/passwords must be also persistable, password storage must be designed to be secure.
- Possible connection statuses must be defined
- the user should be able to change a connection status (e.g. connect/disconnect)
- different kinds of connection problems must be handled - disconnect(for some reason), lack of connectivity, unsuported operations, etc.
- connection statuses should be displayed in the client.
- when a server-stored resource is accessed, the client should be able to connect automatically to that server.
- user manipulation must be possible
- the client should be able to connect to a server with given username/password
- the client should be able to register new users on the server
- the client should be able to connect anonymously to a server (if the server allows it).
Task result
Source code; client connectivity.
Implementation idea
Currently, there is a module org.sophie2.base.connectivity, which provides basic ServerConnection and Session designs, as well as connection manipulation. Get familiar with it (it is described in the WS_CONNECTOR task).
There is also a module org.sophie2.main.servers, created to ptovide a "Servers" tab in the left flap with some palettes in it (currently, a list of connections). Improve the connections palette to show connection statuses (look at the TablePalette class, decide if it is useful), create some behaviour for connection editing (right click, double click, a button, etc.). Create the mechanism for storing passwords and for username/password propt at connect.
The auto-connect logic requires resource model and Facade/WS to be implemented first.
Related
GROUP_APP_SERVER_SESSIONS_R0
S2S_WS_CONNECTOR_R0
How to demo
- Start the client.
- In the connections palette, add a new connection.
- set its properties and connect to the server, then disconnect.
- delete the connection.
Design
(Describe your design here.)
Implementation
(Describe and link the implementation results here (from the wiki or the repository).)
Testing
(Place the testing results here.)
Comments
(Write comments for this or later revisions here.)