{"id":14977515,"url":"https://github.com/openwms/org.openwms","last_synced_at":"2025-05-14T20:08:32.846Z","repository":{"id":25345091,"uuid":"28772513","full_name":"openwms/org.openwms","owner":"openwms","description":"Open Warehouse Management System","archived":false,"fork":false,"pushed_at":"2025-03-17T17:51:26.000Z","size":103917,"stargazers_count":565,"open_issues_count":1,"forks_count":178,"subscribers_count":53,"default_branch":"master","last_synced_at":"2025-04-13T15:59:34.993Z","etag":null,"topics":["cloud","cloud-native","free","logistics","materialflow","spring","spring-boot","spring-framework","tms","warehouse","wms"],"latest_commit_sha":null,"homepage":"https://openwms.github.io/org.openwms/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openwms.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":["openwms"],"patreon":"hscherrer"}},"created_at":"2015-01-04T11:32:28.000Z","updated_at":"2025-04-12T06:01:49.000Z","dependencies_parsed_at":"2024-06-13T14:53:23.298Z","dependency_job_id":"abfc6cc0-c139-4e58-bc84-bff6187147a4","html_url":"https://github.com/openwms/org.openwms","commit_stats":{"total_commits":5095,"total_committers":8,"mean_commits":636.875,"dds":"0.47576054955839053","last_synced_commit":"5143c530505d1f490661b9d3d4d820e7e8cf8ce3"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openwms%2Forg.openwms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openwms%2Forg.openwms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openwms%2Forg.openwms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openwms%2Forg.openwms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openwms","download_url":"https://codeload.github.com/openwms/org.openwms/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248741199,"owners_count":21154252,"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":["cloud","cloud-native","free","logistics","materialflow","spring","spring-boot","spring-framework","tms","warehouse","wms"],"created_at":"2024-09-24T13:55:48.488Z","updated_at":"2025-04-13T15:59:43.110Z","avatar_url":"https://github.com/openwms.png","language":"Java","funding_links":["https://github.com/sponsors/openwms","https://patreon.com/hscherrer"],"categories":[],"sub_categories":[],"readme":"OpenWMS.org\n=====================\n\nIs a free to use and extensible Warehouse Management System (WMS) with a Material Flow Control (MFC) system for automatic and manual\nwarehouses. \n\nFind further documentation in the [Wiki](https://wiki.openwms.cloud/projects/openwms/wiki/00-dot-02-business-services)\n\n# Architecture\nInstead of applying a technical layered architecture (like with previous technologies), the current architecture focuses on\nbusiness components. Business functions with a high cohesion are kept together as small deployable software components. Each\ncomponent has its own development lifecycle with its own roadmap of the API evolution and a separate data store. The following sketch shows\nall currently existing components of the OpenWMS.org system together with all potential surrounding systems.\n\n![Architecture][1]\n\nBeside the user interface, several other systems interact with the OpenWMS.org system. ERP systems on top are sending high-level tasks\nto OpenWMS.org, e.g. a customer orders with order lines that refer to products managed by the `Inventory Service`.\nOpenWMS.org fulfills these tasks by orchestrating the underlying subsystems. The communication between OpenWMS.org and an ERP system might \nbe in both directions, OpenWMS.org although sends status messages back to the ERP or might request product catalog updates, depending on the\nproject needs. On the bottom of the above graphic the system if connected to devices that are close to actors and sensors in automatic\nwarehouses. Those devices are almost limited in hardware resources and protocol stacks. Typical [PLC](https://en.wikipedia.org/wiki/Programmable_logic_controller)\n(Programmable Logic Controllers) are used to interact with field sensors and to control actors. OpenWMS.org is an open source software and\ntherefore promotes the usage of open source hardware components over commercial PLC products. The first choice of supported devices\nare boards, like [Raspberry Pi](https://www.raspberrypi.org/) or industrial [Revolution Pi](https://revolution.kunbus.com/), with an open\nmicrocontroller architecture. But nevertheless also closed proprietary systems are supported as well. All this kind of subsystems have one\nthing in common: They are close to the hardware and expect response times in the range of milliseconds to control motors and switch gates\nvery quickly. They have the power to bring down a serving component down just by repeating requests all the time. Typical web application\nclients are different in that the infrastructure takes care of DoS attacks, and the application server pools incoming traffic.\n\nRead more about each components architecture and design on the components corresponding GitHub page.\n\n# Technologies\nIn addition to a bunch of Spring Framework subprojects, OpenWMS.org supports popular BPMN workflow engines like [Activiti](https://www.activiti.org),\n[Flowable](https://www.flowable.org) and [Camunda](https://www.camunda.org) to take routing decisions on the transport layer.\nRDBMS access is most often realised with the [Jakarta Persistence API](https://de.wikipedia.org/wiki/Jakarta_Persistence_API). Some\ncomponents might also use NoSQL databases, like MongoDB. [RabbitMQ](https://rabbitmq.com) in combination with the Spring Integration project\nis used as an event broker for asynchronous event and command propagation. Currently, all microservices are realised as Spring Boot \napplications designed to run on any modern PaaS cloud platforms, like the [Azure Kubernetes Service](https://azure.microsoft.com/de-de/services/kubernetes-service), [AWS EKS](https://aws.amazon.com/eks) or [Redhat OpenShift](https://www.redhat.com/en/technologies/cloud-computing/openshift).\n\n# Microservices\nDue to OpenWMS.org is built on a modern distributed microservice architecture that follows the [Twelve-Factor](https://12factor.net)\nmethodology, all functional business components are managed within their own SDLC (Software Development Life Cycle) and own source code\nrepositories.\n\n| Service Name               | Repository                                                                                    | Accessibility   | License    | Version                                                                                       |\n|----------------------------|-----------------------------------------------------------------------------------------------|-----------------|------------|-----------------------------------------------------------------------------------------------|\n| Service Registry           | [org.openwms.services](https://github.com/spring-labs/org.openwms.services)                   | Public          | Apache-2.0 | ![GitHub Release](https://img.shields.io/github/v/tag/spring-labs/org.openwms.services)       |\n| Configuration Service      | [org.openwms.configuration](https://github.com/spring-labs/org.openwms.configuration)         | Public          | Apache-2.0 | ![GitHub Release](https://img.shields.io/github/v/tag/spring-labs/org.openwms.configuration)  |\n| Gateway Service            | [org.openwms.gateway](https://github.com/spring-labs/org.openwms.gateway)                     | Public          | Apache-2.0 | ![GitHub Release](https://img.shields.io/github/v/tag/spring-labs/org.openwms.gateway)        |\n| Gateway Service ENTERPRISE | [org.openwms.gateway](https://github.com/interface21-io/org.openwms.gateway)                  | Private         | GPLv3      |                                                                                               |\n| Auth Service               | [org.openwms.auth](https://github.com/spring-labs/org.openwms.auth)                           | Private         | GPLv3      |                                                                                               |\n| UAA Service                | [org.openwms.core.uaa](https://github.com/openwms/org.openwms.core.uaa)                       | Public          | Apache-2.0 | ![GitHub Release](https://img.shields.io/github/v/tag/openwms/org.openwms.core.uaa)           |\n| Preference Service         | [org.openwms.core.preferences](https://github.com/openwms/org.openwms.core.preferences)       | Public          | Apache-2.0 | ![GitHub Release](https://img.shields.io/github/v/tag/openwms/org.openwms.core.preferences)   |\n| Printing Service           | [org.openwms.core.printing](https://github.com/openwms/org.openwms.core.printing)             | Private         | GPLv3      |                                                                                               |\n| Translation Service        | [org.openwms.core.lang](https://github.com/openwms/org.openwms.core.lang)                     | Private Preview | Apache-2.0 |                                                                                               |\n| ArchUnit Test Library      | [org.openwms.core.test.arch](https://github.com/openwms/org.openwms.core.test.arch)           | Public          | Apache-2.0 | ![GitHub Release](https://img.shields.io/github/v/tag/openwms/org.openwms.core.test.arch)     |\n| Unit Of Measure Library    | [org.openwms.core.units](https://github.com/openwms/org.openwms.core.units)                   | Public          | Apache-2.0 | ![GitHub Release](https://img.shields.io/github/v/tag/openwms/org.openwms.core.units)         |\n| Common Service             | [org.openwms.common.service](https://github.com/openwms/org.openwms.common.service)           | Public          | Apache-2.0 | ![GitHub Release](https://img.shields.io/github/v/tag/openwms/org.openwms.common.service)     |\n| OSIP/TCP Driver            | [org.openwms.common.comm](https://github.com/openwms/org.openwms.common.comm)                 | Public          | Apache-2.0 | ![GitHub Release](https://img.shields.io/github/v/tag/openwms/org.openwms.common.comm)        |\n| OPCUA Driver               | [org.openwms.common.opcua](https://github.com/interface21-io/org.openwms.common.opcua)        | Private Preview | Apache-2.0 |                                                                                               |\n| Transaction Service        | [org.openwms.common.transactions](https://github.com/openwms/org.openwms.common.transactions) | Private Preview | Apache-2.0 |                                                                                               |\n| Common Tasks Service       | [org.openwms.common.tasks](https://github.com/openwms/org.openwms.common.tasks)               | Public          | Apache-2.0 |                                                                                               |\n| Transportation Service     | [org.openwms.tms.transportation](https://github.com/openwms/org.openwms.tms.transportation)   | Public          | Apache-2.0 | ![GitHub Release](https://img.shields.io/github/v/tag/openwms/org.openwms.tms.transportation) |\n| TMS Routing                | [org.openwms.tms.routing](https://github.com/openwms/org.openwms.tms.routing)                 | Public          | Apache-2.0 | ![GitHub Release](https://img.shields.io/github/v/tag/openwms/org.openwms.tms.routing)        |\n| Receiving Service          | [org.openwms.wms.receiving](https://github.com/openwms/org.openwms.wms.receiving)             | Public          | Apache-2.0 |                                                                                               |\n| Inventory Service          | [org.openwms.wms.inventory](https://github.com/interface21-io/org.openwms.wms.inventory)      | Private Preview | Apache-2.0 |                                                                                               |\n| Picking Library            | [org.openwms.wms.picking](https://github.com/openwms/org.openwms.wms.picking)                 | Private         | GPLv3      |                                                                                               |\n| Movements Service          | [org.openwms.wms.movements](https://github.com/openwms/org.openwms.wms.movements)             | Public          | Apache-2.0 |                                                                                               |\n| WMS Tasks Service          | [org.openwms.wms.tasks](https://github.com/openwms/org.openwms.wms.tasks)                     | Private Preview | Apache-2.0 |                                                                                               |\n| Partner Service            | [org.openwms.wms.partners](https://github.com/interface21-io/org.openwms.wms.partners)        | Private Preview | Apache-2.0 |                                                                                               |\n| Trucks Service             | [org.openwms.wms.trucks](https://github.com/openwms/org.openwms.wms.trucks)                   | Private Preview | Apache-2.0 |                                                                                               |\n| Shipping Service           | [org.openwms.wms.shipping](https://github.com/openwms/org.openwms.wms.shipping)               | Private Preview | Apache-2.0 |                                                                                               |\n| Putaway Library            | [org.openwms.wms.putaway](https://github.com/openwms/org.openwms.wms.putaway)                 | Private         | GPLv3      |                                                                                               |\n| SAP Adapter                | [org.openwms.wms.sap](https://github.com/openwms/org.openwms.wms.sap)                         | Private         | GPLv3      |                                                                                               |\n| Dynamics Adapter           | [org.openwms.wms.msdynamics](https://github.com/openwms/org.openwms.wms.msdynamics)           | Private         | GPLv3      |                                                                                               |\n| NetSuite Adapter           | [org.openwms.wms.netsuite](https://github.com/openwms/org.openwms.wms.netsuite)               | Private         | GPLv3      |                                                                                               |\n| WMS Orchestrator           | [org.openwms.wms.orchestrator](https://github.com/openwms/org.openwms.wms.orchestrator)       | Private Preview | Apache-2.0 |                                                                                               |\n\n[1]: src/docs/res/microservice_architecture.jpeg\n\n# Current state of development\nMost components are under active development. In 2016 the whole product has been migrated from the technical structured OSGi architecture\ntowards a business oriented architecture with Spring Boot microservices and Netflix OSS components. Documentation of previously released\nversions does still exist on [SourceForge.net](http://openwms2005.sourceforge.net) and [Atlassian Confluence](https://openwms.atlassian.net/wiki).\n**All current documentation is maintained in [OpenWMS Cloud Wiki](https://wiki.openwms.cloud)**.\n\n# Previous Architectures\nThe project started in 2005 with an J2EE server approach based on EJB2.1 with XDoclets, Hibernate and JavaServer Faces (JSF). In more than\n15 years we've seen a bunch of technologies addressing all the same problems.\n \nA PoC has been implemented with EJB2.1, but the project actually started with EJB3.0. Since around 2007 OpenWMS.org is based on the Spring\nFramework and this is still fine, and the right choice. Spring in combination with OSGi seemed to be the perfect match to build a modular\nand extensible base project. Unfortunately Spring stopped their efforts on OSGi, in particular on Spring dmServer and Spring Dynamic Modules\n. In a transition step to the current microservice architecture, we put all the OSGi bundles into a fat JavaEE WAR deployment unit to run\nthe application on a servlet container like Apache Tomcat. After that we redesigned all services and business functions and applied a\nmicroservice architecture. The standalone WAR deployment is not supported anymore because it was not demanded by the community. Only the\nmicroservice architecture is supported right now.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenwms%2Forg.openwms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenwms%2Forg.openwms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenwms%2Forg.openwms/lists"}