The smallest resource that is named, versioned, and packaged as part of an application and can be used by other modules that are part of the same application. A shared module cannot be deployed by itself; it must be included as part of an application module.
Shared modules export their functionality (processes, shared resources, and schema namespaces) to application modules or to other shared modules. This means that other modules in the system may depend on a shared module for this information.
Relationship Between Application Modules and Shared Modules
Shared modules can depend only on other shared modules and cannot depend on application modules.
At the module level, a process can reference another process in a different module.
A process can also reference a WSDL or a schema defined in a different shared module. Schemas that are intended to be exported from a shared module must be contained in the
Schemas special folder.
An application cannot contain two modules with identical package names. Package names must be unique across shared modules and application modules within an application. If an application contains two packages with the same name, rename one of the packages, or remove a package from the application.