A demo done by Marintek AS (http://marintek.no) to show a possible 'solution' to a multimodal transport planning problem. ;-) It's a small part of a bigger
european funded project, called FInest (which lasted until 01/04/2013).
The software is based on the ISIS framework http://isis.apache.org/ plus some extentions for google maps, calendar views and wicket charts
A Google location service is used to look up geographcial data of the destinations.
The use of these extentions needs some additional configuration. Ask on the ISIS users' discussion list for help
Background is that some cargo should be transported from a pickup destination to a delivery destination.
A 'client' creates a transport demand
A 'logistics service provider' plans a route from pickup to delivery using a shortest path algorithm.
The route's waypoints (where cargo is loaded from one providere to another) may be shown on a map.
The costs associated with each leg may be shown as a pie chart
The resource usage, i.e. costs and time for each leg, may be shown as a bar chart.
An event may be generated (e.g. some customs papers are missing, therefore transport execution stops and a replan
Everything is a bit shaky and there is a lot of room for improvement, but it shows how a relatively simple
domain model can be made 'alive' using ISIS.
The underlying datastore is in-memory, I never made it to implement the JDO store. :-(
A great Thanks to Dan Haywood and others on the ISIS team!! :-)
How to run:
- cd to projects root directory
- mvn install
- cd to viewer-wicket
- mvn antrun:run
A window will pop up where you can start the internal webserver
- click start
- The default web browser will pop up
- The database will be empty for each restart
Alternativley an online version can (so far ;-) be found at http://tpmdemo.eidemsnesset.cloudbees.net
A quick tour:
- log in with chris/pass
- a user with less privilges is arne/pass (Arne is not allowed to plan. He represents a customer who only is able
to creatae a transport demand)
- System/Install to have some predefined objects. Give it some time to complete...
- Select 'Transport Demands/All Transport Demands' to show a list of predefined transport demands, i.e. requests to
transport a cargo from pickup to delivery.
The calendar view gets somewhat confused by the dates.
- Select 'Fiskarstrand-Rotterdam' with the Dried Fish cargo
- On the left side of the screen some details show up, on the right side an empty schedule and now waypoints.
- Select the 'Plan transport' at the top right corner of the screen
- You may now enter you criteria for finding a transport. Max price, max time and/or 'fastest', 'cheapest', 'cheap and fast' and, as a bonus 'expensive and slow' ;-)
The software uses a shortest-paths-algorithm to look for the best solutions according to your criterium
- When done, click and a list with possible schedules is presented
- Select one, click the corresponding check box on the left and click 'plan and book'
- The image of the selected schedule changes (a tick mark is placed on top of the globe)
- Select the transport demand again, either from the top menu or click on the corresponding bread crumb
- The schedule is now filled, waypoints may be shown on a google map in the widget below
- Click on 'Cost Pie' and 'Resource Usage' to see some graphs
- You may now send an Event to the system. Events should in principle come from an outside system, but this is a demo...
- Send a 'Failure event' and select a leg (probably not the last leg)
- The status in the schedule changes to CANCELD and a red cross icon is shown.
- Selecting replan-transport will give you the possibility to replan the transport, starting at the canceled destination.
- Be sure to select 'REPLAN and book' (plan and book is still shown. It should have been hidden...)
- Have a look at all the logistic service providers, all logistic services, all destinations etc.
- See the file TpmFixture.java for how the main domain objects link.
The software is not as streamlined as it should be and it contains bugs. ;-)
Some screenshots are here:
Contains shortest path java code with following copyright
* Copyright (c) 2004-2008 Arizona State University. All rights reserved.
added Maven support to fit the rest of the project