{"id":382,"date":"2018-01-12T09:40:52","date_gmt":"2018-01-12T07:40:52","guid":{"rendered":"http:\/\/members.loria.fr\/goster\/?page_id=382"},"modified":"2018-03-08T11:07:57","modified_gmt":"2018-03-08T09:07:57","slug":"teaching-replication","status":"publish","type":"page","link":"https:\/\/members.loria.fr\/goster\/teaching-replication\/","title":{"rendered":"Teaching-Replication"},"content":{"rendered":"<h1>Re\u0301plication et cohe\u0301rence de donne\u0301es<\/h1>\n<p><i>(Data replication and consistency)<\/i><\/p>\n<p><a href=\"https:\/\/goo.gl\/GW2Fc5\">Link to the Group constitution form<\/a><\/p>\n<h2>Supports de cours<\/h2>\n<ul>\n<li>CM1: Introduction \u00e0 la r\u00e9plication, mod\u00e8les de coh\u00e9rence. (<a href=\"https:\/\/members.loria.fr\/goster\/files\/teaching\/replication\/Replication2017-CM1.pdf\">Support 1<\/a>)<\/li>\n<li>CM2: R\u00e9plication optimiste, Logical time, Operational transformation approach. (<a href=\"https:\/\/members.loria.fr\/goster\/files\/teaching\/replication\/Replication2017-CM2.pdf\">Support 2<\/a>)<\/li>\n<li>CM3: Operational transformation approach (integration algorithms), Conflict-free Replicated Data Types (<a href=\"https:\/\/members.loria.fr\/goster\/files\/teaching\/replication\/Replication2017-CM3.pdf\">Support 3<\/a>)<\/li>\n<\/ul>\n<h2>Exemple d&rsquo;examen<\/h2>\n<ul>\n<li><a href=\"https:\/\/members.loria.fr\/goster\/files\/teaching\/replication\/Replication-Exam2011-fr.pdf\">Ancien \u00e9nonc\u00e9<\/a><\/li>\n<\/ul>\n<h2>Labs<\/h2>\n<h4>Objectives<\/h4>\n<p>\nThe goals of these lab sessions are to design and build a tool\/service that makes use of replication techniques.<\/p>\n<p>As a first step, you will build a 1-way synchronizer between <a href=\"https:\/\/www.google.com\/calendar\/\" \/>Google Calendar<\/a> and ADE agenda from <a href=\"https:\/\/monade.univ-lorraine.fr\/\">ADE<\/a>.\n<\/p>\n<ul>\n<li>Write a small application that is able to download your calendar of events from ADE<\/li>\n<ul>\n<li>You will use the download link provided by ADE such as\n<pre>https:\/\/planification.univ-lorraine.fr\/jsp\/custom\/modules\/plannings\/anonymous_cal.jsp?resources=5424&amp;projectId=5&amp;calType=ical&amp;firstDate=2018-01-29&amp;lastDate=2018-02-04<\/pre>\n<p> Note: the provided link is a redirection link. You may have to use the redirected target link.<\/li>\n<\/li>\n<\/ul>\n<li>Write a small application that is able to parse the downloaded ICAL calendar. Use an existing library to parse ICAL format.<\/li>\n<li>Write a small application that is able to detect newly inserted events\/removed events from your ADE calendar since the last time you downloaded the calendar). To achieve this goal, you might have to keep a local copy (reference copy) of the last synchronized events.<\/li>\n<li>Write a small application that is able to create a new calendar in your Google calendar and add few events. Use the Google Calendar API to achieve this goal.<\/li>\n<li>Write an application that is able to import events from ADE to Google calendar<\/li>\n<li>Update your an application that is able to synchronize events from ADE to Google calendar. <i>For testing purpose, you might have to fake modifications on the ADE calendar<\/i><\/li>\n<li>Update your application in order to allow user to update imported event in Google Calendar and keep those modifications after the next synchronization (if the events have not been removed for instance).<\/li>\n<li>Write a small documentation report presenting the architecture of your application.<\/li>\n<\/ul>\n<h4>References<\/h4>\n<p>S. Balasubramaniam and Benjamin C. Pierce. 1998. <b>What is a file synchronizer?<\/b>. In <em>Proceedings of the 4th annual ACM\/IEEE international conference on Mobile computing and networking (MobiCom &rsquo;98)<\/em>. ACM, New York, NY, USA, pp.98-108. DOI=<a href=\"http:\/\/dx.doi.org\/10.1145\/288235.288261\">http:\/\/dx.doi.org\/10.1145\/288235.288261<\/a> <a href=\"https:\/\/www.cs.indiana.edu\/ftp\/techreports\/TR507.pdf\">(research report)<\/a>\n<\/p>\n<p>N. Fraser. 2009. <b>Differential Synchronization<\/b>. In <em>Proceedings of the 2009 ACM Symposium on Document Engineering (DocEng&rsquo;09)<\/em>. ACM, New York, NY, USA, pp.13-20. DOI=<a href=\"http:\/\/dx.doi.org\/10.1145\/1600193.1600198\">http:\/\/dx.doi.org\/10.1145\/1600193.1600198<\/a> <a href=\"https:\/\/static.googleusercontent.com\/media\/research.google.com\/fr\/\/pubs\/archive\/35605.pdf\">(research report)<\/a>\n<\/p>\n<h4>Additional information<\/h4>\n<p>\nYou are free to choose any programming language, any technology, any development environment, etc.<\/p>\n<p>You will use <a href=\"https:\/\/github.com\/\">GitHub<\/a> in order to share your code and other documents.\n<\/p>\n<p><b>Deadline<\/b>: <b>March 18th, 2018<\/b><\/p>\n<h4>Students Groups<\/h4>\n<ul>\n<li><b>Kane Papa Tamsir:<\/b> <a href=\"https:\/\/github.com\/hptk95\/data-replication-ul-ptk\">Repository<\/a><\/li>\n<\/ul>\n<h2>Research Papers<\/h2>\n<h4>Objectives<\/h4>\n<p>By group of 2, you will have to read one of the following papers then prepare a 20 minutes presentations (+ 10 minutes questions). It is highly recommended that you read all the papers and prepare at least one question for each.<\/p>\n<h5>Some pointers on how to read a research paper<\/h5>\n<p>M. J. Hanson and D. J. McNamee. <a href=\"http:\/\/www.cs.columbia.edu\/~hgs\/netbib\/efficientReading.pdf\">Efficient Reading of Papers in Science and Technology<\/a><\/p>\n<h4>List of papers and Groups<\/h4>\n<h5>Presented by: Driss Amrani, Mounia Bouhriz, and Halit Cetin<\/h5>\n<p>D. Malkhi and D. Terry. 2005. <b>Concise version vectors in WinFS<\/b>. In <em>Proceedings of the 19th international conference on Distributed Computing (DISC&rsquo;05)<\/em>. Springer-Verlag, Berlin, Heidelberg, pp.339-353. DOI=<a href=\"http:\/\/dx.doi.org\/10.1007\/11561927_25\">http:\/\/dx.doi.org\/10.1007\/11561927_25<\/a> <a href=\"https:\/\/dahliamalkhi.files.wordpress.com\/2016\/08\/winfs-version-vectors-dc2007.pdf\">(author version)<\/a><\/p>\n<h5>Presented by: Titem Lehamel, Kane Papa Tamsir<\/h5>\n<p>P. S. Almeida, C. Baquero, R. Gon\u00e7alves, N. Pregui\u00e7a, and V. Fonte. 2014. <b>Scalable and Accurate Causality Tracking for Eventually Consistent Stores<\/b>. In <em>Proceedings of the 14th IFIP WG 6.1 International Conference on Distributed Applications and Interoperable Systems (DAIS 2014)<\/em>, Vol. 8460. Springer-Verlag, New York, NY, USA, pp.67-81. DOI=<a href=\"http:\/\/dx.doi.org\/10.1007\/978-3-662-43352-2_6\">http:\/\/dx.doi.org\/10.1007\/978-3-662-43352-2_6<\/a> <a href=\"https:\/\/hal.inria.fr\/hal-01287733\">(HAL)<\/a><\/p>\n<h5>Presented by: Thomas Denis &#8211; Val\u00e9ry Lambl\u00e9<\/h5>\n<p>C. Baquero, P. S. Almeida, and A. Shoker. 2017. <b>Pure Operation-Based Replicated Data Types<\/b>. Research report. <a href=\"https:\/\/arxiv.org\/abs\/1710.04469\">(arXiv)<\/a><\/p>\n<h5>Presented by: Michel Wolkowicz and Aschmat Parwany<\/h5>\n<p>M. Kleppmann and A. R. Beresford. 2017. <b>A Conflict-Free Replicated JSON Datatype<\/b>. In <em>IEEE Transactions on Parallel and Distributed Systems<\/em>, vol. 28, no. 10, pp.2733-2746. IEEE Computer Society. DOI=<a href=\"https:\/\/doi.org\/10.1109\/TPDS.2017.2697382\">https:\/\/doi.org\/10.1109\/TPDS.2017.2697382<\/a> <a href=\"https:\/\/arxiv.org\/abs\/1608.03960\">(arXiv)<\/a><\/p>\n<h5>Presented by: Rania Sayed<\/h5>\n<p>M. Kleppmann and A. R. Beresford. 2017. <b>A Conflict-Free Replicated JSON Datatype<\/b>. In <em>IEEE Transactions on Parallel and Distributed Systems<\/em>, vol. 28, no. 10, pp.2733-2746. IEEE Computer Society. DOI=<a href=\"https:\/\/doi.org\/10.1109\/TPDS.2017.2697382\">https:\/\/doi.org\/10.1109\/TPDS.2017.2697382<\/a> <a href=\"https:\/\/arxiv.org\/abs\/1608.03960\">(arXiv)<\/a><\/p>\n<h5>Not selected<\/h5>\n<p>P. S. Almeida, A. Shoker, and C. Baquero. 2018. <b>Delta state replicated data types<\/b>. In <em>Journal of Parallel and Distributed Computing<\/em>, Vol. 111, Science Direct, pp.162-173, DOI=<a href=\"https:\/\/doi.org\/10.1016\/j.jpdc.2017.08.003\">https:\/\/doi.org\/10.1016\/j.jpdc.2017.08.003<\/a> <a href=\"https:\/\/arxiv.org\/abs\/1603.01529\">(arXiv)<\/a> <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Re\u0301plication et cohe\u0301rence de donne\u0301es<\/p>\n<p><i>(Data replication and consistency)<\/i><\/p>\n<p><a href=\"https:\/\/goo.gl\/GW2Fc5\">Link to the Group constitution form<\/a><\/p>\n<p>Supports de cours<\/p>\n<ul>\n<li>CM1: Introduction \u00e0 la r\u00e9plication, mod\u00e8les de coh\u00e9rence. (<a href=\"https:\/\/members.loria.fr\/goster\/files\/teaching\/replication\/Replication2017-CM1.pdf\">Support 1<\/a>)<\/li>\n<li>CM2: R\u00e9plication optimiste, Logical time, Operational transformation approach. (<a href=\"https:\/\/members.loria.fr\/goster\/files\/teaching\/replication\/Replication2017-CM2.pdf\">Support 2<\/a>)<\/li>\n<li>CM3: Operational transformation approach (integration algorithms), Conflict-free Replicated Data Types (<a href=\"https:\/\/members.loria.fr\/goster\/files\/teaching\/replication\/Replication2017-CM3.pdf\">Support 3<\/a>)<\/li>\n<\/ul>\n<p>Exemple d&rsquo;examen<\/p>\n<ul>\n<li><a href=\"https:\/\/members.loria.fr\/goster\/files\/teaching\/replication\/Replication-Exam2011-fr.pdf\">Ancien \u00e9nonc\u00e9<\/a><\/li>\n<\/ul>\n<p>Labs<br \/>\nObjectives<\/p>\n<p>\nThe goals of these lab sessions are to design and build a tool\/service that makes use of replication techniques.<\/p>\n","protected":false},"author":25,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-382","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/members.loria.fr\/goster\/wp-json\/wp\/v2\/pages\/382","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/members.loria.fr\/goster\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/members.loria.fr\/goster\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/members.loria.fr\/goster\/wp-json\/wp\/v2\/users\/25"}],"replies":[{"embeddable":true,"href":"https:\/\/members.loria.fr\/goster\/wp-json\/wp\/v2\/comments?post=382"}],"version-history":[{"count":37,"href":"https:\/\/members.loria.fr\/goster\/wp-json\/wp\/v2\/pages\/382\/revisions"}],"predecessor-version":[{"id":425,"href":"https:\/\/members.loria.fr\/goster\/wp-json\/wp\/v2\/pages\/382\/revisions\/425"}],"wp:attachment":[{"href":"https:\/\/members.loria.fr\/goster\/wp-json\/wp\/v2\/media?parent=382"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}