ACS2017: Difference between revisions

From air
Jump to navigation Jump to search
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 .
  • 24/10 : Homework (DD)
  • 31/10 : Holidays
  • 07/11 : DD : Introduction to REST and and Micro Services
  • 14/11 : JBS :
  • 21/11 : JBS : Reported
  • 28/11 : DD : Introduction to Generative Programming Media:generativeprogrammingtools.pdf + JHipster code review
    • Bonus: Inspect the MBeans your JHispter applications with the MBean plugin of the 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

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

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

Links