ACS2017: Difference between revisions
No edit summary |
|||
(27 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
This page is the entry point of the [[ACS]] (Architectures, Components and Services) course of the [[MOSIG]] AISSE curriculum. |
|||
=Schedule= |
|||
[[JHipster]] |
|||
DD : Didier DONSEZ |
|||
JBS : Jean-Bernard STEFANI |
|||
* 03/10 : JBS : Introduction |
|||
Examples of JDL https://github.com/jhipster/jdl-samples/ |
|||
* 10/10 : DD : Introduction to [[JHipster]] and presentation of the homework. |
|||
* 17/10 : DD : Introduction to Services . |
|||
** Service-Oriented Architecture [[Media:soa.pdf]] |
|||
*** OSGi, WS, UPnP |
|||
* 24/10 : Homework (DD) |
|||
** [[Docker]] and [[JHipster]] installation party and [https://air.imag.fr/index.php/JHipster#Update_the_generated_application code review] : Bring your ladtop. |
|||
* 31/10 : Holidays |
|||
* 07/11 : DD : Introduction to REST and and Micro Services |
|||
**REST Principles (Richardson Maturity Model, HATEOS) [[Media:restfulservices.pdf]] |
|||
***OpenAPI 2.0 & 3.0 : try http://editor.swagger.io/ and generate clients and servers |
|||
** Micro-services Patterns (API Gateway, …) |
|||
* 14/11 : JBS : |
|||
* 21/11 : JBS : Reported |
|||
* 28/11 : DD : Introduction to Generative Programming [[Media:generativeprogrammingtools.pdf]] + JHipster code review |
|||
** Bonus: Inspect the [https://docs.oracle.com/javase/8/docs/technotes/guides/jmx/tutorial/essential.html MBeans] your JHispter applications with the MBean plugin of the [https://docs.oracle.com/javase/8/docs/technotes/guides/visualvm/intro.html JVisualVM]. |
|||
* 05/12 JBS Formal component foundations (1H30) |
|||
* 12/12 DD (1H30) Generative Programming in practice with JHipster |
|||
* 19/12 JBS : Formal component foundations (1H30) |
|||
* 9/01 JBS : Formal component foundations (1H30) |
|||
* ??/01 JBS & DD : Homework defense + Satisfaction survey |
|||
=Homework= |
|||
Microservice Design Patterns http://microservices.io/patterns/microservices.html |
|||
Homework https://docs.google.com/presentation/d/14xH8_LrpsI95kIs3CjgMnKzNrHji38kthC5Lvxpjys4/edit?usp=sharing |
Homework introduction slides https://docs.google.com/presentation/d/14xH8_LrpsI95kIs3CjgMnKzNrHji38kthC5Lvxpjys4/edit?usp=sharing |
||
Have a glance on the JDL examples https://github.com/jhipster/jdl-samples/ |
|||
Possible extensions : https://air.imag.fr/index.php/Contributions_open-source_au_projet_JHipster |
|||
JHipster key technologies |
|||
* Getting started with [[JHipster]] |
|||
* [[Docker]] |
|||
* Angular 2+ |
|||
* [https://spring.io/projects Spring Projects] |
|||
* [[Swagger]] and [[OpenAPI]] |
|||
Possible extensions for the homework : https://air.imag.fr/index.php/Contributions_open-source_au_projet_JHipster |
|||
* New datatypes : color, geocode, geolocation, media document (stored in CDNs), qrcode (with url shortener external services) |
|||
* New data presentations : charts, heatmap, carpet, punch card for time-series. |
|||
* New containers : [[HAProxy]] with SSL Termination and [[Let's Encrypt]], [[PostGres]] with [[PostGIS]] extensions. |
|||
* New services : [[Hyperledger]] |
|||
=Annex 1 : Extended Bugtracker JDL= |
|||
<pre> |
|||
DEFAULT_MIN = 1 |
|||
DEFAULT_MAX = 3 |
|||
/** |
|||
* This is a project to track |
|||
* @author Didier |
|||
*/ |
|||
entity Project { |
|||
name String required minlength(6) pattern("^[-_ a-zA-Z0-9]*$") |
|||
} |
|||
/** |
|||
* This is a label for tagging the projects |
|||
* @author Didier |
|||
*/ |
|||
entity Label { |
|||
/** |
|||
* The name of the label |
|||
*/ |
|||
label String required minlength(3) |
|||
} |
|||
entity Ticket { |
|||
/** |
|||
* The title of the ticket |
|||
*/ |
|||
title String required, |
|||
description String, |
|||
priority Integer min(DEFAULT_MIN) max(DEFAULT_MAX) |
|||
dueDate LocalDate, |
|||
done Boolean |
|||
} |
|||
relationship ManyToMany { |
|||
Ticket{label(label)} to Label{ticket} |
|||
} |
|||
relationship ManyToOne { |
|||
Ticket{project(name)} to Project |
|||
} |
|||
relationship ManyToOne { |
|||
Ticket{assignedTo(login)} to User{ticket} |
|||
} |
|||
dto * with mapstruct |
|||
angularSuffix * with bt |
|||
paginate Ticket with pagination |
|||
</pre> |
|||
=Annex 2: Exam preparation= |
|||
The blockchain is considered as the most disruptive innovation since the Web. |
|||
Read the sections 1 and 2 in this article : Christidis and M. Devetsikiotis, ‘‘Blockchains and smart contracts for the Internet of Things,’’ IEEE Access , vol. 4, pp. 2292–2303, 2016. https://mycourses.aalto.fi/pluginfile.php/378344/mod_resource/content/1/Christidis%20and%20Devetsikiotis.pdf |
|||
One part of the exam will be a dissertation with regard to the impact of the [[Blockchain]] (especially ''permissioned blockchains'') and Smart Contracts on the service ecosystem (OpenAPI, microservices, SLA ...). |
|||
References |
|||
* https://en.wikipedia.org/wiki/Blockchain |
|||
* https://en.wikipedia.org/wiki/Smart_contract |
|||
* https://hbr.org/2017/01/the-truth-about-blockchain |
|||
* https://cachin.com/cc/research.html#blockchain |
|||
* [[Hyperledger]] |
|||
* [[Ethereum]] |
|||
* Smart Contracts |
|||
** OpenZeppelin (https://openzeppelin.org/) |
|||
*** https://blog.zeppelin.solutions/a-gentle-introduction-to-ethereum-programming-part-1-783cc7796094 |
|||
*** https://blog.zeppelin.solutions/a-gentle-introduction-to-ethereum-programming-part-2-7bbf15e1a953 |
|||
** Hyperledger Chaincodes |
|||
*** http://hyperledger-fabric.readthedocs.io/en/release/chaincode.html |
|||
=Links= |
|||
* Crnkovic et al. A Classification Framework for Software Component Models, TSE 2011, http://www.idt.mdh.se/kurser/cd5490/2014/lectures/tse_classificationFramework.pdf |
|||
* Microservice Design Patterns http://microservices.io/patterns/microservices.html |
Latest revision as of 13:30, 15 January 2018
This page is the entry point of the ACS (Architectures, Components and Services) course of the MOSIG AISSE curriculum.
Schedule
DD : Didier DONSEZ JBS : Jean-Bernard STEFANI
- 03/10 : JBS : Introduction
- 10/10 : DD : Introduction to JHipster and presentation of the homework.
- 17/10 : DD : Introduction to Services .
- Service-Oriented Architecture Media:soa.pdf
- OSGi, WS, UPnP
- Service-Oriented Architecture Media:soa.pdf
- 24/10 : Homework (DD)
- Docker and JHipster installation party and code review : Bring your ladtop.
- 31/10 : Holidays
- 07/11 : DD : Introduction to REST and and Micro Services
- REST Principles (Richardson Maturity Model, HATEOS) Media:restfulservices.pdf
- OpenAPI 2.0 & 3.0 : try http://editor.swagger.io/ and generate clients and servers
- Micro-services Patterns (API Gateway, …)
- REST Principles (Richardson Maturity Model, HATEOS) Media:restfulservices.pdf
- 14/11 : JBS :
- 21/11 : JBS : Reported
- 28/11 : DD : Introduction to Generative Programming Media:generativeprogrammingtools.pdf + JHipster code review
- 05/12 JBS Formal component foundations (1H30)
- 12/12 DD (1H30) Generative Programming in practice with JHipster
- 19/12 JBS : Formal component foundations (1H30)
- 9/01 JBS : Formal component foundations (1H30)
- ??/01 JBS & DD : Homework defense + Satisfaction survey
Homework
Homework introduction slides https://docs.google.com/presentation/d/14xH8_LrpsI95kIs3CjgMnKzNrHji38kthC5Lvxpjys4/edit?usp=sharing
Have a glance on the JDL examples https://github.com/jhipster/jdl-samples/
JHipster key technologies
- Getting started with JHipster
- Docker
- Angular 2+
- Spring Projects
- Swagger and OpenAPI
Possible extensions for the homework : https://air.imag.fr/index.php/Contributions_open-source_au_projet_JHipster
- New datatypes : color, geocode, geolocation, media document (stored in CDNs), qrcode (with url shortener external services)
- New data presentations : charts, heatmap, carpet, punch card for time-series.
- New containers : HAProxy with SSL Termination and Let's Encrypt, PostGres with PostGIS extensions.
- New services : Hyperledger
Annex 1 : Extended Bugtracker JDL
DEFAULT_MIN = 1 DEFAULT_MAX = 3 /** * This is a project to track * @author Didier */ entity Project { name String required minlength(6) pattern("^[-_ a-zA-Z0-9]*$") } /** * This is a label for tagging the projects * @author Didier */ entity Label { /** * The name of the label */ label String required minlength(3) } entity Ticket { /** * The title of the ticket */ title String required, description String, priority Integer min(DEFAULT_MIN) max(DEFAULT_MAX) dueDate LocalDate, done Boolean } relationship ManyToMany { Ticket{label(label)} to Label{ticket} } relationship ManyToOne { Ticket{project(name)} to Project } relationship ManyToOne { Ticket{assignedTo(login)} to User{ticket} } dto * with mapstruct angularSuffix * with bt paginate Ticket with pagination
Annex 2: Exam preparation
The blockchain is considered as the most disruptive innovation since the Web.
Read the sections 1 and 2 in this article : Christidis and M. Devetsikiotis, ‘‘Blockchains and smart contracts for the Internet of Things,’’ IEEE Access , vol. 4, pp. 2292–2303, 2016. https://mycourses.aalto.fi/pluginfile.php/378344/mod_resource/content/1/Christidis%20and%20Devetsikiotis.pdf
One part of the exam will be a dissertation with regard to the impact of the Blockchain (especially permissioned blockchains) and Smart Contracts on the service ecosystem (OpenAPI, microservices, SLA ...).
References
- https://en.wikipedia.org/wiki/Blockchain
- https://en.wikipedia.org/wiki/Smart_contract
- https://hbr.org/2017/01/the-truth-about-blockchain
- https://cachin.com/cc/research.html#blockchain
- Hyperledger
- Ethereum
- Smart Contracts
- OpenZeppelin (https://openzeppelin.org/)
- Hyperledger Chaincodes
Links
- Crnkovic et al. A Classification Framework for Software Component Models, TSE 2011, http://www.idt.mdh.se/kurser/cd5490/2014/lectures/tse_classificationFramework.pdf
- Microservice Design Patterns http://microservices.io/patterns/microservices.html