关于前端:CSSE7014-讲解

5次阅读

共计 29179 个字符,预计需要花费 73 分钟才能阅读完成。

The University of Queensland
School of Information Technology and Electrical Engineering
Semester 1, 2019
CSSE7014 – Assignment 1
Issued: 04/03/2019
Due: 4pm on Monday 15/04/2019
Weighting: 25%
Introduction
In this assignment, students will be required to develop an application, namely Enviro Smart, which makes
use of sensed environmental and weather information to provide users with suggestions and warnings on
their potential risk from the current environmental conditions. This sensed environmental information is
also referred to as“context information”. Applications that adjust to changes in context information are
considered to be context-aware and fall under the research field of pervasive computing.
Using the context-aware Enviro Smart application, users will be able to receive warnings when various
environmental conditions such as incoming heavy rain or the air pollution level is above a predefined
threshold as well as receive suggestions for activities/places that will minimise the exposure. These
suggestions are based on user-specified preferences.
The Enviro Smart application will make use of the both Remote Method Invocation (RMI) and
Publish/Subscribe architecture for communication between its components.
Ice Distributed Computing Platform
The Ice distributed computing platform (http://www.zeroc.com) is a reasonably new computing
platform but already used by many companies for software development in which speed (performance)
and reliability are key factors. You will find a listing of such companies on the Ice website. Ice provides
two communication paradigms: RMI and notifications (publish/subscribe). You should use both in
the assignment and for this you need to evaluate which communication should be of the type RMI and
which one is more suitable for publish/subscribe.
A short screencast that shows how to create an Ice client and server with Java and Eclipse taken from
http://www.zeroc.com/download… has been put on Blackboard for
downloading.
Publish/subscribe is provided in Ice by IceStorm (www.zeroc.com/icestorm/index.html). IceStorm acts
as a mediator between message publishers and message subscribers. IceStorm messages are
unidirectional notifications. A component/process indicates its interest in receiving messages by
subscribing to a topic. A topic is essentially equivalent to an application-defined Slice interface (Slice is
the specification language (IDL) for Ice): the operations of the interface define the types of messages
supported by the topic. A publisher uses a proxy for the topic interface to send its messages, and a
subscriber implements the topic interface (or an interface derived from the topic interface) in order to
receive the messages. The demos can be downloaded from here: https://github.com/zeroc-ice/…
For more information, please refer to https://doc.zeroc.com/display…
Part A (22%) Context-aware application
Assignment components
We assume for the scenario used in this assignment that each person will have the latest smart watch. The
smart watch has several sensors or sensor-like devices (accelerometer, GPS, light, microphone, camera).
However, for the purpose of this assignment we assume that our smart watches not only have an improved
location sensor that can work indoor and outdoor (not only outdoor as GPS does), but also include an Air
Pollution (AP) sensor that can measure Air Quality Index (AQI), a temperature sensor, and also a weather
alarm.
The readings from the sensors are gathered by a Context Manager as described in the following sections.
The location information produced by the location sensor is pre-processed by a Location Server before it
is sent to the Context Manager. The Context Manager evaluates the context (such as the current
temperature, AQI, and location) and issues warnings to the user if an AP overexposure (APO) threshold
or a temperature threshold is reached, or a weather alarm is triggered. The Context Manager also provides
suggestions on alternative places/activities based on user preferences. The application has a user interface
that allows multiple users to query the application on items of interest.
The application, Enviro Smart, has the following components:
Sensors (Location sensor, Air Pollution (AP) sensor and a Temperature sensor). AllSensors.java
Weather alarm provides alarms on extreme weather conditions such as heavy rain, hail storm,
strong wind. WeatherAlarm.java
A Location Server provides Indoor/Outdoor mapping of location coordinates to Context Manager.
LocationServer.java
A Context Manager evaluates extreme weather warnings, current temperature and APO thresholds
so as to make appropriate suggestions to users based on user preferences captured in the Preference
Repository. ContextManager.java
A Preference Repository responds to queries issued by the Context Manager regarding preferences
on how the application should make recommendations to users. PreferenceRepository.java
User Interfaces for users to manage the Enviro Smart application. EnviroAppUI.java
Students are asked to figure out the order in which the components should start, the order in which they
exit, and which communication paradigm (RMI or Publish/Subscribe) to use when communicating
between each component.

  1. Sensors and alarm
    The context-awareness of the Enviro Smart application is based on context information collected by three
    types of sensors and alarm. These are:
    A temperature sensor that produces integer readings in the range 0 to 50
    A location sensor that monitors the user’s location.
    An AP sensor that shows the current level of air pollution in the unit of AQI (Air Quality Index)
    from 0 to 200.
    A global weather alarm that returns monitoring of extreme weather. The value is one of these
    integers:
    o 0 – normal weather condition – no alarm is triggered and no weather warning is delivered
    o 1 – heavy rain
    o 2 – hail storm
    o 3 – strong wind
    All sensors produce readings every second. The information sent by sensors is in the format: username,
    sensor type, sensor reading.
    The alarm produces a signal every 60 seconds.
    1.1 Starting the sensors and the weather alarm
    The temperature sensor, the AP sensor and the location sensor are all started in Eclipse together at the
    same time in one java file, AllSensors.java, accepting the following argument:
    [username]
    where [username] is the name of a user logged into a user Interface, and every user has his/her own
    sensors.
    AllSensors reads in three different predefined files at start-up. The three files contain readings of the three
    sensors for each person. The name of each predefined files are“<username>Temperature”,
    “<username>AQI”and“<username>Location”.
    Each line of the predefined files is in the format:
    value, number of seconds
    value is the value that should be in the update notification.
    number of seconds is the number of seconds that value should be used.
    The sensors produce the“value”every second for“number of seconds”.
    An example content for the predefined file of the location sensor for Alice (i.e., AliceLocation) are as
    follows:
    A,20
    C,10
    B,20
    D,10
    This can be interpreted that the location sensor will report the user to have the location A for the first 20
    readings (seconds), then the location B for the next 10 seconds then the location C for the 20 seconds after
    that. The location of the user will then be D for 10 seconds.
    Once the end of the file is reached, the sensor will return to the beginning i.e. after sending D for 10
    seconds, the location tracker will send A for 20 seconds and so on until the application exits.
    1.2 Shutting down the Sensors and weather alarm
    The sensors and weather alarm shut down (and stop sending information) when the user exit the User
    Interface.
  2. Location Server (LS)
    The Location Server receives location coordinates from the location sensor, determines the current
    indoor/outdoor status of the user, and forwards these context information to the Context Manager. The
    mapping of the status to location coordinates is specified in the server’s configuration file using the
    following structure:
    Status : Location Coordinates
    Indoor : A, B,
    Outdoor : C, D,
    The server notifies the Context Manager about the current location coordinate of the user and its
    indoor/outdoor status. The server also is responsible for returning a list of indoor locations to the Context
    Manager upon request.
    The Location Server is started in Eclipse, taking the following argument:
    [configuration-file]
    where [configuration-file] is a file containing the mapping of the indoor/outdoor status to location
    coordinates.
  3. Context Manager (CM)
    The Context Manager:
    ? gathers information about Air Quality Index (0-200), weather alarm, and user location from
    sensors.
    gathers personal information about temperature threshold and air pollution tolerance threshold of
    a user from the Preference Manager.
    ? calculates a threshold for AP overexposure, and sends a warning together with suggestions of items
    of interest when the APO threshold of the user is reached. The suggestions are based on user
    preferences and they must be located indoor.
    evaluates temperature and sends a warning together with suggestions of items of interest when the
    temperature threshold for a user is reached. The suggestions are based on user preferences.
    responds to queries from the User Interface.
    3.1 Evaluating AP Overexposure (APO)
    The AQ Index (AQI) gives an indication of the level of air pollution and the potential danger of exposure
    to air pollutants. The Context Manager uses AQI, personal medical type and duration of AP exposure to
    calculate an AP Overexposure (APO) threshold. The following AQI exposure recommendations is used
    by the context manager in the evaluation of a user’s APO threshold.
    AQI Air Quality Recommendation Base time
  4. to 50 Good You can safely enjoy being outside! 30
    seconds
  5. to 100 Moderate People with medical conditions should consider
    reducing prolonged or heavy exertion.
    15
    seconds
  6. to 150 Unhealthy for
    Sensitive Groups
    People with heart or lung disease, older adults, and
    children should reduce prolonged or heavy exertion.
    10
    seconds
  7. to 200 Unhealthy
    People with heart or lung disease, older adults, and
    children should avoid all physical activity outdoors.
    Everyone should avoid prolonged or heavy exertion
  8. seconds
    Table 1. AQI exposure recommendations
    A AP Overexposure Threshold of a user is calculated by multiplying a Base Time of the current AQI
    (according to Table 1) and the user personal reference to air pollution level (i.e., APO Threshold = Base
    Time * Medical Condition Type).
    Skin types are categorised as follows:
    Medical Condition Type 1: People with heart and lung disease, and asthma
    Definition: People with heart or lung such as coronary artery disease, congestive heart failure, and
    asthma or chronic obstructive pulmonary disease.
    Medical Condition Type 2: Children and old adults
    Definition: Children age between 0-17 and old adults age above 45.
    Medical Condition Type 3: Healthy adults
    Definition: Adults age between 18-45 without medical history relevant to lung and heart diseases
    The medical condition type of particular users is stored in the Preference Repository. The context manager
    queries the Preference Repository for the medical condition type when the user first login to
    the User Interface.
    A user is considered to be overexposed when the AP Overexposure Threshold is said to be reached. That
    is, when the amount of time a user has been located outdoor is greater or equal to the current APO threshold
    of the user (i.e. APO Threshold reached = outdoor time ≥ APO threshold).
    For example, for user with Medical Condition Type 2 exposed under an AQI of 90, the APO Threshold is
  9. (2*15 seconds). The threshold will be reached when the user spent 30 seconds or more in outdoor
    locations.
    When a user is overexposed (or the APO threshold is reached) the Context Manager will send an AP
    Overexposure Warning to the particular user, and make suggestions for items of interest base on his/her
    preferences, providing the items of interest are located indoor. The Context Manager is required to query
    the location server regarding a list of indoor location, so as to make appropriate suggestions to users.
    NOTE:
    The timer (for counting the outdoor duration of a user) starts counting from zero when: (1) the user
    moves from an indoor to an outdoor location, or (2) there is a change to current AQ Index (the
    APO threshold of the user is also re-evaluated).
    The timer continues to count when the user moves from an outdoor to an outdoor location,
    providing the AQ Index stays constant and the APO threshold for the user has not been reached.
    The timer stops counting when: (1) the user is located indoor, or (2) the APO threshold is reached.
    3.2 Evaluating weather alarm
    The weather alarm takes the highest priority in suggesting users to stay outdoor or to move indoor. The
    alarm events are stored in a predefined weather_alarm.txt file. The context manager queries the next
    weather alarm every 60 seconds.
    When a weather alarm is triggered (i.e., warning of incoming heavy rain or strong wind), the Context
    Manager will send a Weather Warning event to the user and make suggestions for items of interest base
    on user’s preferences in any location. In addition, because the alarm has the highest priority in suggesting
    users to stay outdoor/indoor, the Context Manager will only give suggestions which are located indoor
    until the weather condition has changed to‘normal’.
    3.3 Evaluating temperature
    The temperature threshold for a particular user is stored in the Preference Repository. The context manager
    queries the Preference Repository for the temperature threshold when the user first login to
    the User Interface.
    When the threshold is reached (i.e., the current temperature is equal to the threshold predefined in the user
    preference), the Context Manager will send a Temperature Warning to the user and make suggestions for
    items of interest base on user’s preferences in any location.
    NOTE:
    When a temperature threshold is reached, the temperature is not evaluated again until there is a
    change of temperature.
    3.4 Storing information about the city
    The Context Manager maintains a knowledge base which it populates using a city information file read at
    start-up. This file contains a number of entries corresponding to items of interest within the city. Each
    entry has:
    a unique name for an item of interest, indicated with name
    a location coordinate exists in the <Location-file> accepted by the Location Server (such as A, B,
    C, D).
    a short paragraph of information about the item of interest
    a list of services offered at the item of interest
    An example of an item of interest entry in the file is:
    name: Indooroopilly Shopping Centre
    location: A
    information: Indooroopilly Shopping Centre is a major regional shopping centre in the western suburb
    of Indooroopilly, Brisbane, Queensland, Australia. It is the largest shopping centre in the western suburbs
    of Brisbane, by gross area, and contains the only Myer store in that region.
    services: cinema, restaurants, pool, shops
    name: Garden City
    location: B
    information: Garden City Shopping Centre is located 10km South of the Brisbane central business district
    (CBD) and includes Myer, David Jones, Hoyts Cinema, Freedom and over 230 specialty stores.
    services: cinema, restaurants, pool, shops
    name: South Bank Parklands
    location: C
    information: The South Bank Parklands area was created as part of the rejuvenation
    of the industrial water front undertaken for World Expo 1988. The Parklands area contains many shops, a
    cinema complex, and a large number of restaurants as well as a man-made beach. A river promenade
    stretches the length of South Bank Parklands.
    services: restaurants, pool, shops, Ferris wheel
    name: Brisbane City
    location: D
    information: The Brisbane central business district (CBD), or ‘the City’ is located on a point on the
    northern bank of the Brisbane River. The triangular shaped area is bounded by the Brisbane River to the
    east, south and west. The point, known at its tip as Gardens Point, slopes upward to the north-west where
    ‘the city’ is bounded by parkland and the inner city suburb of Spring Hill to the north. The City is bounded
    to the north-east by the suburb of Fortitude Valley.
    services: restaurants, shops, market, bowling
    3.5 Making suggestions to users
    The Context Manager makes suggestions of item of interest when either a weather alarm is triggered, or
    the AQI or temperature thresholds of a particular user is reached. In order to take into account the user
    preferences, the Context Manager must indicate to the Preference Manager which threshold has been
    reached in the following format:
    [Username], weather warning in the case when a weather alarm has been triggered, or
    [Username], APO in the case when the APO threshold has been reached, or
    [Username], [Temperature Threshold] in the case when the temperature threshold has been reached.
    where:
    [Username] is the name of the user,
    [Temperature Threshold] is the threshold of the temperature that has been reached.
    The Preference Repository returns a list of services the Context Manager should suggest to the user. The
    weather alarm, which is updated every 60 seconds, has the highest priority. Should both temperature and
    APO threshold are reached at the same time, the APO threshold take higher precedence, and the Context
    Manager should only request a list of services corresponding to the APO preference. Upon the return of
    the list of services from the Preference Repository, the Context Manager sends a list of items of interest
    that provide those services to the User Interface of the Enviro Smart Application, but ensures these items
    of interest are located indoor if the user’s AP threshold is reached.
    To determine whether a list of items of interest is located indoor, the CM queries the Location Server
    regarding the indoor/outdoor mapping of the location of the list of items. Such query should be made to
    the Location Server for every suggestion
    3.6 Responding to queries from User Interface
    The Context Manager is also required to respond to queries issued by the User Interface.
    Two queries are supported:
    Search for items of interest in the current location
    Search for information about a specific item of interest
    Search for item of interest in the current location
    The Context Manager responds with an item of interest in the user’s current location.
    Search for information about a specific item of interest
    The Context Manager searches for the specified item of interest in its knowledge base and returns the
    information associated with that item of interest.
    More detailed information regarding how the queries are generated is specified in the User Interface
    section 6.1.
    3.7 Starting the Context Manager
    The Context Manager is started from Eclipse, accepting the following argument:
    [city-information-file]
    where [city-information-file] is the name of the text file containing the information about the city.
    3.8 Shutting down the Context Manager
    The Context Manager shuts down automatically when all User Interfaces have exited. The shutdown
    process of the Context Manager involves deregistering its subscriptions with Ice Storm and exits. The exit
    will also trigger shutdown of other components.
  10. Preference Repository (PM)
    The Preference Repository stores user preferences and evaluates these preferences when requested by the
    Context Manager.
    4.1 Preference format
    A weather alarm preference is in the following format:
    when weather warning suggest [service]
    An APO preference is in the following format:
    when APO suggest [service]
    A temperature preference is in the following format:
    when [temperature value] suggest [service]
    [temperature value] is one of the readings that the temperature sensors can produce.
    [service] is the name of a service (e.g., shops) provided by item of interests
    APO is just a word indicating the user is being overexposed to air pollution.
    Preferences are loaded from a preference file when the Preference Repository starts up.
    The preference file contains at least one and at most three user.
    For each user in the file contains at least one temperature preference, exactly one weather alarm
    preference, and exactly one APO preference.
    The preference file is formatted as follows:
    Each entry has the name of the preference owner
    Each field in the entry is terminated with a new line character
    Each entry is separated from other entries by an empty line
    An example entry in the preference file is:
    name: Bryan
    Medical Condition Type: 2
    pref-1: when 30 suggest pool //temp. threshold example
    pref-2: when APO suggest cinema //APO threshold example
    pref-3: when weather suggest cinema //weather alarm example
    4.2 Preference Evaluation
    Preference evaluation is initiated by a request from the Context Manager when a weather alarm is triggered
    or either one of the APO or Temperature threshold is reached.
    This request contains:
    the name of the user whose preferences should be checked
    the triggered weather alarm
    the current temperature readings or the word“APO”depending on which threshold is reached
    The Preference Repository checks the preferences for the specified user to see if the context values in the
    preferences match with any of the sensor readings. The services suggested by any matching preferences
    are then returned to the Context Manager as the result of the request.
    For example, a user Alice has defined the preference:
    when 25 suggest pool //temp. threshold example
    If a request from the Context Manager contains“Alice, normal, 25”, the Preference Repository will return
    “pool”to the Context Manager, which will then return“Indooroopilly”,“Garden City”and“South Bank
    Parkland”to the User Interface.
    Another example, a user Alice has defined the preference:
    when 30 suggest pool //temp. threshold example
    when APO suggest shops //APO threshold example
    If a request from the Context Manager contains“Alice, normal, APO”, the Preference Repository will
    return“shops”to the Context Manager, which will only return“Indooroopilly”and“Garden City”to the
    User Interface without“South Bank Parkland”.
    4.3 Starting the Preference Repository
    The Preference Repository is started from Eclipse, accepting the following argument:
    [preference-file]
    where: [preference-file] is the name of the file containing the user preferences.
    4.4 Shutting down the Preference Repository
    The Preference Repository shuts down when it receives a notification from the Context Manager
    instructing it to do so. The Preference Repository deregisters its subscription with Ice Storm before exiting.
  11. The User Interface (UI)
    The Enviro Smart Application provides an interface through which users can issue queries for information
    about the city, and also receive warnings and suggestions based on predefined preferences when user’s
    APO threshold is reached.
    Users interact with the Enviro Smart Application using a text-based menu. User menu choices are read
    off standard in. All spec-related Enviro Smart Application output is printed to standard out. All non-spec
    Enviro Smart Application output must be printed to standard error.
    5.1 Initialisation and queries
    The Enviro Smart Application initially asks for a name of the user:
    Context-aware Enviro Smart Application
    Please enter your user name:
    Then a main menu will initially appear as:
    Context-aware Enviro Smart Application Main Menu
    Please select an option:
  12. Search for information on a specific item of interest
  13. Search for items of interest in current location
    E. Exit
    The user then has the option of selecting 1, 2 or E.
    Option 1: Search for a specific item of interest
    The user is presented with a prompt requesting the name of an item of interest.
    Please enter name of item of interest:
    The user enters the name of an item of interest. A request is then made to the Context Manager querying
    for information on the item of interest.
    The information returned by the Context Manager is then displayed on the screen in the format:
    Information about <item of interest name>
    <information returned by Context Manager>
    If a user searched for South Bank Parklands the following would be printed:
    Information about South Bank Parklands:
    The South Bank Parklands area was created as part of the rejuvenation of the
    industrial water front undertaken for World Expo 1988. The Parklands area contains
    many shops, a cinema complex, and a large number of restaurants as well as a manmade
    beach. A river promenade stretches the length of South Bank Parklands.
    If the item of interest is not recognised (not in the city information file) the Enviro Smart Application
    prints the following:
    No match found for item of interest
    Irrespective of whether the query succeeds or fails, pressing the Enter key should return the user to the
    Main Menu.
    Option 2: Search for items of interest in current location
    A request is made to the Context Manager querying for the names of items of interest in the user’s current
    location. For example, the current location of the user is A and A has two items of interest (South Bank
    Parklands and The IMAX cinema), the Context Manager will respond with a list of names of items of
    interest in the user’s current location (printed one per line) as below:
    The following items of interest are in your location:
    South Bank Parklands
    The IMAX cinema
    If there are no items of interest in the user’s current location, the following message is printed to the
    screen:
    There are no items of interest in your current location.
    Irrespective of whether the query succeeds or fails, pressing the Enter key returns to the Main Menu.
    Option E: Exit
    A message is sent to the Context Manager informing it that the Enviro Smart Application is exiting. The
    Enviro Smart Application then deregisters with the Ice Storm and exits.
    5.2 Receiving warnings and suggestions
    If a weather alarm is triggered, the Enviro Smart Application will issue a warning of the following format:
    Context-aware Enviro Smart Application Main Menu
    Warning, extreme weather is detected, the current weather event is <Current weather
    alarm>
    Suggestion – please go to <item of interest name 1>, <item of interest name 2>.
    Please select an option:
  14. Search for information on a specific item of interest
  15. Search for items of interest in current location
    E. Exit
    If user’s APO threshold is reached, the Enviro Smart Application will issue a warning of the following
    format:
    Context-aware Enviro Smart Application Main Menu
    Warning, significant air pollution level detected, the current AQI is <Current
    AQI>
    Suggestion – please go to <item of interest name 1>, <item of interest name 2>.
    Please select an option:
  16. Search for information on a specific item of interest
  17. Search for items of interest in current location
    E. Exit
    If user’s predefined temperature is reached, the Enviro Smart application will issue a warning with the
    menu appear as:
    Context-aware Enviro Smart Application Main Menu
    Warning, Temperature is now <Current Temperature>
    Suggestion – please go to <item of interest name 1>, <item of interest name 2>.
    Please select an option:
  18. Search for information on a specific item of interest
  19. Search for items of interest in current location
    E. Exit
    Suggestions are printed out as soon as they are received. It may happen that a suggestion is printed to the
    screen while a user is typing information for one of the other menu options. This is acceptable behaviour
    for the Enviro Smart Application.
    5.3 Starting the Interface of the Enviro Smart Application
    The Enviro Smart Application is started in Eclipse, taking no arguments.
  20. Designing the start and exit of the application and choosing
    appropriate communication paradigms
    It is necessary to design the order in which the components start and exit, as well as determine the
    communication paradigm (i.e., RMI and/or Publish/Subscribe Notification) employed between each
    component. The final electronic submission should include a file called“Design details”that describes
    this design, and annotates Figure 1 below with appropriate arrows to show all the communications that
    occurs between components. Each annotated arrow must have a number associated with it for
    identification purpose when completing Table 2 below the figure. There can be more than one arrow
    between two components, and each arrow should occupy at least one row in the table.
    Figure 1.
    Arrow
    Num.
    Sending
    Component
    Receiving
    Component
    Communication
    paradigm
    Brief description of the
    communication taking place
    e.g., 1 Sensor 1 Server A Publish/Subscribe Sensor 1 sends sensor readings
    to Server A
    … … … …
    Table 2.
  21. Assessment
    The students will have to provide a demonstration of how the application works for the assessment
    purposes. Students have the options of demonstrating their applications on their own laptops or the lab
    machines. To maintain academic integrity, the applications used for demonstration must be same as the
    one that students have submitted. That is, if the java files students used to demonstrate their applications
    are different to the ones they submitted, they will be subjected to investigation.
    Marks are allocated for the different components of the assignment as follows:
    Assessment item Marks allocated
    Appropriate design of the start and exit of the application and chose
    of communication paradigms between each component
    5
    Context Manager
  22. correctly responds to Enviro Smart Application queries
  23. correctly evaluate APO and temperature threshold
  24. correctly deliver extreme weather warnings
    5
  25. correctly makes suggestions and warnings
  26. request to shutdown supported as per specification (i.e., shutdown
    when all UIs have exited)
    Preference Repository
  27. responds to queries as per specification
  28. correctly evaluates user preferences
    3
    Sensors
  29. all types of sensor supported
  30. sensors provide appropriate readings
  31. deregistration of subscription on IceStorm and exiting when
    receiving shutdown notification
    3
    Location Server
  32. location mapping supported
  33. forward location and indoor/outdoor status to context manager as
    per specification
  34. deregistration of subscription on IceStorm and exiting when
    receiving shutdown notification
    2
    Enviro Smart Application
  35. user interface as per specification
  36. queries sent to Context Manager
  37. correctly output suggestions and warning
  38. support multiple users
  39. issues shutdown request, deregister subscription on IceStorm and
    exits
    3
    General
  40. Ice Version 3.7.0, coding style and documentations (code
    commented, neat layout, minimal spelling and grammar mistakes)
    1
    TOTAL 22
    Partial marks will be awarded for assignments that are missing components, do not compile, or only
    partially fulfil the stated specifications. Assignments will be returned to students no later than 3 weeks
    after the assignment submission deadline. Assignment marks will be emailed to each student’s UQ email
    account and will also be accessible on the course website.
    Part B (3%) – publish/subscribe
    For this part of the assignment find two papers on the publish/subscribe communication paradigm (content
    based routing is another term for it – routing based on the message content not based on addresses). The
    papers could be pure research papers on publish/subscribe or descriptions of a design and implementation
    of a particular commercially used publish/subscribe system. Read the papers and analyse the presented
    research issues and/or design and implementation issues of publish/subscribe presented in the papers.
    Write a short report (2-3 pages) on your findings (include goals, research problems (if any) and their
    proposed solutions, and design and implementation issues). Reference the papers in your report.
  41. Submission details
    The assignment must be submitted as a zipped file through Blackboard by the 4pm deadline on Monday
    15/04/2019. Students may submit their assignment multiple times, but only the latest submission will be
    marked. Unless advised in the Course Profile, assessment items received after the due date will
    receive a zero mark unless you have been approved to submit the assessment item after the due
    date.
    Each assignment submission must contain the following files:
    ContextManager.java
    EnviroAppUI.java
    PreferenceRepository.java
    AllSensors.java
    WeatherAlarm.java
    LocationServer.java
    Students may also submit their city information file for the ContextManager, preference file for the
    Preference Repository, predefined files for each of the sensors, as well as any other“helper”classes
    required.
  42. Updates to the specification
    Clarifications and updates to this specification may be made up to one week prior to the submission
    deadline. If such clarifications or updates are made they will be communicated to students via the
    Discussion Board on Blackboard and also emailed directly to students’UQ email accounts. It is
    expected that students will check the course discussion board and their email on a daily basis.
  43. Plagiarism
    The assignment should be an individual work. All students should read and understand the University’s
    policy on plagiarism. Any cases of plagiarism detected will be dealt with according to the University’s
    Plagiarism Policy.
    Appendix
    A simple way to run the demo of IceStorm.
  44. Install Ice-3.7.0.msi which can be found at https://zeroc.com/downloads/i…
  45. Install Eclipse plug-in. From the Eclipse main menu, select Help -> Marketplace, the search for and install
    Ice Builder. Check Ice Home is correctly set from Windows -> Preferences
  46. Create a Java project, and add new files Subscriber.java, Publisher.java and Clock.ice the same as the files
    in ice-demos-3.7\java\IceStorm\clock. (Clock.ice should be created as slice file)
  47. Activate the Ice Builder plugin for the project. Right-click the project then select Ice Builder -> Add Ice
    Builder
  48. Download icestorm.jar from https://search.maven.org/#search|ga|1|zeroc-icestorm and ice.jar from
    https://search.maven.org/remo… and then add those
    two files to Project Build Path
  49. Download ice-demos-3.7.zip from https://github.com/zeroc-ice/…
  50. Copy the configuration files from ice-demos-3.7\java\IceStorm\clock to the bin directory of the java project.
    (config.icebox, config.pub, config.sub config.service)
  51. Use the command line and enter the bin directory of java project. Input“icebox –Ice.Config=config.icebox”
    to start the server (make sure that the bin directory of Ice-3.7.0 is included in your PATH environment
    variable)
  52. Start the publisher from the Eclipse, and then start the Subscriber from the Eclipse. Set their working
    directories to ${workspace_loc:Clock/bin} from Run Configurations -> Arguments -> Working
    directory.
    WX:codehelp
正文完
 0