The POSEIDON developer framework is a collection of methodologies, infrastructure, middleware, tools, specifications, etc. These are things which were used in the development of the POSEIDON prototype system and part of it. This is partly methodologies, open-source code and free tools of general use, and partly the POSEIDON infrastructure which can be used for other applications.
A goal of the POSEIDON project was to foster development of inclusive services for people with Down syndrome, and a commercial POSEIDON solution needs to be extensible with new services. The development framework is the project’s way of addressing these goals. Here we give an overview of the framework for new developers, along with references to more detailed information. The summary is based on project deliverable D5.1, which gives the full description of the framework.
A system development methodology specifies structured ways of creating ICT systems. The framework describes the following methodologies:
- UC-SDP: User Centered Software Development Process. This software development process focuses on facilitating stakeholders to co-create intelligent environments.
- eFriend: A set of engineering principles to guide and encourage developers to secure that ethically sensitive aspects of technology are explicitly addressed in the development of a product, especially within the Ambient Assisted Living field.
- R4C-AS: A methodology for requirements elicitation in Context-Aware systems. It provides a structured approach to gather and define the requirements of such systems, including diagrammatic support, which can be then linked to design and correctness analysis.
The framework also includes tools to support the methodologies. See the Tutorial for context-aware systems for a practical introduction. Documentation references:
- D5.1 Development framework chapter 3.
- Ethics in POSEIDON: Pdf document available from web.
Architecture and platforms
The POSEIDON solution is a system of various end user applications and different platforms connected by an infrastructure. The framework architecture describes this infrastructure and how applications are integrated in this system. Based on the type of services we wanted POSEIDON applications to provide we have defined a set of services the underlying infrastructure needs to provide to applications. The figure below shows an abstract view of the services the infrastructure provides and integrates. Server-side services for holding data and providing shared access is an important part of this infrastructure.
Individual personalisation of services is especially important for people with Down syndrome, as there are big differences between individual capabilities and needs. Personalisation needs be possible in all forms of user interaction, and supporting this is an important aspect of the POSEIDON framework. This support is two-fold: providing a shared store of personal preferences for applications, and providing shared storage and standards for content.
Figure 1: A service view of the infrastructure
Another key part of the architecture is the supported platforms and devices for end-user applications. We make a distinction between stationary and mobile application platforms. Stationary platforms are for using applications at home or in other stationary locations and are based on laptop and desktop computers. These have large screens and various input devices, and are suited to primary user training and secondary user management tasks. Mobile platforms are smaller devices such as phones and tablets, suited to bringing with you wherever you go and to use outside. These are needed to provide notifications and guidance to the primary users. We specify a framework for web applications, responsive to run on all devices. For more specialised functionality, we provide additional support for stationary training applications developed in the cross-platform framework Unity, and mobile applications for Android devices. The architecture includes middleware and interaction devices for the supported platforms.
- D5.1 Development framework chapter 4.
- D5.2 Prototypic systems of the POSEIDON concept: Describes the integrated prototype systems produced in the project. It describes the developments in each prototype iteration and the functionality in the two pilots, giving an overview of the system as a whole. It also includes technical documentation for components not part of the framework or documented elsewhere.
The technology infrastructure is provided to implement the architecture. Going through the main components, we refer to the framework infrastructure overview below, and start with the server-side services along the bottom of the figure.
Figure 2: POSEIDON framework infrastructure
The file server provides cloud storage of data for POSEIDON applications. Secondary user applications are used to define personalised instructional content with multi-media, and this is stored here for the primary user applications to access. The framework includes data specifications for routes for navigations, shopping lists for money handling and video play lists for instructions, so that new applications are interoperable with the existing ones. A calendar system is used to connect instructions to points in time and give notifications. The infrastructure uses the Google Calendar service for cloud storage of calendar events, but specifies an extended data format including instructions and multimedia, only supported through POSEIDON-enabled user interfaces. The Tellu SmartPlatform service is where POSEIDON user accounts are stored, along with a user profile. Tracked data such as mobile device position is sent here to be available for monitoring.
Another key part of the infrastructure is the Context Reasoner Middleware. It provides context awareness to mobile applications. Applications connect to it, causing it to perform acquisition of and reasoning over context, notifying the interested applications of changes. The context awareness part of the framework also includes a tool for producing context rules and a server-side for collecting data from the middleware.
The interactive table is a part of the infrastructure for stationary applications. It is a prototype of a new interaction device, which combines the size of a multitouch table with 3D hand position recognition. It is intended to be unobtrusively built into tables, allowing the user to control applications via hand gesture on or over the table.
- D5.1 Development framework chapter 5.
- D3.2 Reasoning and Learning module: Describes context ontology and definition language for the context awareness middleware.
- SmartPlatform POSEIDON developer documentation: Developer documentation & API, pdf available from web.
- Online SmartPlatform documentation: https://smarttracker.no/documentation
- File server API: Pdf available from web.
- Data specifications: Data specifications for calendar events, routes for navigation, shopping lists and video list. Pdfs available from web. API and data specifications are also collected in D5.4.
- Interactive table (CapTap) – API: Pdf available from web.
Developer tools and components
The framework includes software and code libraries provided to developers to enable them to develop POSEIDON applications. Here is an overview of components:
- Tool support for R4C-AS: A set of tools for keeping track of requirements and creating diagrams.
- Context modelling tool: Tool for creating new rules for the context reasoner of the infrastructure.
- Android SDK: Mobile application development is facilitated by the Android application framework and Android Studio development environment.
- Code libraries: Libraries provided include API for connecting to the interactive table, Java and Android libraries for the two SmartPlatform APIs, and a Unity library for connecting to the SmartPlatform and file server.
The Mobile application tutorial of these guidelines shows how to develop a POSEIDON mobile application, making the connections to the infrastructure, including references for detailed documentation. General documentation references:
- D5.1 Development framework chapter 6.
- Android developer documentation: https://developer.android.com
- POSEIDON code components: http://www.poseidon-project.org/developers/code/
User interface design
The framework also provides specifications, information and graphical elements for user interfaces. Developer documentation includes guidelines for developing accessible user interfaces, and information about mobile and web application UI development. A user interface strategy is specified, considering user requirements. A colour palette and icons are provided, to create applications with a shared look and feel.
User interface guidelines are collected here, in the User interface section. Documentation references:
- D2.3 Report of Design of HW, Interfaces and Software: Chapters 2-5 give the basis for the user interface guidelines.
- D4.1 Interface strategy: Outlines the user interface strategy for the POSEIDON system, and is a resource for user interface developers. Documents the different iterations of UI work in the project.
- D4.2 Adaptive tablet interface: Presents our work on adaptivity in the user interfaces. It describes adaptivity and personalization in the pilots, and the user interface of the main POSEIDON mobile application.
- D4.3 Interactive table: Describes the interactive table – the novel input method developed in the project and used with some of the applications – including prototype implementations and communicating with computer applications.
- D4.4 Virtual Reality System: Discusses use of Virtual Reality in the POSEIDON solution, and the prototype implementation, which is mixed reality navigation training.
- D4.5 HCI user and developer manuals: Documentation on user interface design and implementation. User manuals for pilot 1 and pilot 2 applications are included in this deliverable, along with developer documentation for user interface implementation.
- POSEIDON icon repository: http://www.poseidon-project.org/product/symbols/