SlideShare una empresa de Scribd logo
1 de 43
Descargar para leer sin conexión
Development and integration of an awareness applications manager into ASTRA




              Development and integration of an awareness
                   applications manager into ASTRA
                         Presentaci´n de Proyecto de Fin de Carrera
                                   o


                                          David Rozas Domingo


                                        Tutoras:
                    Soto Montalvo (Universidad Rey Juan Carlos)
                  Monica Divitini (Norges Teknisk-Naturvitenskapelige
                                      Universitet)
Development and integration of an awareness applications manager into ASTRA




       1 Introduction
       2 Objectives
       3 Methodology & involved technologies
              Methodology
              Involved technologies
       4    Design
              RepositoryManager
              TagManagerBackEnd
              TagManagerNode
              ApplicationManager
       5    Implementation
              Search engine
              Application adaptation & rules description creation
       6    Testing
              Search engine testing (similarity)
       7    Demonstration
       8    Coordination
       9    Conclusions & future work
Development and integration of an awareness applications manager into ASTRA
  Introduction




What is ASTRA? - The big picture

    ASTRA: Awareness Services and Systems -
    Towards Theory and Realization.
    Researching awareness systems and services
    that are used for social purposes.
    Computer-mediated communication systems
    that help individuals or groups build and
    maintain a peripheral awareness of each
    other.
    They offer low effort and non-intrusive
    communication.
    Organizations involved: CTI, Telenor,
    Philips, NTNU, etc.
Development and integration of an awareness applications manager into ASTRA
  Introduction




Some key concepts
                 ASTRA Application: transform the services provided by the
                 system into awareness applications. Two types:
                      Nimbus: to make available awareness information to other
                      users.
                      Focus: to decide what information we are interested in and in
                      which way we want to receive it.
Development and integration of an awareness applications manager into ASTRA
  Introduction




ASTRA applications example: video
Development and integration of an awareness applications manager into ASTRA
  Introduction




                 Idea: creation and integration of a system to manage the
                 mentioned awareness applications, including functionalities for
                 sharing, tagging, locating, appropriating and adapting them.
                 Taking into account the concerns about privacy in terms of
                 visibility.
Development and integration of an awareness applications manager into ASTRA
  Objectives




Objectives

               Create a main repository for applications, where the users can
               browse, share and retrieve them. Taking into account:
                      Flexible sharing process: choosing rules and communities.
                      Application adaptation during the retrieval process.
                      Changes needed as transparent as possible to the user
                      Add a mechanism to allow searching applications: by different
                      criteria (tags, description, type, etc.) and by recommendation
                      based on the similarity with respect to a local application.
               Create a system which allows the users to tag the
               applications. Taking into account different scopes:
                      Private tags.
                      Community tags.
                      Public tags.
Development and integration of an awareness applications manager into ASTRA
  Objectives




Objectives




               Create a GUI which allows the user to carry out these
               operations. Taking into account:
                      The GUI has to be connected with the rest of systems in a
                      loose coupling way.
                      It has to be intuitive.
                      It has to be extensible, so other systems can be connected to it
                      in the future.
Development and integration of an awareness applications manager into ASTRA
  Methodology & involved technologies
     Methodology


Methodology

              Agile software development methodology: iterative
              development, frequent inspection and adaptation,
              self-organization, etc.
              Following a spiral model.
              Fits properly with the researching nature of the project and
              the fact that new requirements arise continuously.

                   Iteration            Requirements                     Affected components
                          1    Share and retrieve applications    RepositoryManager & PHP EUT tools
                          2               Tagging                TagManagerNode & TagManagerBackEnd
                          3        Searching capabilities                 RepositoryManager,
                                   & tagging extensions          TagManagerNode & TagManagerBackEnd
                          4                 GUI                          ApplicationManager


                                   Table: Iterations during the project
Development and integration of an awareness applications manager into ASTRA
  Methodology & involved technologies
     Involved technologies


Involved technologies



              SOA: Service Oriented Architecture.
              Paradigm for organizing and utilizing distributed capabilities
              Resources on a network are made available as independent
              services that can be accessed without knowledge of their
              underlying platform implementation
              SOAP is a lightweight protocol for exchanging structured
              information in a decentralized, distributed environment. The
              implementation we have used is Apache Axis (open source).
Development and integration of an awareness applications manager into ASTRA
  Methodology & involved technologies
     Involved technologies


ASTRA SOA


              The backbone of ASTRA: the platform that offers all the
              services (awareness, ontologies, the ones developed for this
              project, . . . )
              They are grouped into two subsystems: ASTRA Node and
              ASTRA Backend (Client-Server model).
              Therefore it is important to distinguish between the local and
              remote nature connection when consuming other bundles
              services: limitations in the type of objects, problems with the
              network, etc.
Development and integration of an awareness applications manager into ASTRA
  Methodology & involved technologies
     Involved technologies




      ASTRA SOA bundles’ services used in this project:
              UserManager (Backend): Manage users, their profiles and
              their identities.
              CommunityManager (Backend): Connect virtual community
              representations in within which users can share awareness
              information.
              AwarenessManager (Nodes): Connection between low level
              user-system interaction and the high level concepts related to
              them (i.e.: rules engine kernel).
              AwarenessApplicationManager (Nodes): Store and
              manage local awareness applications.
Development and integration of an awareness applications manager into ASTRA
  Methodology & involved technologies
     Involved technologies




              OntologyManager (Nodes): Manage, look-up and extend
              ontologies. It is executed in the Nodes.
              PersistencyManager (Both): Storage functionalities.
              RemoteFrameworkManager (Both): Facilities to consume
              remote bundles services.
              EventsManager (Both): Communicate events between
              bundles.
Development and integration of an awareness applications manager into ASTRA
  Methodology & involved technologies
     Involved technologies


OSGi

              OSGi (Open Services Gateway initiative) is a flexible
              framework, which provides a standardized environment for
              service deployment and operation.
              The components (bundles) can be remotely installed, started,
              stopped, updated and uninstalled without requiring a reboot.
              It is a collaborative environment: bundles run in the same VM
              and can actually share code.
              It enforces a clean service oriented design approach for
              ASTRA, with a clear distinction between interfaces and
              implementation.
              We used OSGi-Knoplerfish implementation (BSD style
              license).
Development and integration of an awareness applications manager into ASTRA
  Methodology & involved technologies
     Involved technologies


Lucene



              Apache Lucene is an open source information retrieval library.
              It is just an indexing and search library, not an application.
              It allowed us to create a search engine integrated in one of the
              bundles to offer searching capabilities in it.
              It is open source, it has a great performance, it is
              cross-platform, easily to extend, etc.
Development and integration of an awareness applications manager into ASTRA
  Design




Design

      The functionality was divided into the following components
      (bundles):

    RepositoryManager: share, retrieve,
    store and search applications.
    TagManagerBackEnd: manage public
    and community tags.
    TagManagerNode: manage private
    tags.
    ApplicationManager: interaction
    with the user and connection with the
    proper bundles to satisfy his requests.
Development and integration of an awareness applications manager into ASTRA
  Design
     RepositoryManager


RepositoryManager


              One of the key pieces:
                      Offer services to share applications.
                      Offer services to retrieve applications.
                      Offer services to search applications by criteria (description,
                      tags, type or any)
                      Offer services to search applications by similarity (with respect
                      to a local application).
                      Storage of shared applications.
                      Functionalities to adapt the application.
                      etc.
              It is executed in the Backend.
Development and integration of an awareness applications manager into ASTRA
   Design
      RepositoryManager


Connection with other bundles:
     CommunityManager: retrieve
     information about relationship
     between users, communities &
     applications. Ex.: assure
     visibility.
     TagManagerBackEnd: analyze
     tags to create search engine
     index.
     EventsManager: keep track of
     events in TMBE. Ex.: search
     engine index updated
     dynamically.
     PersistencyManager: store
     data in the DB.
Development and integration of an awareness applications manager into ASTRA
  Design
     RepositoryManager
Development and integration of an awareness applications manager into ASTRA
  Design
     RepositoryManager



      Storage in DB:




      + a synchronized copy in local memory to increase retrieving
      operations performance (drawback: duplicated create/delete
      operations).
Development and integration of an awareness applications manager into ASTRA
  Design
     TagManagerBackEnd


TagManagerBackEnd




              Offer services to add and delete public and community tags.
              Offer services to retrieve those tags in different and flexible
              ways: by visibility, by communities, only public ones, etc.
              It is executed in the Backend.
Development and integration of an awareness applications manager into ASTRA
   Design
      TagManagerBackEnd




Connection with other bundles:
     CommunityManager: retrieve
     information about relationship
     between users, communities &
     tags. Ex.: assure visibility.
     EventsManager: give feedback
     of the events.
     PersistencyManager: store
     data in the DB.
Development and integration of an awareness applications manager into ASTRA
  Design
     TagManagerBackEnd
Development and integration of an awareness applications manager into ASTRA
  Design
     TagManagerNode


TagManagerNode




    Offer services to add and delete
    private tags.
    Offer services to retrieve those
    tags in different and flexible
    ways.
    It is executed in the Nodes.
Development and integration of an awareness applications manager into ASTRA
  Design
     ApplicationManager


ApplicationManager



              It is in charge of the interaction with the user by offering an
              intuitive GUI.
              Responsible of the connection with other ASTRA bundles
              services based on that interaction.
              It is executed in the Nodes.
              It is connected with bundles from both edges: Node and
              Backend.
Development and integration of an awareness applications manager into ASTRA
  Design
     ApplicationManager



      Connection with other bundles:
                Local bundles:
                      AwarenessApplicationManager: information about local
                      applications.
                      AwarenessManager: information about local rules.
                      TagManagerNode: to manage the private tags.
                      OntologyManager: to assist the user in the application
                      adaptation process using ontologies1 .
                Remote bundles:
                      UserManager: users authentication.
                      CommunityManager: information about the communities
                      joined by the user.
                      TagManagerBackend: to manage the public and community
                      tags.
                      RepositoryManager: to share and retrieve applications with
                      the rest of the users.

           1
               Future work.
Development and integration of an awareness applications manager into ASTRA
  Design
     ApplicationManager
Development and integration of an awareness applications manager into ASTRA
  Design
     ApplicationManager




       It implements a MVC
       (Model-View-Controller) pattern, which
       allows us to isolate the business logic from
       the user interface, permitting one to be
       freely modified without affecting the other.
       Some of the classes make use of a singleton
       pattern, that make the class itself
       responsible for keeping track of its sole
       instance, ensuring that no other instance can
       be created.
Development and integration of an awareness applications manager into ASTRA
  Design
     ApplicationManager

              Controller:
                      It is represented by the class
                      ApplicationManagerController (singleton).
                      Keep track of references to user interface components.
                      Provide a set of methods that other components can directly
                      call in their event handler.
              Model:
                      It is represented by the class ApplicationManagerModel
                      (singleton).
                      Manage the references to the rest of the bundles.
                      Work as an “stub container” to make use of the services
                      provided by those.
                      Take care of the session data, i.e.: the user identifier.
              View:
                      It is represented by several classes whose task consist of
                      presenting the information to the user.
                      Includes all the classes which represent the windows (i.e.:
                      MainWindow, LoginWindow, etc.) and all the classes that
                      extend some of the graphical components (i.e.:
                      TreeRenderer).
Development and integration of an awareness applications manager into ASTRA
  Implementation




Implementation




      Many interesting implementation details. . . but we will focus on
      two:
              Search engine implementation (Lucene).
              Application adaptation & rules description creation
              (XML/DOM).
Development and integration of an awareness applications manager into ASTRA
  Implementation
     Search engine


Search engine


      First of all, we need to implement the index:
           From Lucene concepts. . .
                      Document
                      Fields
              . . . to ASTRA concepts:
                      Astra Application
                      some Astra Application attributes (description,type, tags, etc.)
              Type of index: RAMDirectory, more efficient and no need of
              persistence.
Development and integration of an awareness applications manager into ASTRA
  Implementation
     Search engine




And we have to decide the way we perform
the queries:
     Querying by criteria is almost straight:

              Any = keywords in (description,
              type, tags, . . . )
              Description = keywords in
              (description)
              ...
       But in the “search by similarity” case,
       testing was needed. Finally:
              {Public + visible community tags}
              in (description, tags)
Development and integration of an awareness applications manager into ASTRA
  Implementation
     Application adaptation & rules description creation


Application adaptation & rules description creation



       Some are performed by the user:
       choosing rules, changing
       description, etc.
       Some are performed in a
       transparent way:
               It required more analysis.
               I.e.: Modify the ownership of
               the rules internally for certain
               nodes.
               Implemented using DOM.
Development and integration of an awareness applications manager into ASTRA
  Implementation
     Application adaptation & rules description creation


              A similar approach was taken to create a description of the
              rule based on the XML file that represents it.
              I.e.: creating a human readable description for a rule while
              analyzing recursively the tree.
Development and integration of an awareness applications manager into ASTRA
  Testing




Testing

      Testing in different levels:
              Functionalities verification (low and high level): visibility,
              network is down, extreme cases, etc.
              Different OS compatibility: GNU/Linux, Windows XP, etc.
              Preliminary users evaluation (iterations 1 & 2):
                      Performed at NTNU (Trondheim) in December 2008.
                      Users were very positive about the idea of sharing/getting
                      applications, about the notion of community, etc.
                      Very useful for adding new functionalities in iterations 3 & 4:
                      searching by criteria, searching by similarity, application
                      adaptation, etc.
              New user evaluation (including iterations 3 & 4) is scheduled
              in October 2009.
Development and integration of an awareness applications manager into ASTRA
  Testing
     Search engine testing (similarity)


Ex.: search engine testing (similarity)

               Set of 25 applications, with a description and a set of 4 tags
               for each of them.
               Divided into 5 groups: “Sport”, “Social”, “Feelings”,
               “Cultural” and “Location”.
               We assumed an application can only belong to one of this
               groups to make the measuring process simpler, but this
               introduces an error, since the way an application is
               categorized is subjective and not exclusive.
               We calculate precision and recall.


                precision = (Relevant docs/Total retrieved docs) ∗ 100
                  recall = (Relevant docs/Existing relevant docs) ∗ 100
Development and integration of an awareness applications manager into ASTRA
  Testing
     Search engine testing (similarity)




       Expected values:
                                                                  Group       RD    RDR   ERD   Precision   Recall
       p = 40%, r = 80%.                                         Sport         9     5     5    55.56%      100%
                                                                 Social       10     5     5     50%        100%
       Results were quite positive:                             Feelings      10     5     5     50%        100%
                                                                Cultural       7     4     5    57.14%       80%
       p = 52%, r = 96% . . . but this                          Location      10     5     5     50%        100%
       is based on artificial data.                               Average      9.2    5     5    52.54%      96%

       Useful to check design decisions
                                        Table: Summary of the results for
       point to the right way and to
                                        search by similarity evaluation
       set guidelines for October’s
       evaluation.
Development and integration of an awareness applications manager into ASTRA
  Demonstration




Demonstration
Development and integration of an awareness applications manager into ASTRA
  Coordination




Coordination
      The main mechanisms to coordinate with the rest of the teams
      were:
              F2F: F2F meetings with members of NTNU and Telenor
              teams during my stay in Trondheim (Norway) and with my
              supervisor in Madrid. It was the richest communication
              mechanism, and it was specially interesting for the
              requirements elicitation processes.
              Teleconferences: Weekly teleconference meetings with NTNU,
              Telenor and CTI members. Very useful mechanism to
              coordinate the work in team, to discuss the state of the
              project, to share ideas, etc.
              Wiki: Wiki website (http://www.astra-project.net/wiki) to
              coordinate the bundles development process and to create
              documentation.
Development and integration of an awareness applications manager into ASTRA
  Coordination




              Subversion: The project code is hosted in a SVN server at
              NTNU (http://basar.idi.ntnu.no/svn/astra/). Very useful to
              coordinate the development process, since it allows us to
              avoid and resolve possible code conflicts, and to have revisions
              for every code updating.
              E-mail: Useful to coordinate with all the members of the team
              in an asynchronous way. For instance, it has been used to
              report bugs.
Development and integration of an awareness applications manager into ASTRA
  Conclusions & future work




Conclusions & future work
              Achieved goals:
                      Successful development and integration of a set of bundles to
                      manage awareness applications into ASTRA, including
                      functionalities for sharing, tagging, locating, appropriating and
                      adapting the applications.
                      New GUI, which demonstrates the flexibility of ASTRA SOA.
                      Stressing its extensibility, so new functionalities can be easily
                      added.
              Future work:
                      Adjust searching by similarity parameters, once we have real
                      users data.
                      Use of ontologies for helping in the application adaptation
                      process, once OntologyManager services are implemented
                      (ApplicationManager is already prepared).
                      Extend the GUI: new browsing capabilities, join communities,
                      rules edition, etc.
Development and integration of an awareness applications manager into ASTRA
  Conclusions & future work




              Contribution & Personal evaluation:
                      I started my contribution to ASTRA as part of my summer job
                      for NTNU during the summer of 2008: iterations 1 & 2.
                      I resumed my collaboration with ASTRA project in February
                      2009, working from Madrid: iterations 3 & 4.
                      I came back to Norway to work in ASTRA during one month
                      and a half during the summer: very useful to elicit and
                      implement last requirements.
                      It has been a very enriching experience: opportunity of working
                      in a real researching project collaborating with teams from
                      several countries, in technological terms, etc.
Development and integration of an awareness applications manager into ASTRA
  Conclusions & future work

Más contenido relacionado

Similar a Development and Integration of an Awareness Applications Manager into ASTRA

BasavarajPatil_Java_Agile_PM
BasavarajPatil_Java_Agile_PMBasavarajPatil_Java_Agile_PM
BasavarajPatil_Java_Agile_PMBasavaraj Patil
 
Evaluvation of Applying Knowledge Management System Architecture in Software ...
Evaluvation of Applying Knowledge Management System Architecture in Software ...Evaluvation of Applying Knowledge Management System Architecture in Software ...
Evaluvation of Applying Knowledge Management System Architecture in Software ...IOSR Journals
 
RCAMM_IEEE_RAICS_2013_6745453
RCAMM_IEEE_RAICS_2013_6745453RCAMM_IEEE_RAICS_2013_6745453
RCAMM_IEEE_RAICS_2013_6745453Shekhar Parkhi
 
Software_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxSoftware_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxArifaMehreen1
 
2nd ARCADIA project newsletter
2nd ARCADIA project newsletter2nd ARCADIA project newsletter
2nd ARCADIA project newsletterEU ARCADIA PROJECT
 
Leveraging software-reuse-with-knowledge-management-in-software-development
Leveraging software-reuse-with-knowledge-management-in-software-developmentLeveraging software-reuse-with-knowledge-management-in-software-development
Leveraging software-reuse-with-knowledge-management-in-software-developmentDimitris Panagiotou
 
Software Architecture for Robotics
Software Architecture for RoboticsSoftware Architecture for Robotics
Software Architecture for RoboticsLorran Pegoretti
 
from-analysis-to-design-the-art-of-object-oriented-programming-2023-6-5-5-17-...
from-analysis-to-design-the-art-of-object-oriented-programming-2023-6-5-5-17-...from-analysis-to-design-the-art-of-object-oriented-programming-2023-6-5-5-17-...
from-analysis-to-design-the-art-of-object-oriented-programming-2023-6-5-5-17-...Data & Analytics Magazin
 
Accelerating Application Development in the Internet of Things using Model-dr...
Accelerating Application Development in the Internet of Things using Model-dr...Accelerating Application Development in the Internet of Things using Model-dr...
Accelerating Application Development in the Internet of Things using Model-dr...Pankesh Patel
 
The Architecture Of Software Defined Radios Essay
The Architecture Of Software Defined Radios EssayThe Architecture Of Software Defined Radios Essay
The Architecture Of Software Defined Radios EssayDivya Watson
 
AA using WS vanZyl 2002-05-06
AA using WS vanZyl 2002-05-06AA using WS vanZyl 2002-05-06
AA using WS vanZyl 2002-05-06Jay van Zyl
 
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEMARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEMijfcstjournal
 
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEMARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEMijfcstjournal
 
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEMARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEMijfcstjournal
 
ALIVE (Newsfromthefront 2010)
ALIVE (Newsfromthefront 2010)ALIVE (Newsfromthefront 2010)
ALIVE (Newsfromthefront 2010)STI International
 

Similar a Development and Integration of an Awareness Applications Manager into ASTRA (20)

BasavarajPatil_Java_Agile_PM
BasavarajPatil_Java_Agile_PMBasavarajPatil_Java_Agile_PM
BasavarajPatil_Java_Agile_PM
 
Evaluvation of Applying Knowledge Management System Architecture in Software ...
Evaluvation of Applying Knowledge Management System Architecture in Software ...Evaluvation of Applying Knowledge Management System Architecture in Software ...
Evaluvation of Applying Knowledge Management System Architecture in Software ...
 
RCAMM_IEEE_RAICS_2013_6745453
RCAMM_IEEE_RAICS_2013_6745453RCAMM_IEEE_RAICS_2013_6745453
RCAMM_IEEE_RAICS_2013_6745453
 
robocity2013-jderobot
robocity2013-jderobotrobocity2013-jderobot
robocity2013-jderobot
 
Software_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptxSoftware_Engineering_Presentation (1).pptx
Software_Engineering_Presentation (1).pptx
 
Collaborative technologies
Collaborative technologiesCollaborative technologies
Collaborative technologies
 
81-T48
81-T4881-T48
81-T48
 
2nd ARCADIA project newsletter
2nd ARCADIA project newsletter2nd ARCADIA project newsletter
2nd ARCADIA project newsletter
 
Leveraging software-reuse-with-knowledge-management-in-software-development
Leveraging software-reuse-with-knowledge-management-in-software-developmentLeveraging software-reuse-with-knowledge-management-in-software-development
Leveraging software-reuse-with-knowledge-management-in-software-development
 
Internship Report
Internship ReportInternship Report
Internship Report
 
Software Architecture for Robotics
Software Architecture for RoboticsSoftware Architecture for Robotics
Software Architecture for Robotics
 
from-analysis-to-design-the-art-of-object-oriented-programming-2023-6-5-5-17-...
from-analysis-to-design-the-art-of-object-oriented-programming-2023-6-5-5-17-...from-analysis-to-design-the-art-of-object-oriented-programming-2023-6-5-5-17-...
from-analysis-to-design-the-art-of-object-oriented-programming-2023-6-5-5-17-...
 
Accelerating Application Development in the Internet of Things using Model-dr...
Accelerating Application Development in the Internet of Things using Model-dr...Accelerating Application Development in the Internet of Things using Model-dr...
Accelerating Application Development in the Internet of Things using Model-dr...
 
10.1.1.107.2618
10.1.1.107.261810.1.1.107.2618
10.1.1.107.2618
 
The Architecture Of Software Defined Radios Essay
The Architecture Of Software Defined Radios EssayThe Architecture Of Software Defined Radios Essay
The Architecture Of Software Defined Radios Essay
 
AA using WS vanZyl 2002-05-06
AA using WS vanZyl 2002-05-06AA using WS vanZyl 2002-05-06
AA using WS vanZyl 2002-05-06
 
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEMARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
 
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEMARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
 
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEMARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
ARCHITECTURAL FRAMEWORK FOR DEVELOPING COMPONENT BASED GIS SYSTEM
 
ALIVE (Newsfromthefront 2010)
ALIVE (Newsfromthefront 2010)ALIVE (Newsfromthefront 2010)
ALIVE (Newsfromthefront 2010)
 

Más de David Rozas

When Ostrom Meets Blockchain: Exploring the Potentials of Blockchain for Com...
 When Ostrom Meets Blockchain: Exploring the Potentials of Blockchain for Com... When Ostrom Meets Blockchain: Exploring the Potentials of Blockchain for Com...
When Ostrom Meets Blockchain: Exploring the Potentials of Blockchain for Com...David Rozas
 
When Ostrom Meets Blockchain: Exploring the Potentials of Blockchain for Comm...
When Ostrom Meets Blockchain: Exploring the Potentials of Blockchain for Comm...When Ostrom Meets Blockchain: Exploring the Potentials of Blockchain for Comm...
When Ostrom Meets Blockchain: Exploring the Potentials of Blockchain for Comm...David Rozas
 
Cuando Ostrom se encuentra con blockchain: explorando las potencialidades de ...
Cuando Ostrom se encuentra con blockchain: explorando las potencialidades de ...Cuando Ostrom se encuentra con blockchain: explorando las potencialidades de ...
Cuando Ostrom se encuentra con blockchain: explorando las potencialidades de ...David Rozas
 
When Ostrom Meets Blockchain: Exploring the Potentials of Blockchain for Comm...
When Ostrom Meets Blockchain: Exploring the Potentials of Blockchain for Comm...When Ostrom Meets Blockchain: Exploring the Potentials of Blockchain for Comm...
When Ostrom Meets Blockchain: Exploring the Potentials of Blockchain for Comm...David Rozas
 
Ostrom’s crypto-principles? Towards a commons-based approach for the use of B...
Ostrom’s crypto-principles? Towards a commons-based approach for the use of B...Ostrom’s crypto-principles? Towards a commons-based approach for the use of B...
Ostrom’s crypto-principles? Towards a commons-based approach for the use of B...David Rozas
 
Self-organisation in Commons-Based Peer Production. Drupal: “the drop is alwa...
Self-organisation in Commons-Based Peer Production. Drupal: “the drop is alwa...Self-organisation in Commons-Based Peer Production. Drupal: “the drop is alwa...
Self-organisation in Commons-Based Peer Production. Drupal: “the drop is alwa...David Rozas
 
Self-organisation in Commons-Based Peer Production. Drupal: “the drop is alwa...
Self-organisation in Commons-Based Peer Production. Drupal: “the drop is alwa...Self-organisation in Commons-Based Peer Production. Drupal: “the drop is alwa...
Self-organisation in Commons-Based Peer Production. Drupal: “the drop is alwa...David Rozas
 
Drupal: the drop is always moving. Autogestión y gobernanza de infraestructur...
Drupal: the drop is always moving. Autogestión y gobernanza de infraestructur...Drupal: the drop is always moving. Autogestión y gobernanza de infraestructur...
Drupal: the drop is always moving. Autogestión y gobernanza de infraestructur...David Rozas
 
Drupal: "come for the software, stay for the community". Conociendo la comunidad
Drupal: "come for the software, stay for the community". Conociendo la comunidadDrupal: "come for the software, stay for the community". Conociendo la comunidad
Drupal: "come for the software, stay for the community". Conociendo la comunidadDavid Rozas
 
Talk is silver, code is gold? Contribution beyond source code in Free/Libre O...
Talk is silver, code is gold? Contribution beyond source code in Free/Libre O...Talk is silver, code is gold? Contribution beyond source code in Free/Libre O...
Talk is silver, code is gold? Contribution beyond source code in Free/Libre O...David Rozas
 
Quantitative Methods II (#SOC2031). Seminar #11: Secondary analysis. Big data...
Quantitative Methods II (#SOC2031). Seminar #11: Secondary analysis. Big data...Quantitative Methods II (#SOC2031). Seminar #11: Secondary analysis. Big data...
Quantitative Methods II (#SOC2031). Seminar #11: Secondary analysis. Big data...David Rozas
 
Talk is silver, code is gold? Contribution beyond source code in Free/Libre O...
Talk is silver, code is gold? Contribution beyond source code in Free/Libre O...Talk is silver, code is gold? Contribution beyond source code in Free/Libre O...
Talk is silver, code is gold? Contribution beyond source code in Free/Libre O...David Rozas
 
Talk is silver, code is gold? Contribution beyond source code in Free/Libre O...
Talk is silver, code is gold? Contribution beyond source code in Free/Libre O...Talk is silver, code is gold? Contribution beyond source code in Free/Libre O...
Talk is silver, code is gold? Contribution beyond source code in Free/Libre O...David Rozas
 
Lightning talk - Affective labour and the notion of contribution in FLOSS com...
Lightning talk - Affective labour and the notion of contribution in FLOSS com...Lightning talk - Affective labour and the notion of contribution in FLOSS com...
Lightning talk - Affective labour and the notion of contribution in FLOSS com...David Rozas
 
Directori català de l’economia col·laborativa
Directori català de l’economia col·laborativaDirectori català de l’economia col·laborativa
Directori català de l’economia col·laborativaDavid Rozas
 
Survey Research (SOC2029). Seminar 10: non-response and missing data
Survey Research (SOC2029). Seminar 10: non-response and missing dataSurvey Research (SOC2029). Seminar 10: non-response and missing data
Survey Research (SOC2029). Seminar 10: non-response and missing dataDavid Rozas
 
Survey Research (SOC2029). Seminar 9: designing a self-completion questionnaire
Survey Research (SOC2029). Seminar 9: designing a self-completion questionnaireSurvey Research (SOC2029). Seminar 9: designing a self-completion questionnaire
Survey Research (SOC2029). Seminar 9: designing a self-completion questionnaireDavid Rozas
 
Survey Research (SOC2029). Seminar 8: formulating a research question
Survey Research (SOC2029). Seminar 8: formulating a research questionSurvey Research (SOC2029). Seminar 8: formulating a research question
Survey Research (SOC2029). Seminar 8: formulating a research questionDavid Rozas
 
Survey Research (SOC2029). Seminar 7: ethics in survey research
Survey Research (SOC2029). Seminar 7: ethics in survey researchSurvey Research (SOC2029). Seminar 7: ethics in survey research
Survey Research (SOC2029). Seminar 7: ethics in survey researchDavid Rozas
 
Survey Research (SOC2029). Seminar 6: questionnaire design (II)
Survey Research (SOC2029). Seminar 6: questionnaire design (II) Survey Research (SOC2029). Seminar 6: questionnaire design (II)
Survey Research (SOC2029). Seminar 6: questionnaire design (II) David Rozas
 

Más de David Rozas (20)

When Ostrom Meets Blockchain: Exploring the Potentials of Blockchain for Com...
 When Ostrom Meets Blockchain: Exploring the Potentials of Blockchain for Com... When Ostrom Meets Blockchain: Exploring the Potentials of Blockchain for Com...
When Ostrom Meets Blockchain: Exploring the Potentials of Blockchain for Com...
 
When Ostrom Meets Blockchain: Exploring the Potentials of Blockchain for Comm...
When Ostrom Meets Blockchain: Exploring the Potentials of Blockchain for Comm...When Ostrom Meets Blockchain: Exploring the Potentials of Blockchain for Comm...
When Ostrom Meets Blockchain: Exploring the Potentials of Blockchain for Comm...
 
Cuando Ostrom se encuentra con blockchain: explorando las potencialidades de ...
Cuando Ostrom se encuentra con blockchain: explorando las potencialidades de ...Cuando Ostrom se encuentra con blockchain: explorando las potencialidades de ...
Cuando Ostrom se encuentra con blockchain: explorando las potencialidades de ...
 
When Ostrom Meets Blockchain: Exploring the Potentials of Blockchain for Comm...
When Ostrom Meets Blockchain: Exploring the Potentials of Blockchain for Comm...When Ostrom Meets Blockchain: Exploring the Potentials of Blockchain for Comm...
When Ostrom Meets Blockchain: Exploring the Potentials of Blockchain for Comm...
 
Ostrom’s crypto-principles? Towards a commons-based approach for the use of B...
Ostrom’s crypto-principles? Towards a commons-based approach for the use of B...Ostrom’s crypto-principles? Towards a commons-based approach for the use of B...
Ostrom’s crypto-principles? Towards a commons-based approach for the use of B...
 
Self-organisation in Commons-Based Peer Production. Drupal: “the drop is alwa...
Self-organisation in Commons-Based Peer Production. Drupal: “the drop is alwa...Self-organisation in Commons-Based Peer Production. Drupal: “the drop is alwa...
Self-organisation in Commons-Based Peer Production. Drupal: “the drop is alwa...
 
Self-organisation in Commons-Based Peer Production. Drupal: “the drop is alwa...
Self-organisation in Commons-Based Peer Production. Drupal: “the drop is alwa...Self-organisation in Commons-Based Peer Production. Drupal: “the drop is alwa...
Self-organisation in Commons-Based Peer Production. Drupal: “the drop is alwa...
 
Drupal: the drop is always moving. Autogestión y gobernanza de infraestructur...
Drupal: the drop is always moving. Autogestión y gobernanza de infraestructur...Drupal: the drop is always moving. Autogestión y gobernanza de infraestructur...
Drupal: the drop is always moving. Autogestión y gobernanza de infraestructur...
 
Drupal: "come for the software, stay for the community". Conociendo la comunidad
Drupal: "come for the software, stay for the community". Conociendo la comunidadDrupal: "come for the software, stay for the community". Conociendo la comunidad
Drupal: "come for the software, stay for the community". Conociendo la comunidad
 
Talk is silver, code is gold? Contribution beyond source code in Free/Libre O...
Talk is silver, code is gold? Contribution beyond source code in Free/Libre O...Talk is silver, code is gold? Contribution beyond source code in Free/Libre O...
Talk is silver, code is gold? Contribution beyond source code in Free/Libre O...
 
Quantitative Methods II (#SOC2031). Seminar #11: Secondary analysis. Big data...
Quantitative Methods II (#SOC2031). Seminar #11: Secondary analysis. Big data...Quantitative Methods II (#SOC2031). Seminar #11: Secondary analysis. Big data...
Quantitative Methods II (#SOC2031). Seminar #11: Secondary analysis. Big data...
 
Talk is silver, code is gold? Contribution beyond source code in Free/Libre O...
Talk is silver, code is gold? Contribution beyond source code in Free/Libre O...Talk is silver, code is gold? Contribution beyond source code in Free/Libre O...
Talk is silver, code is gold? Contribution beyond source code in Free/Libre O...
 
Talk is silver, code is gold? Contribution beyond source code in Free/Libre O...
Talk is silver, code is gold? Contribution beyond source code in Free/Libre O...Talk is silver, code is gold? Contribution beyond source code in Free/Libre O...
Talk is silver, code is gold? Contribution beyond source code in Free/Libre O...
 
Lightning talk - Affective labour and the notion of contribution in FLOSS com...
Lightning talk - Affective labour and the notion of contribution in FLOSS com...Lightning talk - Affective labour and the notion of contribution in FLOSS com...
Lightning talk - Affective labour and the notion of contribution in FLOSS com...
 
Directori català de l’economia col·laborativa
Directori català de l’economia col·laborativaDirectori català de l’economia col·laborativa
Directori català de l’economia col·laborativa
 
Survey Research (SOC2029). Seminar 10: non-response and missing data
Survey Research (SOC2029). Seminar 10: non-response and missing dataSurvey Research (SOC2029). Seminar 10: non-response and missing data
Survey Research (SOC2029). Seminar 10: non-response and missing data
 
Survey Research (SOC2029). Seminar 9: designing a self-completion questionnaire
Survey Research (SOC2029). Seminar 9: designing a self-completion questionnaireSurvey Research (SOC2029). Seminar 9: designing a self-completion questionnaire
Survey Research (SOC2029). Seminar 9: designing a self-completion questionnaire
 
Survey Research (SOC2029). Seminar 8: formulating a research question
Survey Research (SOC2029). Seminar 8: formulating a research questionSurvey Research (SOC2029). Seminar 8: formulating a research question
Survey Research (SOC2029). Seminar 8: formulating a research question
 
Survey Research (SOC2029). Seminar 7: ethics in survey research
Survey Research (SOC2029). Seminar 7: ethics in survey researchSurvey Research (SOC2029). Seminar 7: ethics in survey research
Survey Research (SOC2029). Seminar 7: ethics in survey research
 
Survey Research (SOC2029). Seminar 6: questionnaire design (II)
Survey Research (SOC2029). Seminar 6: questionnaire design (II) Survey Research (SOC2029). Seminar 6: questionnaire design (II)
Survey Research (SOC2029). Seminar 6: questionnaire design (II)
 

Último

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 

Último (20)

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 

Development and Integration of an Awareness Applications Manager into ASTRA

  • 1. Development and integration of an awareness applications manager into ASTRA Development and integration of an awareness applications manager into ASTRA Presentaci´n de Proyecto de Fin de Carrera o David Rozas Domingo Tutoras: Soto Montalvo (Universidad Rey Juan Carlos) Monica Divitini (Norges Teknisk-Naturvitenskapelige Universitet)
  • 2. Development and integration of an awareness applications manager into ASTRA 1 Introduction 2 Objectives 3 Methodology & involved technologies Methodology Involved technologies 4 Design RepositoryManager TagManagerBackEnd TagManagerNode ApplicationManager 5 Implementation Search engine Application adaptation & rules description creation 6 Testing Search engine testing (similarity) 7 Demonstration 8 Coordination 9 Conclusions & future work
  • 3. Development and integration of an awareness applications manager into ASTRA Introduction What is ASTRA? - The big picture ASTRA: Awareness Services and Systems - Towards Theory and Realization. Researching awareness systems and services that are used for social purposes. Computer-mediated communication systems that help individuals or groups build and maintain a peripheral awareness of each other. They offer low effort and non-intrusive communication. Organizations involved: CTI, Telenor, Philips, NTNU, etc.
  • 4. Development and integration of an awareness applications manager into ASTRA Introduction Some key concepts ASTRA Application: transform the services provided by the system into awareness applications. Two types: Nimbus: to make available awareness information to other users. Focus: to decide what information we are interested in and in which way we want to receive it.
  • 5. Development and integration of an awareness applications manager into ASTRA Introduction ASTRA applications example: video
  • 6. Development and integration of an awareness applications manager into ASTRA Introduction Idea: creation and integration of a system to manage the mentioned awareness applications, including functionalities for sharing, tagging, locating, appropriating and adapting them. Taking into account the concerns about privacy in terms of visibility.
  • 7. Development and integration of an awareness applications manager into ASTRA Objectives Objectives Create a main repository for applications, where the users can browse, share and retrieve them. Taking into account: Flexible sharing process: choosing rules and communities. Application adaptation during the retrieval process. Changes needed as transparent as possible to the user Add a mechanism to allow searching applications: by different criteria (tags, description, type, etc.) and by recommendation based on the similarity with respect to a local application. Create a system which allows the users to tag the applications. Taking into account different scopes: Private tags. Community tags. Public tags.
  • 8. Development and integration of an awareness applications manager into ASTRA Objectives Objectives Create a GUI which allows the user to carry out these operations. Taking into account: The GUI has to be connected with the rest of systems in a loose coupling way. It has to be intuitive. It has to be extensible, so other systems can be connected to it in the future.
  • 9. Development and integration of an awareness applications manager into ASTRA Methodology & involved technologies Methodology Methodology Agile software development methodology: iterative development, frequent inspection and adaptation, self-organization, etc. Following a spiral model. Fits properly with the researching nature of the project and the fact that new requirements arise continuously. Iteration Requirements Affected components 1 Share and retrieve applications RepositoryManager & PHP EUT tools 2 Tagging TagManagerNode & TagManagerBackEnd 3 Searching capabilities RepositoryManager, & tagging extensions TagManagerNode & TagManagerBackEnd 4 GUI ApplicationManager Table: Iterations during the project
  • 10. Development and integration of an awareness applications manager into ASTRA Methodology & involved technologies Involved technologies Involved technologies SOA: Service Oriented Architecture. Paradigm for organizing and utilizing distributed capabilities Resources on a network are made available as independent services that can be accessed without knowledge of their underlying platform implementation SOAP is a lightweight protocol for exchanging structured information in a decentralized, distributed environment. The implementation we have used is Apache Axis (open source).
  • 11. Development and integration of an awareness applications manager into ASTRA Methodology & involved technologies Involved technologies ASTRA SOA The backbone of ASTRA: the platform that offers all the services (awareness, ontologies, the ones developed for this project, . . . ) They are grouped into two subsystems: ASTRA Node and ASTRA Backend (Client-Server model). Therefore it is important to distinguish between the local and remote nature connection when consuming other bundles services: limitations in the type of objects, problems with the network, etc.
  • 12. Development and integration of an awareness applications manager into ASTRA Methodology & involved technologies Involved technologies ASTRA SOA bundles’ services used in this project: UserManager (Backend): Manage users, their profiles and their identities. CommunityManager (Backend): Connect virtual community representations in within which users can share awareness information. AwarenessManager (Nodes): Connection between low level user-system interaction and the high level concepts related to them (i.e.: rules engine kernel). AwarenessApplicationManager (Nodes): Store and manage local awareness applications.
  • 13. Development and integration of an awareness applications manager into ASTRA Methodology & involved technologies Involved technologies OntologyManager (Nodes): Manage, look-up and extend ontologies. It is executed in the Nodes. PersistencyManager (Both): Storage functionalities. RemoteFrameworkManager (Both): Facilities to consume remote bundles services. EventsManager (Both): Communicate events between bundles.
  • 14. Development and integration of an awareness applications manager into ASTRA Methodology & involved technologies Involved technologies OSGi OSGi (Open Services Gateway initiative) is a flexible framework, which provides a standardized environment for service deployment and operation. The components (bundles) can be remotely installed, started, stopped, updated and uninstalled without requiring a reboot. It is a collaborative environment: bundles run in the same VM and can actually share code. It enforces a clean service oriented design approach for ASTRA, with a clear distinction between interfaces and implementation. We used OSGi-Knoplerfish implementation (BSD style license).
  • 15. Development and integration of an awareness applications manager into ASTRA Methodology & involved technologies Involved technologies Lucene Apache Lucene is an open source information retrieval library. It is just an indexing and search library, not an application. It allowed us to create a search engine integrated in one of the bundles to offer searching capabilities in it. It is open source, it has a great performance, it is cross-platform, easily to extend, etc.
  • 16. Development and integration of an awareness applications manager into ASTRA Design Design The functionality was divided into the following components (bundles): RepositoryManager: share, retrieve, store and search applications. TagManagerBackEnd: manage public and community tags. TagManagerNode: manage private tags. ApplicationManager: interaction with the user and connection with the proper bundles to satisfy his requests.
  • 17. Development and integration of an awareness applications manager into ASTRA Design RepositoryManager RepositoryManager One of the key pieces: Offer services to share applications. Offer services to retrieve applications. Offer services to search applications by criteria (description, tags, type or any) Offer services to search applications by similarity (with respect to a local application). Storage of shared applications. Functionalities to adapt the application. etc. It is executed in the Backend.
  • 18. Development and integration of an awareness applications manager into ASTRA Design RepositoryManager Connection with other bundles: CommunityManager: retrieve information about relationship between users, communities & applications. Ex.: assure visibility. TagManagerBackEnd: analyze tags to create search engine index. EventsManager: keep track of events in TMBE. Ex.: search engine index updated dynamically. PersistencyManager: store data in the DB.
  • 19. Development and integration of an awareness applications manager into ASTRA Design RepositoryManager
  • 20. Development and integration of an awareness applications manager into ASTRA Design RepositoryManager Storage in DB: + a synchronized copy in local memory to increase retrieving operations performance (drawback: duplicated create/delete operations).
  • 21. Development and integration of an awareness applications manager into ASTRA Design TagManagerBackEnd TagManagerBackEnd Offer services to add and delete public and community tags. Offer services to retrieve those tags in different and flexible ways: by visibility, by communities, only public ones, etc. It is executed in the Backend.
  • 22. Development and integration of an awareness applications manager into ASTRA Design TagManagerBackEnd Connection with other bundles: CommunityManager: retrieve information about relationship between users, communities & tags. Ex.: assure visibility. EventsManager: give feedback of the events. PersistencyManager: store data in the DB.
  • 23. Development and integration of an awareness applications manager into ASTRA Design TagManagerBackEnd
  • 24. Development and integration of an awareness applications manager into ASTRA Design TagManagerNode TagManagerNode Offer services to add and delete private tags. Offer services to retrieve those tags in different and flexible ways. It is executed in the Nodes.
  • 25. Development and integration of an awareness applications manager into ASTRA Design ApplicationManager ApplicationManager It is in charge of the interaction with the user by offering an intuitive GUI. Responsible of the connection with other ASTRA bundles services based on that interaction. It is executed in the Nodes. It is connected with bundles from both edges: Node and Backend.
  • 26. Development and integration of an awareness applications manager into ASTRA Design ApplicationManager Connection with other bundles: Local bundles: AwarenessApplicationManager: information about local applications. AwarenessManager: information about local rules. TagManagerNode: to manage the private tags. OntologyManager: to assist the user in the application adaptation process using ontologies1 . Remote bundles: UserManager: users authentication. CommunityManager: information about the communities joined by the user. TagManagerBackend: to manage the public and community tags. RepositoryManager: to share and retrieve applications with the rest of the users. 1 Future work.
  • 27. Development and integration of an awareness applications manager into ASTRA Design ApplicationManager
  • 28. Development and integration of an awareness applications manager into ASTRA Design ApplicationManager It implements a MVC (Model-View-Controller) pattern, which allows us to isolate the business logic from the user interface, permitting one to be freely modified without affecting the other. Some of the classes make use of a singleton pattern, that make the class itself responsible for keeping track of its sole instance, ensuring that no other instance can be created.
  • 29. Development and integration of an awareness applications manager into ASTRA Design ApplicationManager Controller: It is represented by the class ApplicationManagerController (singleton). Keep track of references to user interface components. Provide a set of methods that other components can directly call in their event handler. Model: It is represented by the class ApplicationManagerModel (singleton). Manage the references to the rest of the bundles. Work as an “stub container” to make use of the services provided by those. Take care of the session data, i.e.: the user identifier. View: It is represented by several classes whose task consist of presenting the information to the user. Includes all the classes which represent the windows (i.e.: MainWindow, LoginWindow, etc.) and all the classes that extend some of the graphical components (i.e.: TreeRenderer).
  • 30. Development and integration of an awareness applications manager into ASTRA Implementation Implementation Many interesting implementation details. . . but we will focus on two: Search engine implementation (Lucene). Application adaptation & rules description creation (XML/DOM).
  • 31. Development and integration of an awareness applications manager into ASTRA Implementation Search engine Search engine First of all, we need to implement the index: From Lucene concepts. . . Document Fields . . . to ASTRA concepts: Astra Application some Astra Application attributes (description,type, tags, etc.) Type of index: RAMDirectory, more efficient and no need of persistence.
  • 32. Development and integration of an awareness applications manager into ASTRA Implementation Search engine And we have to decide the way we perform the queries: Querying by criteria is almost straight: Any = keywords in (description, type, tags, . . . ) Description = keywords in (description) ... But in the “search by similarity” case, testing was needed. Finally: {Public + visible community tags} in (description, tags)
  • 33. Development and integration of an awareness applications manager into ASTRA Implementation Application adaptation & rules description creation Application adaptation & rules description creation Some are performed by the user: choosing rules, changing description, etc. Some are performed in a transparent way: It required more analysis. I.e.: Modify the ownership of the rules internally for certain nodes. Implemented using DOM.
  • 34. Development and integration of an awareness applications manager into ASTRA Implementation Application adaptation & rules description creation A similar approach was taken to create a description of the rule based on the XML file that represents it. I.e.: creating a human readable description for a rule while analyzing recursively the tree.
  • 35. Development and integration of an awareness applications manager into ASTRA Testing Testing Testing in different levels: Functionalities verification (low and high level): visibility, network is down, extreme cases, etc. Different OS compatibility: GNU/Linux, Windows XP, etc. Preliminary users evaluation (iterations 1 & 2): Performed at NTNU (Trondheim) in December 2008. Users were very positive about the idea of sharing/getting applications, about the notion of community, etc. Very useful for adding new functionalities in iterations 3 & 4: searching by criteria, searching by similarity, application adaptation, etc. New user evaluation (including iterations 3 & 4) is scheduled in October 2009.
  • 36. Development and integration of an awareness applications manager into ASTRA Testing Search engine testing (similarity) Ex.: search engine testing (similarity) Set of 25 applications, with a description and a set of 4 tags for each of them. Divided into 5 groups: “Sport”, “Social”, “Feelings”, “Cultural” and “Location”. We assumed an application can only belong to one of this groups to make the measuring process simpler, but this introduces an error, since the way an application is categorized is subjective and not exclusive. We calculate precision and recall. precision = (Relevant docs/Total retrieved docs) ∗ 100 recall = (Relevant docs/Existing relevant docs) ∗ 100
  • 37. Development and integration of an awareness applications manager into ASTRA Testing Search engine testing (similarity) Expected values: Group RD RDR ERD Precision Recall p = 40%, r = 80%. Sport 9 5 5 55.56% 100% Social 10 5 5 50% 100% Results were quite positive: Feelings 10 5 5 50% 100% Cultural 7 4 5 57.14% 80% p = 52%, r = 96% . . . but this Location 10 5 5 50% 100% is based on artificial data. Average 9.2 5 5 52.54% 96% Useful to check design decisions Table: Summary of the results for point to the right way and to search by similarity evaluation set guidelines for October’s evaluation.
  • 38. Development and integration of an awareness applications manager into ASTRA Demonstration Demonstration
  • 39. Development and integration of an awareness applications manager into ASTRA Coordination Coordination The main mechanisms to coordinate with the rest of the teams were: F2F: F2F meetings with members of NTNU and Telenor teams during my stay in Trondheim (Norway) and with my supervisor in Madrid. It was the richest communication mechanism, and it was specially interesting for the requirements elicitation processes. Teleconferences: Weekly teleconference meetings with NTNU, Telenor and CTI members. Very useful mechanism to coordinate the work in team, to discuss the state of the project, to share ideas, etc. Wiki: Wiki website (http://www.astra-project.net/wiki) to coordinate the bundles development process and to create documentation.
  • 40. Development and integration of an awareness applications manager into ASTRA Coordination Subversion: The project code is hosted in a SVN server at NTNU (http://basar.idi.ntnu.no/svn/astra/). Very useful to coordinate the development process, since it allows us to avoid and resolve possible code conflicts, and to have revisions for every code updating. E-mail: Useful to coordinate with all the members of the team in an asynchronous way. For instance, it has been used to report bugs.
  • 41. Development and integration of an awareness applications manager into ASTRA Conclusions & future work Conclusions & future work Achieved goals: Successful development and integration of a set of bundles to manage awareness applications into ASTRA, including functionalities for sharing, tagging, locating, appropriating and adapting the applications. New GUI, which demonstrates the flexibility of ASTRA SOA. Stressing its extensibility, so new functionalities can be easily added. Future work: Adjust searching by similarity parameters, once we have real users data. Use of ontologies for helping in the application adaptation process, once OntologyManager services are implemented (ApplicationManager is already prepared). Extend the GUI: new browsing capabilities, join communities, rules edition, etc.
  • 42. Development and integration of an awareness applications manager into ASTRA Conclusions & future work Contribution & Personal evaluation: I started my contribution to ASTRA as part of my summer job for NTNU during the summer of 2008: iterations 1 & 2. I resumed my collaboration with ASTRA project in February 2009, working from Madrid: iterations 3 & 4. I came back to Norway to work in ASTRA during one month and a half during the summer: very useful to elicit and implement last requirements. It has been a very enriching experience: opportunity of working in a real researching project collaborating with teams from several countries, in technological terms, etc.
  • 43. Development and integration of an awareness applications manager into ASTRA Conclusions & future work