OPC provides specifications that enable applications to communicate with each other. As vendors release their software, and apply patches and upgrades, they provide different executables (distributable packages). However, to ensure successful OPC communication, users do not need to ensure that all their applications have the same releases. While this may be a good practice in some situations, it is not necessary. OPC compliant applications that support the same release of an OPC specification will be able to communicate with each other regardless of their vendor’s release.