[[BackLinksMenu]]

[[TicketQuery(summary=GROUP_APP_SERVER_RESOURCE_ACCESS_R0, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|)]]

= Analysis =

== Overview ==
This group of tasks is about accessing resources on the server from the client application. Sophie2 Author and Reader should provide a palette that lists the resources on a given server and allows actions to be taken on them. The server, on the other hand, should provide a facade and web services for resource access. At this iteration, a prototype of this will be created, allowing users to remotely open a book that resides on the Sophie 2 Server.

== Task requirements ==
 * Decompose the server in appropriate modules with well-defined functionality (and do the refactoring needed):
  * The core and the persistence should remain in separate modules.
  * Persistence at this iteration is not a requirement. It can be fake (dumping everything to memory) for ease of implementation.
  * S2S Core module should use the base resource model of Sophie2 (that includes book, users and groups at this iteration).
  * S2S Core should be accessible from the web UI, the web services or the client only through the facade.
  * Facade will expose the core functionality to the WS, DC and Web UI. It will have direct access only to the core.
  * See the Implementation idea for a draft diagram of the modules decomposition.
 * Add resource access support to the facade (it currently only provides access to user and group managers):
  * Implement both the server-side and the client-side of the facade. The former will provide resource access to the web services and the web UI, while the latter will be used by the new palette created.
 * Provide ability for the web services to serialize resources in order to pass them to the client.
 * Create a palette for listing server resources and make it work synchronously with the existing Connections palette (i.e. display the resources of the server we are connected to):
  * It should be in the Servers tab in the left flap.
  * At this iteration it should list all the resources on the server (users, groups, books). No resource list filtering is required.
  * It should support opening a book on a double-click (other actions will be implemented at a next iteration).
  * It should be consistent with the Resources palette.

== Task result ==
 * Source code:
  * New Server module structure.
  * Ability to open a book from the server.

== Implementation idea ==
Here's a draft diagram, showing the new module decomposition.

^Put a diagram for the new module decomposition here.

== Related ==
[wiki:GROUP_BASE_SECURITY_R0] [[BR]]
[wiki:S2S_WS_CONNECTOR_R0]

== How to demo ==
 * Start Sophie2 Server and Author.
 * Connect to a server from the Left Flap -> Servers Tab -> Connections palette.
 * Double-click on a book from the list below.
 * Show the new module structure.
 * Run the test and briefly describe the changes made.

= 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 =
 * Implement the resource list filtering at the next iteration of this task or of [wiki:APP_SERVER_RESOURCE_BROWSER_FILTER_R0] ([ticket:512]) --boyan@2009-06-09