platform architecture overview - github...

19
Platform Architecture Overview

Upload: others

Post on 04-Mar-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Platform Architecture Overview - GitHub Pagessmartcommunitylab.github.io/architecture/SmartCampus_platform... · logic Domain model Specific Apps Service wrappers Client app Developer

Platform Architecture Overview

Page 2: Platform Architecture Overview - GitHub Pagessmartcommunitylab.github.io/architecture/SmartCampus_platform... · logic Domain model Specific Apps Service wrappers Client app Developer

• Platform overview

• How-to example

• Platform components detailed

Page 3: Platform Architecture Overview - GitHub Pagessmartcommunitylab.github.io/architecture/SmartCampus_platform... · logic Domain model Specific Apps Service wrappers Client app Developer

Backend platform

Enabler

Enabler

Enabler

VAS

USER

Core

Service

Core

Service

Core

Service Client container

Client

App

Client

App

Client

App

App

Container

Media

tion

infr

astr

uctu

re

External service

External service

External service

Persistence

Architecture: overall

Page 4: Platform Architecture Overview - GitHub Pagessmartcommunitylab.github.io/architecture/SmartCampus_platform... · logic Domain model Specific Apps Service wrappers Client app Developer

Backend platform

Enabler

Enabler

Enabler

VAS

USER

Core

Service

Core

Service

Core

Service Client container

Client

App

Client

App

Client

App

App

Container

Media

tion

infr

astr

uctu

re

Persistence

• Access control

• User profiling

• Communications

• File / media storage

• Participatory and

social gaming

• Smart trip planner

• Social engine

• Semantic engine

• Domain service

orchestration

• Service wrapping

• UniTN services and systems • 3rd party services

Specific Apps

Core libraries

Core Apps

App

Container

Service/engine libraries

Architecture: concretely

Page 5: Platform Architecture Overview - GitHub Pagessmartcommunitylab.github.io/architecture/SmartCampus_platform... · logic Domain model Specific Apps Service wrappers Client app Developer

Backend platform

Enabler

Enabler

Enabler

VAS

USER

Core

Service

Core

Service

Core

Service Client container

Client

App

Client

App

Client

App

App

Container

Media

tion

infr

astr

uctu

re

Persistence

• Access control

• User profiling

• Communications

• File / media storage

• Participatory and

social gaming

• Smart trip planner

• Social engine

• Semantic engine

• Domain service

orchestration

• Service wrapping

• UniTN services and systems • 3rd party services

Core libraries

Core Apps

Service/engine libraries

VAS

DEVELOPER

VAS

Application logic

Domain model

Specific Apps

App

Container

Service wrappers

Client app

Developer perspective

Page 6: Platform Architecture Overview - GitHub Pagessmartcommunitylab.github.io/architecture/SmartCampus_platform... · logic Domain model Specific Apps Service wrappers Client app Developer

Backend platform

Enabler

Enabler

Enabler

VAS

USER

Core

Service

Core

Service

Core

Service Android OS

Client

App

Client

App

Client

App

App

Container

Fuse E

nte

rprise

Serv

ice B

us

MongoDB

• Access control

• User profiling

• Communications

• File / media storage

• Participatory and

social gaming

• Smart trip planner

• Social engine

• Semantic engine

• Domain service

orchestration

• Service wrapping

• UniTN services and systems • 3rd party services

Specific Apps

Core libraries

Core Apps

Java Web App

Container

Service/engine libraries

REST, SOAP

JMS, Protobuf JMS, Protobuf

REST, SOAP

REST, SOAP

REST, SOAP, HTML, CSV VAS

.war

domain.jar service.jar

.apk

Architecture: deployment

Page 7: Platform Architecture Overview - GitHub Pagessmartcommunitylab.github.io/architecture/SmartCampus_platform... · logic Domain model Specific Apps Service wrappers Client app Developer

Discover interesting events, places and itineraries in Trento

Organize the messages from the campus, the city, and the other apps

Present yourself by combining certified infos from Uni with your own content

Plan your trips in Trento, and monitor your recurrent trips

Manage your communities, share and follow relevant topics

Capture your experiences and share with your friends

Existing apps

Page 8: Platform Architecture Overview - GitHub Pagessmartcommunitylab.github.io/architecture/SmartCampus_platform... · logic Domain model Specific Apps Service wrappers Client app Developer

Discover interesting events, places and itineraries in Trento

Organize the messages from the campus, the city, and the other apps

Present yourself by combining certified infos from Uni with your own content

Plan your trips in Trento, and monitor your recurrent trips

Manage your communities, share and follow relevant topics

Capture your experiences and share with your friends

Existing apps: core

Page 9: Platform Architecture Overview - GitHub Pagessmartcommunitylab.github.io/architecture/SmartCampus_platform... · logic Domain model Specific Apps Service wrappers Client app Developer

• Platform overview

• How-to example

• Platform components detailed

Page 10: Platform Architecture Overview - GitHub Pagessmartcommunitylab.github.io/architecture/SmartCampus_platform... · logic Domain model Specific Apps Service wrappers Client app Developer

• Goal: improve my participation to seminars • Extract seminar information • Capture seminar life-cycle (cancellation, changes) • View, search, and get notifications for seminars of interest • Personalize and share • Be able to reach the place • Integrate with other apps

VAS

USER

FRIENDS

CALENDAR

share

add

view, search, subscribe

get notified

How-to Example: MySeminars

Page 11: Platform Architecture Overview - GitHub Pagessmartcommunitylab.github.io/architecture/SmartCampus_platform... · logic Domain model Specific Apps Service wrappers Client app Developer

Backend platform

Enabler

Enabler

Enabler

VAS

USER

Core

Service

Core

Service

Core

Service Client container

Client

App

Client

App

Client

App

App

Container

Media

tion

infr

astr

uctu

re

Persistence

• Access control

• User profiling

• Communications

• File / media storage

• DISI seminars web page

Specific Apps

Core libraries

Core Apps

App

Container

Service/engine libraries

.war

.apk Store user preferences

Notify user about

seminars Share / follow

Navigate • Participatory and

social gaming

• Smart trip planner

• Social engine

• Semantic engine

• Domain service

orchestration

• Service wrapping Wrap

seminar page

Model seminar objects

Create seminar entities

MySeminars: What?

Page 12: Platform Architecture Overview - GitHub Pagessmartcommunitylab.github.io/architecture/SmartCampus_platform... · logic Domain model Specific Apps Service wrappers Client app Developer

• Extract seminar information • Create and deploy DISI seminar page wrapper with service engine

• Capture seminar life-cycle (cancellation, changes) • Model seminar data, evolution, and important changes using domain engine

• View and search seminars of interest • Store and classify entities using semantic engine • Store user preferences using profile service

• Get notifications about seminars of interest • Transform domain changes into user notification and use communications service to notify the user

• Personalize and share • Create user copies of seminar entities using social engine • Use CommunityManager Android app to share seminars with friends

• Be able to reach the place • Use JourneyPlanner Android app to plan the trip to the seminar's place

• Integrate with other apps • Extend DiscoverTrento app domain to integrate seminars with other events • Export personalized events to Google Calendar app

MySeminars: How?

Page 13: Platform Architecture Overview - GitHub Pagessmartcommunitylab.github.io/architecture/SmartCampus_platform... · logic Domain model Specific Apps Service wrappers Client app Developer

• Platform overview

• How-to example

• Platform components detailed

Page 14: Platform Architecture Overview - GitHub Pagessmartcommunitylab.github.io/architecture/SmartCampus_platform... · logic Domain model Specific Apps Service wrappers Client app Developer

Goal: provide continuous and reliable access to external fragmented and heterogeneous services and information sources

• Non-standard service formats (e.g., HTML, CSV) • Format and data validation • Check detection • Data caching • Data updates publish/subscribe

Realization • Markup language for HTML/SML data scrapping and validation • Enterprise mashup language for server data aggregation and transformation • Maven tools for artifact assembly • Service wrapper container with hot deployment and management console • APIs for service access and event subscription/publishing

Enablers: service wrapping

Page 15: Platform Architecture Overview - GitHub Pagessmartcommunitylab.github.io/architecture/SmartCampus_platform... · logic Domain model Specific Apps Service wrappers Client app Developer

Goal: model the evolution of the application domain on top of other objects and services, their operations and events

• Capture object data • Define simple and composite object operations • Capture domain evolution triggered by client operations or by domain events • Execution environment • Domain persistence • Domain updates publish/subscribe

Realization • Specification language for server data aggregation and transfromation • Maven tools for Java code generation and artifact assembly • Domain container with hot deployment and management console • APIs for domain access and event subscription/publishing

Enablers: service orchestration

Page 16: Platform Architecture Overview - GitHub Pagessmartcommunitylab.github.io/architecture/SmartCampus_platform... · logic Domain model Specific Apps Service wrappers Client app Developer

• Semantic engine: support creation, population, semantic search and reasoning on user- and community-tailored knowledge bases containing typed information entities

• CRUD operations on entities, their reliationships, and on knowledge bases • Semantic entity classification and search • Natural language conceptualization

• Social Engine: provide social networking functionalities over the user and community knowledge bases

• User and community management • Organizing users in groups • Management entity permissions with respect to user groups and communities

Realization • RESTful service APIs • Java client library

Enablers: social / semantic engine

Page 17: Platform Architecture Overview - GitHub Pagessmartcommunitylab.github.io/architecture/SmartCampus_platform... · logic Domain model Specific Apps Service wrappers Client app Developer

Goal: perform multimodal trip planning and analysis with real-time transport information support

• Plan trips supporting variety of transportation means and modes • Real time alerts about transport information (delays, cancellations) and the consecutive analysis

Realization • Relies upon the open source Open Trip Planner engine • RESTful APIs • Tightly integrated in the Journey Planner application

Enablers: smart planner

Page 18: Platform Architecture Overview - GitHub Pagessmartcommunitylab.github.io/architecture/SmartCampus_platform... · logic Domain model Specific Apps Service wrappers Client app Developer

• Authentication and access control • Token-based user authentication • Externalized sign-in (Shibboleth) • Spring-security -compatible back-end library • Android account managment provided by SmartCampus app • Exposed as Web service and as a Web application

• User profiling • Access to public user profiles • CRUD operations to provide custom user profiling elements • REST API

• Communications • Send communications to the user on behalf of an application • The notifications are visualized in Communicator application • REST API

• File / media storage • Create and store files on behalf of the user • Sharing / access control using Social Engine • REST API • Android client library

Core Services