{"id":24649104,"url":"https://github.com/ow2-proactive/scheduling-portal","last_synced_at":"2025-05-13T11:15:17.591Z","repository":{"id":32152058,"uuid":"35725080","full_name":"ow2-proactive/scheduling-portal","owner":"ow2-proactive","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-25T15:05:11.000Z","size":129683,"stargazers_count":4,"open_issues_count":61,"forks_count":37,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-05-13T11:15:01.073Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://try.activeeon.com","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ow2-proactive.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2015-05-16T13:38:55.000Z","updated_at":"2025-04-17T15:53:24.000Z","dependencies_parsed_at":"2024-01-17T17:26:23.636Z","dependency_job_id":"bb7b5ae8-ea58-4579-a0b2-e1156196a865","html_url":"https://github.com/ow2-proactive/scheduling-portal","commit_stats":null,"previous_names":[],"tags_count":283,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ow2-proactive%2Fscheduling-portal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ow2-proactive%2Fscheduling-portal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ow2-proactive%2Fscheduling-portal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ow2-proactive%2Fscheduling-portal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ow2-proactive","download_url":"https://codeload.github.com/ow2-proactive/scheduling-portal/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253929377,"owners_count":21985804,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-25T17:15:46.745Z","updated_at":"2025-05-13T11:15:17.558Z","avatar_url":"https://github.com/ow2-proactive.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ProActive Workflows \u0026 Scheduling\n\n[![Build Status](http://jenkins.activeeon.com/buildStatus/icon?job=scheduling-portal)](http://jenkins.activeeon.com/job/scheduling-portal/)\n\n\n## Description\n\nThis project is a Web front-end for the ProActive Scheduler and Resource Manager\nREST API. It does not require the REST API to be built, but will not be able to\nproperly run without it.\n\nInformation about the REST API, the Scheduler and Resource Manager software can\nbe found at the following locations:\n\n  - Project: http://proactive.inria.fr/\n  - SCM: http://gitorious.ow2.org/ow2-proactive\n  - Mailing: http://mail.ow2.org/wws/arc/proactive\n\nThis project is Open Source and distributed under the terms of the GNU AGPLv3,\na copy of which was included along with this file.\n\n\n## Building\n\nBuilding binaries requires to follow what is explained in the README\n(https://github.com/ow2-proactive/scheduling#building-from-sources). It will\ngenerate an archive containing binaries (JAR files). However it will not embed\nWeb portails. The procedure to also embed Web portals is a bit complex. That's\nwhy you can download releases directly from activeeon.com.\n\nBelow are explanations to build and include Web portals with a customized version\nof Scheduling assuming that the absolute path to the folder where scheduling is\ninstalled is SCHEDULING_HOME:\n\n  - Studio Web Portal: it is pretty easy to embed. You just need to checkout the\n  project (https://github.com/ow2-proactive/studio). Supposing the absolute path\n  to this folder is STUDIO_HOME, you need to create a symbolic link in\n  SCHEDULING_HOME/dist/war/studio that points to STUDIO_HOME/app:\n\n    `$\u003e ln -s STUDIO_HOME/app SCHEDULING_HOME/dist/war/studio`\n\n  - Scheduler and RM portals: Checkout the project scheduling-portal\n  (https://github.com/ow2-proactive/scheduling-portal). Execute `./gradlew build` (linux/mac) or `gradlew build` (windows).\n  The command will produce two wars that you need to symlink to SCHEDULING_HOME/dist/war:\n\n    `$\u003e ln -s SCHEDULING_PORTAL_HOME/rm-portal/build/libs/rm-portal-6.3.0.war SCHEDULING_HOME/dist/war/rm.war`\n\n    `$\u003e ln -s SCHEDULING_PORTAL_HOME/scheduler-portal/build/libs/scheduler-portal-6.3.0.war SCHEDULING_HOME/dist/war/scheduler.war`\n\nOnce you restart the scheduler, you should have the Web interfaces deployed.\n\n\n## Deploying\n\nDeploying either the Scheduler or Resource Manager web portal requires an\nApplication Server. For instance, this document will describe the procedure\nfor Apache Tomcat 6 which can be downloaded here: http://tomcat.apache.org/ .\nOther versions of Apache Tomcat, and other Application Servers such as Jetty\n(http://jetty.codehaus.org/jetty/) should work similarly.\n\nFollow these steps:\n\n  1. Stop Tomcat if it was running using /bin/shutdown.[sh|bat]\n  2. Copy both .war files from dist/ to the webapps/ directory in the Tomcat\n  installation directory 3. Unpack both .war files, ie for the rm.war file:\n\n    Unix:\n\n    `$\u003e cd webapps`\n\n    `$\u003e unzip rm.war -d rm`\n\n    Windows:\n\n    `$\u003e cd webapps`\n\n    `$\u003e mkdir rm`\n\n    `$\u003e cd rm`\n\n    `$\u003e \"%JAVA_HOME%\"\\bin\\jar -xf ..\\rm.war`\n\n  3. Edit the configuration file of each application to specify the URL\n    of the REST server that the application will connect to.\n      - For the Scheduler, the file is /webapps/scheduler/scheduler.conf,\n        and the configuration key \"sched.rest.url\".\n      - For the RM, the file is /webapps/rm/rm.conf, and the configuration\n        key \"rm.rest.url\".\n\n    ie. for the rm: \"rm.rest.url = http://my.example.com:8080/rm_rest/\"\n    This step requires that you run the REST API server somewhere. This\n    can be a remote server, but the REST API server may as well run in the\n    same application server as the Web Portal.\n\n  4. Start the Tomcat server using /bin/startup.[sh|bat]\n  5. Check the logs in /logs/catalina.out. If the logs show a security exception,\n   ie.:\n\n    `java.security.AccessControlException: access denied`\n\n  Kill tomcat, and restart it using\n\n  `$\u003e /bin/startup.[sh|bat] -security`\n\n  to use a security manager.\n\n\n## Architecture\n\nThis section describes briefly the project's architecture.\nIf you do not wish to understand the internals of the project, read or edit its\nsourcecode, then this section is of no use to you.\n\nHere is how the applications tiers interact with each others:\n\n      .------.      .-----------.      |Comm layer + Platform |\n      |  RM  +------. Scheduler |      +-----------+----------+\n      `--+---'      `-----+-----'      |           | Java     |\n         |                |            |           |          |\n         |                |            |Java RPC   |          |\n    .----+----.     .-----+------.     |           |          |\n    | RM REST |     | Sched REST |     |           |          |\n    `----+----'     `-----+------'     |           | Tomcat   |\n         |                |            |           |          |\n         |                |            |Java RPC   |          |\n    .----+-----.   .------+-------.    |           |          |\n    | RM Portal|   | Sched Portal |    |           |          |\n    `----+-----'   `------+-------'    |           | Tomcat   |\n         |................|            |           |          |\n                 |                     |           |          |\n           .-----+-------.             |HTTP(S)    |          |\n           | Web Browser |             |           |          |\n           `-------------'             |           | Any web  |\n                                       |           | browser  |\n\nIn the above diagram:\n\n  - The end user uses a Web Browser to connect to the Portal. The Portal\n    displays information retrieved from the REST API through an HTTP connection.\n  - The REST API retrieves information from the Scheduler or RM server using\n    native ProActive Java RPC communications, and stores it locally.\n    This has two effects:\n\n    - the REST server acts as a caching layer, preventing the scheduler from\n    suffering from the load of too many connected clients.\n    - clients can connect through the REST API without using Java or\n    ProActive and only through a simple HTTP client.\n\n  - The Scheduler handles the job execution workflow. It is the central piece\n    of the application.\n  - The Resource Manager aggregates physical resources and provides them\n    to the Scheduler so that it may execute tasks.\n\n\nThe RM and Scheduler applications are very close. They are built upon the same\narchitecture, use the same technologies, and even share some of the same code.\n\nThis simplified architecture diagram applies to both client-side applications:\n\n                .------------.\n                |AsyncService|\n                `-----^------'\n                      |network comm\n                      |\n                .-----v----.                .---------.\n                |Controller+----------------\u003eModelImpl|\n                `-----+----'       writes   `--+------'\n         +------------+-------+                |Implements\n         |!logged    XOR      |logged          |\n    .----v----.            .--v-.              |  .-----.\n    |LoginPage|            |Page|              +--\u003eModel|\n    `---------'            `--+-'              |  `-----'\n                     +--------+-----+          |\n                     |  includes    |          |  .---------------.\n                  .--v--.        .--v--.       +--\u003eEventDispatcher|\n                  |View1|        |View2|          `---+-----------'\n                  `--+--'        `--+--'              |\n                     |              |                 |\n                     |implements    |                 |\n                .----v----.     .---v-----.           |\n                |Listener1|     |Listener2|           |\n                `----^----'     `---^-----'           |\n                     +--------------+-----------------+\n                                            onEvent\n\nThis client side application is written in Java and compiled to Javascript\nusing GWT which will allow execution in a web browser environment.\nThe server side application (AsyncService on the diagram) runs in native Java\nin an application server, and communicates with client-initiated Ajax calls.\nThe server consists in a collection of servlets that communicate with the REST\nAPI using an HTTP client.\n\n\n## Troubleshooting\n\nIf you have questions regarding this document or the project, you can use the\nProActive mailing list.\n\nIf you have found a bug, you can check the project's bug tracker to either\nsearch for open entries, or submit a new reproducible issue.\n\n  - Mailing: http://mail.ow2.org/wws/arc/proactive\n  - Tracker: https://bugs.activeeon.com/browse/PORTAL\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fow2-proactive%2Fscheduling-portal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fow2-proactive%2Fscheduling-portal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fow2-proactive%2Fscheduling-portal/lists"}