Explain why you believe the project managers elected to go to a system that was 100% Java.
The SEI project required the capability to programmatically extract digital keys and digital certificates form a Netscape communicator v4.5 database (Huy, Lewis, & Lui, 2011). However, following the limitations of the programmatic library called Netscape Database Keystore (NDBS 1.0), SEI project decided to seek for more advanced option (Huy, Lewis, & Lui, 2011). The limitations of the Netscape Database Keystore included the platform dependency since it was written in interfaces and Java with C code using the Java Native Interface (JNI) and its inability to delete or write private keys and certificates from the Netscape database despite enabling reading (Huy, Lewis, & Lui, 2011). The project managers, therefore decided to go to a system that was 100% java enhanced. Despite the challenges such as the projects’ unfamiliarity with the cryptography domain and structural differences between the language such as C and objected oriented language such as Java, they opted for the challenge and adopted the Netscape Database Keystore (NDBS 2.0), which was a redesign of the former NDBS 1.0 (Huy, Lewis, & Lui, 2011). The project required a system that could allow for the write and delete capabilities, which was similar to converting the C code to a 100% Java. Additionally, converting from a structured language to an object-oriented language as well as adding the extensibility capabilities required redesigning of the system to project specific system with the desired features.
Determine whether you believe the solution presented in the case would have been better to have left the system as-is, go 100% Java, or 100% C. Support your position
In my opinion, after reading the case and analyzing the solutions sought by the project, it was very important to redesign the system to a 100% Java. The first system, Netscape Database Keystore (NDBS 1.0), only enabled reading, and lacked the extensibility requirements of writing and deleting, which were also some of the features that project desired. Nevertheless, as indicated at the end of the case study, software developers often have a hard task designing systems even if all the source code and information is available. Equally, transforming from one system to another is often a very difficult process that often faces challenges of conflicting opinion from different sections of the organization. Similarly, SEI project had to make a tough decision of transforming from a structured language to an object-oriented language. Even though this transformation would come with the transition into a system with all the desired features, the transformation would require a lot of resources such as time. Additionally, acquiring the codes would involve third party code such as Berkeley DBM, PSM, and Certutil third-party code, which either required to be converted or used as guidelines for the NDBS 2.0 implementation. Nevertheless, leaving the system as-is, or the C code would not provide the desired features for the project such as write and delete features.
Speculate how utilizing .Net instead of Java would have compared to the 2.0 system that was developed entirely in Java.
While Java and .Net are similar in some ways, they have several differences in their internal working frameworks as well as some aspects of languages that come with them. For instance, even though there are open source implantations of .Net framework such as mono to create across platform applications, it is primarily targeted for windows operating system (Davu, 2013). However, Java uses the idea that the same software should be run or used in different computers, other devices on a network, and consumer devices (Davu, 2013). However, the Java applications run on virtual machines that were written for each machine. Therefore, if the project used only windows computers, they could have basically used .Net. Additionally, the .Net framework does not rely on third party vendors to provide the implementation, as opposed to the NDBS 2.0 that required the code from third party vendors such as Berkeley DBM, PSM, and Certutil. Apart from the open source availability of the .Net framework, the Integrated Development Environment (IDE) standard development, is available with Microsoft Visual Studio (Davu, 2013). The platform provides several extensibility equipments that the project could have equally utilized.
Predict three (3) challenges that you believe the team may encounter when designing and implementing this new system
The major challenge that the team may have encountered when designing and implementing the new system is the conversion from a structured language like C to an object-oriented language like Java, which entailed total redesigning of the system. The new system had to be designed around data structures instead of functions.
The other challenge involves the fact that the code was sourced from third party vendors. Some of these codes lack documentation, thereby resulting in the conversion of the code without clear a understanding of the implementation.
Finally, the team might have faced the challenge of time. Redesigning the system to incorporate the write and delete extensibility equipment involved much time since the Java code is sold from different vendors, which was instigated by the choice of the right vendor to buy from them considering documentation and reliability (Sunkara, 2010).
Davu S. (June 3, 2013). .NET vs. Java: How to Make Your Pick. Segue Technologies. Retrieved from http://www.seguetech.com/blog/2013/06/03/dotnet-vs-java-how-to-pick
Huy P., Lewis G. A., & Lui M. (August 2011). Beyond The Black Box: A Case Study in C to Java Conversion and Product Extensibility.
Sunkara B. (December 22 2010). Three Common Application Performance Challenges for Developers. D-Zone.com. Retrieved from http://java.dzone.com/articles/three-common-application