In OpenWMS.org each business function is represented by one or more business services. Almost always it is a 1:1 mapping where a business function is implemented by one single business service - a software building block. Every software component is part of one the four domains: **WMS**, **TMS**, **COMMON** or **CORE**.
Software ComponentDomainPurposeLicense
Service RegistryCOREPublic (Apache License v2)
Configuration ServiceCOREStores technical application parameters at one place. It reads those configurations from a local filesystem or from a remote Git repository. This has the advantage that all configuration changes are tracked and audited. Beside technical configuration any kind of parameters can be handled. The Configuration Service provides the technical configuration to all other services. Changes are directly propagated to the affected services and do not require a restart of those. This increases maintainability and availability.Public (Apache License v2)
Auth ServiceCOREPrivate (GPLv3)
User Account and Administration Service (UAA)COREPublic (Apache License v2)
Preferences ServiceCOREStores parameters in a relational database. Those parameters are the nature of business relevant kind instead of technical purpose. A parameter can be specific to an user only, to a group of users (role), to a service or valid for the whole application. For example, the default language setting of an user in the user interface is stored as a user scope parameter, whereas all available languages might be stored as application parameter.Public (Apache License v2)
Printing & Spooling ServiceCOREProvides an API to create documents (PDF) from a template (JasperReports) and print those documents. After creation it stores the document before sending to the printer. It offers retry mechanism and managing basic printer settings. A relational database, the filesystem or MongoDB (NoSQL) can be configured as document store.Private (GPL)
Translation ServiceCORECentral translation service for i18n and l10n support.Private Preview (Apache License v2)
COP Web User Interface (Administration and Control)COREThe COP web application is a single-page application (SPA) built with Angular technology. It offers a variety of management and overview screens for the warehouse functionality. Private (GPL)
BOB Mobile App (for operation)COREBOB is a native application built for IOS and Android mobile devices. It offers a narrowed set of business processes for the essential warehouse functions, like goods receiving, inventory movement, picking etc.Private (GPL)
Common Base ServiceCOMMONThe OpenWMS.org Common Service provides essential functionality to deal with Locations, LocationGroups and TransportUnits. For a simple example, it offers an API to move a TransportUnit from a Location A to a Location B. Besides that, also other secondary resources exist, like TransportUnitTypes or rule sets to define what type of TransportUnit can be put on what type of Location. Public (Apache License v2)
PLC & IPC Communication (Socket)COMMONThis kind of driver uses plain vanilla TCP/IP socket communication between PLC and WCS. Arbitrary project-specific messages structures can be used on top of the socket connection. It supports simplex and duplex communication between both partners. One single instance can connect to multiple parters.Public (Apache License v2)
PLC & IPC Communication (OPCUA)COMMONThis driver is based on the OPCUA architecture to exchange data between WCS and PLC/IPC. It supports reading from and writing to server nodes and subscriptions.Private Preview (Apache License v2)
Business Transactions & Audit LoggingCOMMONThe Transactions Service captures business transactions and stores them in the database. A business transaction is some important operation
that is performed as part of the warehouse processes. For example, moving inventory between locations or changing the inventory quantity.
Private Preview (Apache License v2)
Common TasksCOMMONThe Common Tasks Service is used to manage human user tasks in a warehouse. These general tasks are not specific to the WMS domain and can be used very flexible whereas WMS specific tasks (as part of the WMS Tasks Service) are more specific and can cover more detailed WMS information.Public (Apache License v2)
Transport Order Management TMSThis service allows to create TransportOrders in automated warehouses. A TransportOrder is used to transport TransportUnits (e.g. pallets, boxes, cartons) between warehouse locations. TransportOrders are created when a customer order is received or goods enter at the warehouse.Public (Apache License v2)
Transport Order RoutingTMSThe TMS Routing service is used in automatic warehouses to route TransportUnits on conveyors through the warehouse. It is responsible to handle incoming messages and selects the appropriate workflow process that finally executes the handling. The workflow is a BPMN 2.0 compliant workflow, with extensions of the used workflow engine.Public (Apache License v2)
Receiving & Goods-InWMSThe purpose of the Receiving Service is to handle goods receipts. It offers an API to create incoming orders, so called Receiving Orders (expected receipts). These kind of receipts are announced before goods are received. In contrast, blind receipts are also supported. Those don't require any announcements and allow to capture goods that are not expected to receive.Public (Apache License v2)
Inventory ManagementWMSPhysical inventory and product definitions are managed in the Inventory Management. Plugins for putaway and allocation can be linked to this service. Putaway strategies are used to find proper warehouse locations for products. Allocation algorithms are used to allocate warehouse inventory for customer orders and manage inventory reservations.

Community version: Private Preview (Apache License v2)

Enterprise version: Private (GPLv3)

PickingWMSThe Picking Library can be linked to the Inventory Service to provide the functionality and an API for picking. Currently two picking strategies are implemented: Pick & Collect and Pick & Pack.Private (GPLv3)
Manual MovementsWMSThe Movements Service is mainly used in manual warehouses to plan movements for replenishment and stocktaking.Public (Apache License v2)
WMS TasksWMSPrivate Preview (Apache License v2)
Partner Management (Suppliers & Carriers)WMSnew module - under development. The purpose of the OpenWMS.org Partner Service is to manage all kind of partner companies, either they are in the role of a customer or a supplier or a manufacturer or any other kind.Private Preview (Apache License v2)
Truck ManagementWMSTruck management is responsible to schedule trucks and cargo. It also manages drivers and assignments to trucks.Private Preview (Apache License v2)
PackingWMSnew module - under developmentPrivate Preview (Apache License v2)
Shipping & Goods-OutWMSThe Shipping Service is responsible to handle outgoing orders, those leaving the warehouse. In particular these kind of orders are typically customer orders, where each order has multiple order positions. The OpenWMS.org Shipping Service creates smaller chunks of each order position - the so-called splits.Private Preview (Apache License v2)