FOAFRealm/digime/ETIDrafts/Specification
From Corrib Clan Wiki
Mobile FOAFRealm
1. Problem definition
FOAFRealm is a distributed user profile management system based on FOAF (Friend-of-a-friend) vocabulary. It enables users to control profile information. The information can be accessed in the open FOAF metadata. Users can sign-in automatically across the P2P network (called D-FOAF) of FOAFRealm enabled systems. Moreover, FOAFRealm provides a basic implementation of the social semantic collaborative filtering concept [1]. The knowledge (annotations and private collections) can be shared among registered users.
Our goal is to allow users to access their own profiles by using mobile devices. Users should be able to take advantage of all information stored on the server. To do so, users need to authenticate on FOAFRealm server using correct credentials: e-mail and password pair. The main features of the system would be ability to manage users accounts and managing the FOAF information stored on the server. Additionally, the system should allow to manage users’ bookmarks. Finally, we are going to implement functionality like displaying user’s friends list and sending SMS or e-mail to user’s friend.
2. Solution strategy and feature realization priorities
2.1. Solution strategy
Recently, we have participated in the implementation and design process of the FOAFRealm system (see www.foafrealm.org). Furthermore, we are developers of the next version called D-FOAF which makes the system distributed. Our objectives are to deliver the first components for the next version of FOAFRealm - Digi Me - implementing ubiquitous computing paradigm:
- Redesign and extend the current implementation of FOAFRealm according to SOA (Service Oriented Application) specifications. SOA will provide all required services for the mobile devices (and other application servers as well). Because such a solution should not decrease the security level of whole application, it must be carefully designed and build.
- Building J2ME application that would be able to take advantage of all services accessible from SOA layer and cover required features.
attachment:arch.png
Figure 1. Solution overview.
The architecture diagram including the concept is shown on solution overview (See Fig. 1).
2.2. feature realization priorities
All architecture components mentioned in the previous paragraph are indispensable. However, we could set priorities for some of the features especially at the J2ME application side. The most important is the ability to log into FOAFRealm server, the remaining features are presented on the following list ordered by the priority.
- retrieving a list of friends
- getting user bookmarks
- managing bookmarks and friends connections.
- sending information to friends (using sms or e-mail service)
3. Control points and dates
The following dates are naturally connected with deadlines imposed by supervisor. Furthermore, we have introduced several intermediate dates in order to have better control of development process.
- 4.12 - analysis and project of the system.
- 16.11 - analysis
- 1.12 - project
- 8.01 - final implementation
- 20.12 implementation of the primary functions
- SOA - complete model
- J2ME - ability to login into FOAFRealm
- 3.01 - the remaining part of the system
- 8.01 - end of testing process
- 20.12 implementation of the primary functions
4. Group structure
The task division is flexible and many of them will be shared among us.
- Sławomir Grzonkowski - J2ME application design and development supervisor
- Adam Gzella - SOA layer design and development supervisor
5. Schedule of activities, methods of work inspection and evaluation
The schedule of activities is directly related to the control points (see section 3). Members of the team will work on each part of the application in order to have it done due to the next control point. On each control point, team will collaboratively do the inspection and check if expected goals are accomplished. We expect at least one external inspection during the semester (from the manager of the FOAFRealm project). At the end of the implementation process, tests on the real system are expected, followed by deployment at one of the current instances.
6. Planned tools and programing lanuageges
For the purpose of implementing the application, we will use Java language and related technologies. SOA part of the application will be developed using Eclipse IDE. J2ME part will be done using Eclipse IDE or Netbeans IDE. Brief description of the necessary external systems / libraries is presented in Table 1.
Table 1. External system/libraries.
| Name | Purpose |
|---|---|
| Axis | SOA implementation |
| sesame | RDF support |
| Log4j | Tests in distributed environment |
7. Build, work and exploitation environments
The FOAFRealm system is deployed in JeromeDL a digital library with semantics. Both systems are deployed as Jakarta Tomcat web modules. It is possible that several instances of those systems collaborate in geographical distributed environment. In addition, federated systems allow to utilize Single Sign-On feature. Therefore, there is no need for user to have more than one account in order to log into one of federated systems.
8. Functional specyfication
Application will provide functionality described below
One of the most interesting feature of the system is Single Sign-On support. There is no need to connect to the server where the account was created. If userâ??s profile is stored on any of federated systems based on FOAFRealm profile management component, user can log into the service. If user tries to log on server and his/her account is managed by another server, the registration system performs distributed authentication. Then, the server stores the address of his/her registration server in the local repository. Therefore the efficiency and reasonable speed are kept, even if the operation is performed many times. All operations are performed transparently for the user. If user account does not exist on any of the federated servers, suitable information is displayed. After successful login process, the following functions are available:
- Displaying list of bookmarks.
- Displaying list of friends.
If user selects first option, list of his bookmarks is displayed. User can remove or edit chosen bookmark.
If user selects second option, list of his friends is displayed. User is then able to:
- remove or edit friend’s information
- send message to friend.
On every step user has ability to exit from the application.
To sum up, user can:
- Log into FOAFRealm service utilizing Single Sign-On support. (successfully or not)
- Get list of bookmarks
- Get list of friends
- Manage (remove, edit) bookmarks.
- Manage (remove, edit, add) friends.
- Send message (sms/e-mail) to friend.
9. Unexpected situations (and handling)
Unexpected situations are related to problems with network connection. Brief description is presented in Table 2.
Table 2. Unexpected situations and application actions.
| Cause | Action |
|---|---|
| System could not connect to the network | Application will display suitable message |
| System lost network connection | Application will display suitable message |
| System could not find the server with user’s profile | Application will display suitable message, user will have possibility to correct server address |
| System receives error from SOA layer | Application will display suitable message |
| System could not send a message | Application will display suitable message |
| User batteries are run down | There is no need to do something on the server side |
10. Functional tests and ways of measure the performance
Functional tests will cover all functions mentioned above (see section 8). The tests will check if all of the operations ends successfully and thus the result at the end of the test is the same as expected one. For example in order to test listing bookmarks, tester needs to check if the displayed list is equivalent to the one stored on the server. For the purpose of testing of bookmarks removing, tester will check if bookmark is really removed from data storage, etc. Full list of application functions and correct behaviour is presented in Table 3.
Table 3. Correct application behaviour
| Function | Correct behaviour |
|---|---|
| Log into FOAFRealm service. | If user passed correct credentials application should log the user in. Otherwise suitable information should be displayed. |
| Get list of bookmarks | Application should display full bookmarks list. |
| Get list of friends | Application should display full friends list. |
| Manage (remove, edit) bookmarks. | Changes made by the user should cause changes to the data storage. |
| Manage (remove, edit, add) friends. | Changes made by the user should cause changes to the data storage. |
| Send message (sms/e-mail) to a friend. | The friend should receive the message. |
Performance measures will be done in the real environment. We do not have any requirements with regard to speed, athough they should meet the widely addopted accessibility stadards [2]. The most important issues are correct results and a stable application. At the end of the whole development process, we will check both mentioned aspects.



