Israeli Air Force Case Study

The Israeli Air Force (IAF) www.iaf.org.il was born in to the War of Independence in 1948 and today thrives as a strong military force built to protect the State of Israel from aerial attack. This force is continually refreshed year after year as tens of thousands of students graduate and go on to serve in the IAF.

Business Situation

Student data has traditionally been contained within Excel files and stored on local computers located in multiple cities. Faxing data to various members of any project team was often the only means to share data. When changes were made to a data record, not everyone would know about the change and this would result in much confusion. As a result, the people involved in a project were not synchronized. When senior IAF managers asked to get reports of the status of the students, it was almost impossible for the employees who were in charge of the student projects to supply accurate student status reports. This led the IAF to task its development team to create an application that would manage all of its students and would supply advanced accurate reports with real-time reporting and notification.

Application Description

IAF's development team built a Flex application called Plada khula that connects to ASP.NET services and data. The application is used by school principals, IAF representatives, project managers, and IAF senior managers to track and manage tens of thousands of high school and college students, which have been funded by the IAF so that these students will eventually work for the IAF. The students (which the application manages) learn various subjects, which prepare them for various jobs at the IAF. The application provides advanced reports and stores the data of all of the students in one organized place, while providing access to that data from multiple locations. The application also notifies users whenever there is a change to a data record.

The Problem

The first iteration of this application enabled users to view data in a single view. At first this was not a problem, because all of the data in the application was very small. As large amounts of data were uploaded into the application, users started to see performance problems. According to Binaymin Bernstein, head of the development group, "Every time we started the application it would crash, because it couldn't handle loading all of the data at once. We decided that paging is what we needed, but sadly we chose to build our own paging solution. Our paging had lot of bugs, was hard to maintain and was slow. Every time we needed to load large amounts of data at one time, the application would crash and modules in the application which did not crash performed very slow."

So the team had a few problems. They needed to find a solution that could effectively solve their paging problem. They also needed to find a solution that could load large amounts of data fast without crashing. Finally, they needed a solution that would instantly notify users anytime an update was made to a record in the database. Bernstein stated, "We wrote a lot of code which notified different users when one user did a change and pushed the change into the browser of the different users, but the code we wrote was very complicated; had a lot of bugs; did not always work and made the application very slow." 

These problems, combined with the amount of time and money already invested in solving the initial problems prompted the team to look outside of their organization for a 3rd party solution. The selection criteria required the solution to solve the very large data paging and data loading issues, while also providing instant event notification.

The Solution

The team searched for a Flex to .NET solution and found few solutions available to them. They looked at FluorineFX first, but found it was very complicated to use and it did not satisfy all of their requirements. At one point they even considered BlazeDS and LCDS, but they were a .NET shop and had no experience with Java. According to Bernstein, "When we found WebORB we finally got useful tools which connect Flex and .NET very easily. WebORB was very simple to use and WebORB's data paging was very straightforward. From the research we did we saw that WebORB was much faster than its equivalents and of course from the way we worked, WebORB data push services was very fast and easy to use." 

The IAF has benefitted from using the following WebORB features:

  • Automatic Code Generation - this was used to automatically generate client -to-server integration code and all code documentation and project files.
  • AMF Remoting - this enabled the team to load large data sets without crashing. This combined with WebORB's Data Paging enabled the application to deliver results on demand to knowledge workers.
  • Data Management - enabled the team to rapidly develop complex screens in just a matter of seconds. This tool is also useful for performing complete CRUD (create, retrieve, update and delete) operations on any data model.
  • WebORB Extensibility - many times the development team needed a way to customize things they needed to do, such as serialization. Fortunately, WebORB enabled them to customize serialization of their value objects, which made their own code and coding practices much more easier to work with.
  • Management Console - this provided the home base for many other features like service discovery and code generation that helped reduce development time and cost.

User Quotes

  • Before I used the application there were a bunch of Excel files and faxes, which made managing impossible. With the new application, my life is much easier (Project Manager)
  • The application is a revolution! Previously, getting a fast report was impossible. Now, in one click I can get an accurate report. (Senior Manager, Head of Department)