Plug-ins

Plug-ins connect to the system using the EPOC Component Object Model (ECOM). ECOM is based on client/server architecture and provides services to instantiate, resolve, and destroy instances of plug-ins at run time.

Figure 22: ECOM framework

It is important to verify all plug-ins before loading them into the application, because a hostile or malfunctioning plug-in may cause crashes or security leaks, even on otherwise well-tested applications. Platform security takes care of the plug-in verification by using the capability model; processes cannot load plug-ins that are less trusted than the process itself, that is, have less capabilities. See ECom architecture in the Symbian OS Library for more information about the ECOM plug-in architecture. Examples are available at Forum Nokia's Symbian C++ code and examples page.

Communication plug-ins

It is possible to use plug-ins to implement additional functionality to Serial, Socket, and Messaging frameworks. These kinds of plug-ins are especially important for security because they act in the vicinity of communication facilities.

  • For serial communication there are communications modules (CSY), which are DLL plug-ins to the Comms Server and need to be loaded before data can be transferred.

  • For socket-based communication there are protocol modules (PRT) and an affiliated capability file (.esk). Generally, PRTs work in the same way as CSYs in serial communications.

  • For messaging there are Message Type Module (MTM) plug-ins. The main difference when compared to serial and socket plug-ins is that MTMs are a suite of DLLs rather than a single DLL. Also, MTMs include both client and server components.