Frameworks for NIM code

Jeffrey Altman jaltman at secure-endpoints.com
Wed Apr 16 11:51:57 EDT 2008


Kevin Koch wrote:
> I'd like to start a discussion about frameworks.  Currently, NIM is written
> to the Win32 API.  What if it were written to use a framework?
Concerns with the use of frameworks:

1. backward compatibility

2. stability of the framework.  can newer versions of the tools be used
   without requiring rewriting the application and breaking backward
   compatibility.

3. the mix and match problem.   NIM providers are developed by organizations
   other than MIT and Secure Endpoints.  They are distributed to users in
   separate installers.  As NIM changes from its current framework, to
   MFC 7 to MFC 8 to MFC 9 or .NET 1.1 to .NET 2 to .NET 3, etc., can 
providers
   built with framework version X mix with providers built with 
framework version Y
   and NIM built with framework version Z?

4. portability.  will the framework impose a design model that is difficult
   to port to operating environments other than Windows.

NIM is written in C.  It uses the Win32 API for Windows specific 
functionality.
Of the approximately 316,000 lines of code that make up NIM, 50,000 of that
is Windows specific.  Although NIM has not yet been ported to other 
operating
systems and we expect there will be significant work necessary to make 
that happen,
porting is something that is asked for by the majority of NIM using 
organizations.
Linux and MacOS X users are jealous of the single sign-on functionality 
that their
Windows counterparts are the benefits of.

NIM is its own framework.  NIM messaging provides asynchronous communication
between all of the loaded providers.  It is specific to NIM and could not be
replaced by moving to a framework.  A framework may hide the Windows 
event dispatch
loop, but it will not replace the NIM messaging system.  The NIM messaging
system would simply have to be reimplemented on top of the frameworks 
messaging
constructs.   As the NIM Messaging System is already implemented on top of
the Windows Event Dispatch model I do not see a benefit to reimplementation.
I do not see how such a transition could be made at this point and not
break backward compatibility with the existing providers.

One of the major problems with designing a plug-in architecture around a
framework is the requirement that not everyone be forced to develop with 
the
same version of the framework.  In particular, MFC and .NET do not 
behave well
when mixing versions in the same application.  Effectively that means 
that you
must commit to a single toolset forever or each time you decide to 
upgrade to
the latest toolset, require that all providers be updated as well.   
Requiring
that all providers be updated is a deployment nightmare and will be a
significant burden on help desks.

Jeffrey Altman
Secure Endpoints Inc.



-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3355 bytes
Desc: S/MIME Cryptographic Signature
Url : http://mailman.mit.edu/pipermail/kfwdev/attachments/20080416/1dfbb3c8/attachment.bin


More information about the kfwdev mailing list