[[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. * It would be good to create 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 == Since changes serialization is not implemented yet, it is not possible to send changes from the server to the client. For this revision, it would be best to use the current persistence and send a copy of the book in persisted format to the client. The client on its turn will download the book and open it. This will be good for demonstration of the working web services, as well as client connectivity. It will also show that the server really works with the base modules and with the client resources. == 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