wiki:APP_CONNECTIVITY_REDESIGN

Version 8 (modified by kyli, 16 years ago) (diff)

--

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

Error: Macro TicketQuery(summary=APP_CONNECTIVITY_REDESIGN_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|) failed
current transaction is aborted, commands ignored until end of transaction block

Analysis

Overview

This task is about redesigning the current connectivity model according to the new resource model and improving it so it reaches a stable beta phase.

Since there are too many tasks about server and connectivity,they first need to be categorized, analyzed and scheduled. A clear vision for further procedure is needed - this task is about doing so.

Task requirements

Analyze the current status and what needs to be done for the following:

  • The whole connectivity design must be revised (in this task) - what does is consist of, how does the client use the connectivity module, etc.
  • Facade - since the resources are being redesigned, the facade needs to be changed. Real time collaboration support should be provided (sync methods).
  • Connection list - the connection list in the client needs to be persisted, should provide manipulation ability, connections need to have clear statuses defined.
  • Server resource listing - the client needs to have a clear way of getting server resource lists (keeping in mind the security permissions). Also, needs to have filtering, searching, open/close support. This issue affects the server, too.
  • Client U.I. - there is currently a tab for the server stuff in the left flap, it must be re-designed and synchronized with our analysis men.
  • Security - there is already some user/group model, but no logic is using it. Analyze / design the base security model.

Task result

  • In the design - design documentation for every connectivity aspect discussed above. Design diagrams are needed, auto tests are obligatory.
  • In the implementation - Achievable schedule of what will be accomplished in what time, considering connectivity. The common design must be implemented as a basis for the next tasks. The tasks which will be implemented should be grouped and (optionally) analyzed.

Implementation idea

  • The base.connectivity module currently does not maintain the list of the available connections - they are kept in the corresponding palette. Consider this behavior.
  • There is a design draft for the new resource facade after the resource redesign - http://pastebin.asteasolutions.net/f444cc8f1. Another idea is that the client implementation of the facade is used by the server resource accesses, and the server-side implementation uses the server resource accesses.
  • Connection listing should mainly use the server resource access, so it must be synchronized with other teams' work.

GROUP_RESOURCE_MODEL_REDESIGN_R0

How to demo

Explain the complete model to the teams. Show the working prototypical code.

Design

  • ServerConnection:
    • Represents a connection to a server, instantiated from a given Account.
    • Every connection has 1:1 relation with a client-side facade.
    • Has the methods that the facade has, which delegate to the facade's ones.
    • The main difference between a connection and a facade is that the facade needs Session ID for its methods.
    • The facade's methods always return objects of type Response, the connection's ones handle the responses and 'unwrap' them.
    • The facade is not visible to others, only to the connection.
    • The methods in the ServerConnection that the facade doesn't have are login(String username, String password), logout(), connect() and disconnect(). The third one is responsible for getting a session ID from the server and instantiating the private facade, the last one is responsible for destroying the facade in the connection and setting sessionId to null.

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.)

Attachments