Development of Complex Distributed Applications

Development of Complex Distributed Applications
Laboratory classes

Author: Dan Cosma. (c) 2010-2015
Updated: June 08, 2015

Welcome to the official page for the Development of Complex Distributed Applications laboratory classes! This is the place where you will find all the announcements and the information related to the tasks you need to accomplish during the semester.

Last chance for project submissions ("Recuperari in sesiune")

Students that have not submitted the DCDA project can present it on Tuesday, 16 June 2015 at 13:00 in room B528. This will count as an official paid re-participation at one lab class (recuperare cu plata a unei lucrari de laborator), therefore the students will have to show the receipts from the payment office at the submission time.

The exam is also set for the same date and place, for students that need to take it.

Please inform all students interested on this opportunity.

New! Late project submissions ("Recuperari")

Schedule for late project submissions ("recuperari"):
  • teams registered to the lab class held on Monday at 8:00 will present the projects on Monday, 25 May, 8:00
  • teams registered to the other two lab classes will present on Monday, 25 May, 13:00

    Late submission penalties apply. Students will receive two separate grades regarding the project: one for the project actual implementation, and one for the the level of knowledge about the concepts and technologies involved. The final grade will be the (weighted) average of these two.

    For questions, please send me an e-mail.

    Important! Schedule for project submissions

    Mandatory schedule for project submissions:
  • teams registered to the lab class held on Monday at 8:00 will present the projects on Monday, 18 May, 8:00
  • teams registered to the other two lab classes will present on Monday, 18 May, 12:30-14:30

    Students will receive two separate grades regarding the project: one for the project actual implementation, and one for the the level of knowledge about the concepts and technologies involved. The final grade will be the (weighted) average of these two.

    For questions, please send me an e-mail.

    Dan Cosma

    Lab questions

    In order to optimize the lab activity, students that need to discuss their project-related questions at the labs held on Monday 12:00 or 16:00 are requested to inform the lab supervisor by email with at least 24 hours in advance.

    Course site

    The course site is available online. Please visit often, as it represents the official source for the latest announcements, course material, and exam information.

    Registration

    Registering to the laboratory classes is mandatory.

    Please read the details regarding the lab assignment below, then register using this form. The registration must be completed before the beginning of Week 2.

    Please also fill in this questionnaire.

    The current registration status is available here.

    Assignment

    The laboratory activity consists of specifying, designing and implementing a complex distributed application that provides a comprehensive Web interface, includes mobile components, and uses state-of-the-art technologies.

    The students will work in teams of four, the members of the same team must attend the same laboratory class. Each team must designate a leader that will act as the group representative/contact person. The teams must be formed and announced by the students no later than end of Week 2 of the semester.

    Goals: manage the full development process of a complex and complete distributed application; choose the right development and deployment technologies; work in a team.

    The project specifications will be proposed by the students until Week 2, and will be discussed with the lab supervisor. The specifications will be negociated during Week 2, so that Week 3 finds the team with a proper initial description of the application.

    The application must conform to the following requirements:

    • Submission deadline: Week 13. Intermediary milestones will have to be met, their deadline mandatory (see below).
    • Platform/technology: any platform providing support for developing a distributed environment; for the mobile components, specific frameworks can be used. The preferred mobile OS is Android.
    • Required tools/infrastructures:
      • an IDE
      • a proper deployment and testing environment (application server, mobile device emulators, etc.)
      • a database, to maintain the persistent status of the system
      • a means for automating the deployment and the installation of the application (e.g., Ant scripts, automated interactive installers, etc.)
    • The application consists of several distributed, interconnected software components, that work together for a common goal. There are a minimum of two types of components that must be implemented:
      • Servers, that maintain the global status of the application and provides its main functionality. Each server may serve a different geographical area, and/or follow a specific purpose within the application. Servers communicate with each other in order to update the status, maintain consistency, syncronize data, and so on.

        At least one server will also provide a Web-based user interface for the clients for the purpose of their domain-specific interaction with the system, maintenance and administration.

      • Mobile components, running on phones or tablets. They provide the users with a lightweight and mobile interface, and communicate with the servers as clients. The geographical location of the mobile components will be used for the purpose of identifying the parameters that contribute to a useful management of the distributed resources, such as the identification of the closest server, finding out the user's geographical position so that only the relevant information is provided, and so on.
      platforms.

    Example: a distributed application that manages a rent-a-car system. There are several interconected servers, one for each of several geographical areas, that manage the cars in their vicinity. Users use phones or tablets to communicate with the system, and the mobile components installed on their devices communicate with the servers to update the user's location, send user requests, provide logging, user notification and payment management. Web interfaces are also available for the user to manage his/her account, modify the subscription, schedule the car renting and so on. Servers track the cars as they go from one area to another, and, for any given car, the identity of the responsible server changes accordingly. When a car enters a new area, all the relevant data is transferred to the area's server, and the system-wide status is updated. The system monitors the rental contracts, notifies the user when payments are due, and logs all car movements and events.

    The deadline for the project is mandatory. It can be submitted late ("recuperari") in Week 14, but penalties will apply. Unmet milestones will also lead to penalties.

    The number of students attending the same laboratory class must be roughly the same for each session. While the projects are developed as a team, the marks may differ between members of a same team.

    Milestones

    Please read the information regarding the project milestones, below. Both milestones are mandatory, and can be delivered by e-mail.

    Milestone 1

    Until Week 6, each team will have to present a document (PDF) containing the following:
    1. Project specification, including use cases
    2. Description of the platform/tools chosen for development: the complete information about the frameworks, IDEs, automation tools, runtime environments and servers must be provided.
    3. High level overview of the project design:
      • a diagram depicting the main components/entities involved, especially on the server side of the application
      • short the description of the entity roles, their interdependencies and an estimation of their complexity.

    Milestone 2

    Until Week 10, each team will have to present the following:
    1. The project design, including detailed architectural diagrams;
    2. Proof for a working prototype of the system, for instance as a short video showing the system at work (the prototype is a minimum requirement; an under development system that implements a few features is preferred).

    Featured Resources

    Laboratory schedule, Contact

    • Monday 8-10: Casandra Holotescu, e-mail casandra -dot- holotescu at cs dot upt "dot" ro
    • Monday 12-14, 16-18: Dan Cosma, e-mail danc at cs -dot- upt dot ro .