DAD - Distributed Applications Development - Dezvoltarea Aplicatiilor Distribuite

Schedule

The lecture is on each Tuesday, from hour 16.30, at room 2001 A - start on 20th Feb. 2017.
The seminar/lab is on each Monday, from hour 16.30 and 18.30, room 2319/2320.

E-Learning Solution

If necessary, the E-Learning solution platform is based on SAKAI CLE, powered by Sakai Project and it is provided by ISM - IT&C Security Master program and ACS - Applied Computer Science And Cyber Security Team.

Lectures & Labs

No. Download
Lecture
PDF
Lecture Description Download
Bundle
Lecture
Lab Description Download
Lab - Eclipse Indigo Project
- Distributed Applications Development administrative issues

General Recommandations:
- Download the bundle lecture archives, in order to run Samples in command line in Ubuntu 14 OS - native or in VMWare Player



General Recommandations:
- Download the bundle laboratories archives, in order to import and run Samples in Eclipse IDE under Ubuntu 14 OS - native or in VMWare Player
RECAP - OOP in Java and JVM Overview, Generics and JCF - Java Collection Framework, java.util.* package RECAP - JCF sample with interface as type - List<E> and Map<K,V>
01. C01 - RECAP - Java Annotation and Reflection, Java I/O byte and char level, Java Serialization, Java I/O File and RandomAccessFile - java.io.* package, Java libraries - JAR, JNI - Java Native Interface S01 - RECAP - Java I/O DataStream and RandomAccessFile samples
02. C02 - RECAP - Intro Java Exception mechnism, Source Code Design Patterns - Singleton, IPC - Inter-Process Communication in Linux using C/C++, Linux C POSIX Multi-Threading (PThread), Java Multi-threading and Parallel Computing Intro. S02 - RECAP - Java Multi-threading mechanisms, java.util.concurrent package in samples for HPC - High Performance Computing samples
03. C03 - RECAP - TCP/IP Network Concepts - OSI Model, IP, UDP, TCP headers, TCP state machine, NAT, PAT, Network Programming in Java - UDP & TCP, SNMP client over UDP sample - netwrok monitoring and SMTP client over TCP sample - e-mail. S03 - RECAP - Java UDP Network programming, SNMP Client sample
04. C04 - RECAP - TCP/IP Network Concepts - Network Programming in Java - UDP & TCP multi-threading, FTP Server sample for file transfers before distributed processing, HTTP Server sample for exposing with reflection an app container/engine. C04 - RECAP - Java TCP Network programming with multi-threading, HTTP Server sample
Java Servlet Intro - Apache Tomcat 7 web server with servlet container distribution, Session Tracking, HTTP Requests and Responses, Cookies, HTTP 1.1 Java Servlet Sample with annotation instead web.xml descriptor, deployment in Apache Tomcat 7 + processing a HTML form with Java Servlet
Java Server Pages - JSP Intro - Apache Tomcat 7 web server with Servlet/JSP container distribution, JSP Architecture, Directives and Actions, Objects, Tag-Libs, Beans, MVC - Model View Controller Type 1 and 2 Intro, Cloud for IaaS, PaaS, SaaS, HTTP 1.1, Restriction for PaaS Cloud Google App Engine. Java Server Pages - JSP Sample deployment in Apache Tomcat 7 + processing a HTML form with JSP for image processing and MySQL DB access.
RPC - Remote Procedure Call, Java RMI - Remote Method Invocation, Java RMI Skeleton/Stub server and Stub client, JRMP - java Remote Method Protocol, rmic, rmiregistry, Java RMI Sample for picture processing with web JSP + RMI in terms of Distributed System - 20 web clients, 1 web server - JSP + Java Bean, 3 RMI Servers, . Java RMI sample for adding two integer vectors.
CORBA + Java WS -
10. Same as 09 Same as 09
JMS - Java Message Service within JBOSS - Java Web & App Server: Queues & Topics, JMS Clients for queues: sender and receiver, JMS Clients for Topics: Publisher and Subscriber, Synchronous and Asynchronous Queues, Non-Durable and Durable Topics JMS Sample project for non-durable topic from JBOSS, used by publisher and subscriber stand-alone application. The sample is working with JBOSS 5 GA (General Availability) installed in $JBOSS_HOME="/opt/software/java/jservers/jboss-5.1.0.GA", and the 'jbossall-client.jar' library referenced from 'client' directory of $JBOSS_HOME.
EJB 2.x and 3.x EJB 3.x Session state-less bean aending messages in topic, in order to be consumed by an EJB 3.x MDB - Message Driven Bean.


Evaluation & Gradebook Mark

The final exam mark is 60%, and the assesments/homeworks/reports/test&quizzes done by the student, during the semester are 40% from the evaluation mark.
All the content related with the tests, assesments and the final exam will be uploaded accordinglly with the established deadlines in the E-Learning System Solution based on SAKAI and provided by IT&C Security Master program - http://ism.ase.ro. The SAKAI e-Learning System Solution will be available soon, the username will be surname.firstname and the password has been communicated @ lecture 01.

Assignment 01. 

Deadline - YYYY/MM/dd HH:mm: Current Year/03/07 23:50 GMT+2
Problem description: "Create multiple processes for communicating one each other, through UPD multicast/broadcast packages, in order to find out the best mark in the room. Each process has its own mark from 1 to 10 stored in command line for launching or it is stored in a file on the disk. The problem and the solutions have been explained in the lecture 01. You may develop the solution for this problem in Java or C# or C++ or Ruby or Python." 
Upload and packiging: "The ZIP file has the source code files + *.sh/*.bat file for compiling and running the sample. The ZIP filename rule will have DAD_A01_SURNAME_FirstName1_FirstName2.zip". The upload is available through SAKAI, please see E-Learning Solution section from this page.

Assignment 02.

Deadline - YYYY/MM/dd HH:mm: Current Year/03/07 23:50 GMT+2
Problem description: "Build step by step tutorial, in Romanian or English, for creating and testing a thread safe class (also take into account the possibility for the instances to be used in Java Collection Framework - take care about Comparable interface, clone, hash, equals methods from Object class) + source code and shell script file for Java compiling and running"
Upload and packiging: "ZIP file uploaded in SAKAI. The ZIP file has the PDF file that contains the steps + *.sh file for compiling and running the sample + *.java files with the source code. The ZIP filename rule will have DAD_A02_SURNAME_FirstName1_FirstName2.zip". The upload is available through SAKAI, please see E-Learning Solution section from this page.

Assignment 03.

Deadline - YYYY/MM/dd HH:mm: Current Year/03/15 23:55 GMT+2
Problem description: "Use (All of them – logic AND): C/C++ POSIX Thread (pthread) using gcc +(and) C++’11 Multi-threading programming using gcc +(and) Java Multi-threading with JDK, in Ubuntu 12 (download the virtual machine from this page - http://acs.ase.ro), in order to add item by item, 2 (two) extra large vectors in the third vector as result. The sum of each segment/chunk should take place in parallel, on each core of the microprocessor/(s). In the command line for all three solutions, the student must specify the threads number for processing the input vectors."
Upload and packiging: "ZIP file uploaded in SAKAI. The ZIP file has the source code files + *.sh/*.bat file for compiling and running the sample + *.c AND *.cpp AND *.java files with the source code. The ZIP filename rule will have DAD_A03_SURNAME_FirstName1_FirstName2.zip". The upload is available through SAKAI, please see E-Learning Solution section from this page.

Assignment 04.

Deadline - YYYY/MM/dd HH:mm: Current Year/03/31 23:55 GMT+2
Problem description: "Download laboratory/seminary no. 5 with TCP HTTP Server server - proof of concept, in Ubuntu 14 (download the virtual machine from this page - http://acs.ase.ro), in order to solve HTTP requests for resources of type *.class. The URL in Internet browser - Mozilla Firefox/Google Chrome for http://ip_server:port_server/myfile.html will display the HTML file if exists, BUT when the browser asks http://ip_server:port_server/MyClassFile.class will display the string chars produced by method 'public String sampleDoGet();'. The one should modify method 'public String processInput(String theInput);' from class 'eu.ase.httpserver.HTTPSeminarProtocol' in order to treat through Java reflection the requiered task."
Upload and packiging: "ZIP file uploaded in SAKAI. The ZIP file has the Java source code *.java files + *.sh file for compiling and running the sample. The ZIP filename rule will have DAD_A04_SURNAME_FirstName1_FirstName2.zip". The upload is available through SAKAI, please see E-Learning Solution section from this page.

Assignment 05.

Deadline - YYYY/MM/dd HH:mm: Current Year/04/18 23:55 GMT+2
Problem description: "Download lecture and laboratory/seminary no. 8 in Ubuntu 12 (download the virtual machine from this page - http://acs.ase.ro), in order to solve the follwoing problem:
Develop the JSP and Java bean necessary for Apache Tomcat 7 deploy that will receive via HTTP to vectors and will responde with the sum of the vectors. The Java bean from web will be the RMI client for 3 RMI servers objects, each RMI server object is registred in the same rmiregistry or in different rmiregistry program. Both versions, a) and b) are required.
Version a) - The RMI Server is developed in standard mode as in lecture sample (RMI01 and RMI03 directories).
Version b) - The RMI Server is developed in order to receive the bytecode of business logic (adding two vectors) in the same way as in ComputePi solution - /home/stud/dad/lectures/c08/downloads_readme/rmidocs/rmiDocsExec"
Upload and packiging: "ZIP file uploaded in SAKAI. The ZIP file has the Java source code *.java files + *.sh file for compiling and running the sample. The ZIP filename rule will have DAD_A05_SURNAME_FirstName1_FirstName2.zip". The upload is available through SAKAI, please see E-Learning Solution section from this page.

Prerequisites

Fundamentals of Java SE + C/C++ ‘11 + Networking + Linux/Windows OS | Optional – Ruby & Python.

E-Framework Solutions

E-Framework solutions for DAD lectures and labs are based on VMWare client virtual machines, and they is provided by IT&C Security Master program - http://ism.ase.ro
The web address for download will be available for: 
- Linux Ubuntu 12 LTS (Can be updated to Ubuntu 14 with Java 8): with JDK 6 + Eclipse Indigo JEE + Netbeans + Apache Tomcat + JBOSS + GCC - Download 
- Alternatively, the latest versions of software may be installed by students in Ubuntu 14 VM (Oracle VM Box): 
JDK 8 + Eclipse LUNA + GCC - Download U14

- Linux Ubuntu 8: with JDK 6 + Apache Hadoop 0.18 - Download (will be available soon...)
- Red Hat Linux: GCC + JDK6 + Globus Toolkit + Condor - Download (will be available soon...)

Mission

Technological transfer from university to the students of practical and theoretical issues related with distributed applications development.

Target Group Profile

Distributed Applications Development Sections

IT Technologies

Additional Software for Download inside the Virtual Machines

The info will be available soon....

References

Books
1. George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair, "Distributed Systems: Concepts and Design", Publisher Addison-Wesley; 5 edition (April 27, 2011), ISBN-10: 0132143011, ISBN-13: 978-0132143011
2. Andrew S. Tanenbaum, Maarten Van Steen, "Distributed Systems: Principles and Paradigms (2nd Edition)", Publisher Prentice Hall; 2 edition (October 12, 2006), ISBN-10: 0132392275, ISBN-13: 978-0132392273
3. My Experience and lectures/labs slides presentations, examples, virtual machines + your visual, kinetic and auditory memory + SAKAI e-Learning System PROVIDED by ISM – IT&C Security Master Program - http://ism.ase.ro | http://acs.ase.ro

Section I – Summary of JSE for Distributed and Parallel Computing
1. http://java.sun.com
2. http://www.oracle.com/technetwork/java/index.html
3. http://www.oracle.com/technetwork/index.html
4. http://docs.oracle.com/javase/tutorial/

Section II – Summary of Network Protocols Programming in JSE for Distributed Systems
1. http://docs.oracle.com/javase/tutorial/networking/TOC.html
2. RFC 793, RFC 768, RFC 2616, RFC 1945, RFC 959, RFC 821, RFC 1939, RFC 2449, RFC 1730, RFC 3501, RFC 1157, RFC 1050, RFC 1057, RFC 2713
3. TCP/IP Red Book – IBM Press
4. Andrew S. Tanenbaum, "Computer Networks", Fourth Edition, Prentice Hall Publishing House, ISBN 0-13-066102-3, 2003

Section III – Summary of Web Development in JEE
1. http://www.jboss.org/developer/tutorials.html
2. http://docs.oracle.com/javaee/6/tutorial/doc/

Section IV – Core Distributed MiddleWare Programming in JEE
1. http://docs.oracle.com/javase/tutorial/
RMI:
2. http://docs.oracle.com/javase/tutorial/rmi/index.html
CORBA:
3. http://docs.oracle.com/javase/1.4.2/docs/guide/idl/GShome.html
4. http://docs.oracle.com/javase/1.4.2/docs/guide/idl/jidlDistApp.html XML & Web Services:
5. http://docs.oracle.com/javase/tutorial/jaxp/index.html
6. http://docs.oracle.com/javase/tutorial/jaxb/index.html
7. http://docs.oracle.com/cd/E17802_01/webservices/webservices/docs/1.6/tutorial/doc/index.html
JMS & EJB:
8. http://docs.oracle.com/javaee/1.3/jms/tutorial/
9. http://docs.oracle.com/javaee/6/tutorial/doc/bncdq.html 9. http://docs.jboss.org/ejb3/app-server/tutorial/
10. http://www.jboss.org/ejb3/docs

Section V – Distributed Systems for Distributed & Parallel Computing
1. P2P – JXTA - http://jxta.kenai.com/ + http://java.net/projects/jxta + http://download.java.net/jxta/jxta-jxse/2.5/
2. Apache Hadoop - http://hadoop.apache.org/
3. Globus Tookit - http://www.globus.org/toolkit/
4. Condor - http://research.cs.wisc.edu/condor/
5. ZeroC Ice - http://www.zeroc.com/

High Performance Computing Training – HPC combined with HTC:
https://computing.llnl.gov/?set=training&page=index#training_materials
HTC = High Throughput Computing
HPC = High Performance Computing

Extra-ReadMe
HA Clusters & Cloud Computing – Ubuntu Cloud Infrastructure
http://en.wikipedia.org/wiki/High-availability_cluster
Hypervisor-KVM + OpenStack - IaaS Cloud: https://help.ubuntu.com/community/UbuntuCloudInfrastructure
http://www.openstack.org/
http://www.openstack.org/software/start/

Dissertation

The dissertation thesis titles coordinated by Assoc. Prof. Cristian Toma Ph.D. are in the following INDICATIVE - NOT mandatory, JUST hints/ideas - topics: 

  1. Distributed Applications Development/Architectures for IT&C Distributed/Federative/Collaborative Systems:
    • Streaming Servers for mobile devices
    • Distributed Ticketing System
    • Synchronous and Asynchronous Applications for Concurrent Platform Environments
    • Asynchronous applications for MOS - Message Oriented Systems
    • Distributed Applications for Bioinformatics Projects
    • Data flow using BPEL - Business Process Execution Language in SOA - Software Oriented Architectures Projects
    • P2P Applications using JXTA technology
    • Distributed Applications Development using JMS queues and EJB components
    • CTI - Computer Telephony and Integrated Services in Java, C/C++, Envox, etc...
    • Web Service Enabled Image Library
    • Model View Controller for Web project
    • Framework for Data Sharing in Computer Cooperative Environments
    • Semantic-based Middleware For Multimedia Collaborative Applications
    • Multicast Services For Multimedia Collaborative Applications
    • Distributed Environment for semantic web processing
    • CORBA environments for web applications, multimedia content dispatching, WAP - Wireless Access Pages content pages, etc..
    • SOI - Service Oriented Infrastructures Applications for ...
  2. IT&C Security / Cyber Security Field:
    • Barcode, Magnetic Stripe, RFID and ISO 7814-4 Smart Cards Applications for ...Electronic Purse, Authentication, Clocking System, Supply Chain Management, etc,
    • Java Smart Cards Applications for ...Electronic Purse, Authentication, Clocking System, Supply Chain Management, etc,
    • Biometric Smart Cards Applications for ...Electronic Purse, Authentication, Clocking System, Supply Chain Management, Electronic Invoice, E-Passport, etc,
    • Clocking Systems using NXP Mifare RFID
    • WiFi Security Application for ...
    • WiMAX Security Application for ...
    • Secure VoIP Service
    • VoIP over WiFi Application
    • VoIP over WiMAX Application
    • SIP and RTP/RTSP Security Applications
    • Distributed Systems Security Applications
    • Public Key Cryptography in E-Commerce and E-Business
    • Public Key Cryptography in Mobile Payment
    • Smart Cards Applications for Security in Mobile Environment
    • Smart Cards Applications for Security in Distributed Environment
    • Biometrics Smart Cards Applications Implementations
    • Secure Mobile Agents for E-Commerce Framework
    • Implementation of watermarking algorithms
    • Secure Environment for Video Streaming Service
    • Secure Environment for Download Service
    • A Practical Implementation for Digital Rights Management System
    • Public Key Infrastructure Implementations and Certificates Authority
    • Security In Mobile Ad-Hoc Networks
  3. Embedded, Mobile, Distributed Systems and Artificial Intelligence Field:
    • Embedded Solutions for ARM microprocessors devices
    • Bioinformatics applications using BioJava
    • Neural networks for Image processing in Face Recognition, Traffic enhancement, Bank credit issuing, etc
    • Fingerprint recognition in biometrics applications
    • Android/BlackBerry Java Applications for Mobile Payments, IP TV, VoIP, etc... Platforms
    • Symbian C/C++ Applications for Mobile Payments, IP TV, VoIP, etc... Platforms
    • Windows CE C/C++ Applications for Mobile Payments, IP TV, VoIP, etc... Platforms
    • Windows Mobile C# Applications for Mobile Payments, IP TV, VoIP, etc... Platforms
    • Java Microedition Applications for Mobile Payments, IP TV, VoIP, PIM, JSR 177 etc... Platforms
    • Speach Recognition Engine for ... Call Centers, VoiceXML IVRs, etc.
    • TTS - Text to Speach Engine for ... Call Centers, VoiceXML IVRs, etc.