Project Framework White Paper

Table of Contents
         Executive Summary
         Overview
         Project Framework Package
         Object Oriented Design
         Project Framework Java Classes
         Project Framework Aid
         Project Framework Java, UML and RUP Training
         Web applications - Web Packages for e-Business
                  Front-end
                  Middle tier
                  Database back-end
         Java Application
         Errors
         Dynamic Business Rules
         Batch processing
         Illustration Web Packages
         GUI front
         Threading
         True distributed system
         Performance
         Scalability
         Security
         Legacy systems
         Future versions
         Pros and Cons
         Project Framework Model
         Project Framework Model Figure


Go To Top
Executive Summary
The Web, with its rapid change and Client/Server Web applications, requires companies to be engaged in projects where the latest technology and methodology must be used to reduce the cost of their system life cycle. They must also ensure that the system be developed on time and within budget. These companies may need help with their business solutions and guidance with the technology trend and knowledge transfer. They definitely need help with transfer of technology and aid in presenting quality and successful Client/Server Web and Java applications. They also need help with decision-making for the present system and future projects. Without such help, they may not advance in the marketplace or increase their market share. The Project Framework is a revolutionary solution that provides an answer to any company’s e-business question.

Project Framework provides:

         · The basic structure, foundation, and proper training for a Web based
           or Java application project allowing its user to have a huge jump-start.

         · A boost and an educational tool for any project.

         · A speedy and a large trim down of the early phases of the system life cycle.

         · A quick and a sure start for system development and training.

         · A huge reduction of initial cost of system development and training.

         · An educational and development tool that contains salient examples of
           anything a Java project needs. These examples can be used for training
           purposes and can be “cut and pasted” to help speed project development.

         · A system that has base classes that can be inherited or expanded to
           speed development.


The concept of Project Framework will revolutionize software development by taking the software development cycle a step into the future. Throughout history, software compilers started with a command-line compiler, then evolved to become a line editor compiler, which in turn gave birth to the IDE, followed by Visual Studio, components, and code generation. The next generation of compilers and software development is Project Framework.

Project Framework is an investment in your company’s independence from outside help. Companies that implement our Framework will be able to use our experience, analysis, design, code, training, and mentoring. It will help build a solid software team that will lead future projects and have the experience to retrain, support, and mentor other teams. Project Framework is a model and resource for future projects and challenges.

The Project Framework Model gives a quick and easy display of the Project Framework with a picture illustrating a working system on a Web server and/or application server.

Go To Top
Overview
What are e-business problems?
Presently, a number of companies have employees and systems that need to be integrated into e-Business. This is a major task, and the Web has thousands of e-developers that promise quick and easy solutions. Most companies do not have any idea of what to do or how to get help. They are willing to invest in their employees by retraining them on the latest technology, while keeping their existing database or legacy system(s). They are looking for a solution that helps train their employees to get them started on their Web projects.

Almost every project starts from scratch and goes through the same steps with little variation. Most of the software tools help developers produce code or speed analysis. For example, Rational Rose is another attempt to help analysts, managers, clients, and developers speak the same language by producing pictures or diagrams to help visualize the system that they are developing. This helps with communication among all these system participants.

E-business is a new and more complicated system, which requires a different technology and a different way of thinking. This puts the burden on companies and developers to learn these new technologies and apply them to e-business. This is where most companies are very much lost and may become victims of HTML developers who provide Web pages with database access but are not a true e-business applications.

Time is another dimension that needs to be addressed. To bring a team of RPG, COBOL, C, C++, or VB developers to become Java or Web developers may take a long time, and sometimes with negative results. In addition, the learning curve may become quite costly to some companies. Due to the fact that many developers are trained with different technologies and have various skills, special training may be required to bring developers up to speed to develop e-business applications.

Object Oriented design (OOD) and thinking is the basis for the latest technology we have. The creation of objects, reusable components (Java Beans), GUI interfaces, and remote processing is what e-business structures itself around. Analysts, designers, developers, and testers should understand OOD and think in OO terms. Web analysts, designers, and developers have to have such a way of thinking, or they may need to get the proper OO training.

Java is the leader and answer to many Web applications. Java provides software packages and tools. Java and Sun Corporation are, and will be, the leading means for development for both Web applications and Java applications. Companies may have to retrain their developers on the Java’s latest technology.

Rational Unified Process (RUP) is a new approach to system development. It is an attitude and a new way of thinking with guidelines. Companies may need to retrain their development teams and get the best of such system development process.

Cost is another important factor that managers and analysts know too well. On-time and within budget are two keywords in any system development. The cost of any project is related to the team size and the time it takes to deliver the system. The initial stages or the launching of a project, which is known as the Inception phase and the Elaboration phase, according to Rational Unified Process (RUP), may require a long time to complete the analysis and design, not to mention the learning curve associated with retraining development teams. With e-business and the new technology, the initial stage can be the most confusing and time consuming task. For example, a team of twelve people that has the task of developing an e-business may take three to four months to do system analysis, design, training (including the learning curve), coding, and testing to reach the first iteration of the Construction Phase. The cost associated with such initial process may be quite expensive.

Help, or getting help, may be a major problem for several reasons. First, there are a lot of companies that claim to be e-business providers. In reality, however, things may become costly, or in most cases, the end product is a Web page application, but not a true e-business application. Many companies rely heavily on consultants to do this job, where employees are left without guidance of the technology trends and knowledge transfer. Help should be focused on training and building the company’s development team to become self-sufficient.

Training and mentoring the development team may be required to help the team of becoming self-sufficient. This requires experienced trainers and mentors that understand the teams needs, confusion, and defensive attitude toward learning this new e-business with all its complexity and jargons.

What is needed?
The designers of the Project Framework are experienced analysts, designers, and developers who worked on different projects ranging from data warehouse to financial applications. From their experience, they have developed the Project Framework to be the answer to e-business problems. Our Project Framework provides actual answers with a project template for companies to implement their projects. Our Project Framework is designed to work on any Web server and/or application server. Our Project Framework is composed of the following parts:

         1. Project Framework Package
         2. Object Oriented Design
         3. Project Framework Java Classes
         4. Project Framework Aid
         5. Project Framework Java, UML and RUP Training



Go To Top
Project Framework Package
The Project Framework Package is a full development template for starting any software project, including a complete requirement, analysis, spec, Java base classes, with a complete Web and Java application. Our Project Framework Package is designed to implement the latest in Object Oriented Design, Web, UML, RUP, and Java technologies and methodology. Companies may use it or expand it into their complete project. Our Project Framework’s material can be “cut and pasted” directly into the company’s code to speed development of their projects.

Go To Top
Object Oriented Design
Our Project Framework is an object-oriented system with generic classes and interfaces that can be used as base classes for any Web or Java application. These classes are designed using use cases and can be inherited and used with any project. For example, the database classes can work with any SQL database. The GUI front uses Java AWT and swing packages that can be easily inherited or modified to handle tables and GUI components. Our project analysis and use cases implement the latest Rational Unified Process (RUP) to create super and base classes.

Go To Top
Project Framework Java Classes
Our Project Framework Java Classes have all the base classes any Web application would need. It has a number of Java RMI, JDBC, servlets, and thread classes that can be used as a base for any company project. These classes can be modified to fit the company business logic and database access. The servlet classes can be modified to handle any Web access. The HTML code can be expanded into a number of Web pages. The database classes are designed to access any existing database. Our On-Line help classes can be integrated to work with any Java system. The Web page generation classes can read any text file (HTML code) and produce a Web page for the servlet classes to respond to a browser request. These classes help keep dynamic loading of business logic and Web page updates. Our GUI and On-Line Help can display languages other than English, such as Spanish, German, French, etc. The Web page generation classes are designed to produce Web pages in different languages, where the languages are stored in the database for the system to access. For example, the client creates a Web page template with tokens, where our Web page generation classes parse these tokens and produce a Web page for any language the user of system may choose. Our Web page generation class accesses the database and replaces tokens with the language chosen.

Go To Top
Project Framework Aid
We will be working with the company to help with our package and training. We will be helping them with project analysis, use cases, design, and development using the latest technique in Object Oriented Design, UML, RUP, and Rational Rose (Rose is optional). We will help them integrate our package code into their project.

Go To Top
Project Framework Java, UML and RUP Training
Our Project Framework package is a complete framework for any Web project. Without any background or experience in Web development and Java programming, a development team may have problems developing a Web application. We have developed a number of Java, Web design, UML, and RUP training courses for any team of developers to take them literally by the hands and train them to become experts on Web design and development. These courses start with Java, UML, and RUP, and teach trainees using actual real world examples, plus our Project Framework Classes code. Each trainee will be given a complete Java, UML, and RUP training manual plus a CD with over 120 programming examples. The trainee can use these examples in his/her project code by cutting and pasting out of the examples. The CD plus our Project Framework Java Classes code will be available during the training and development cycles. We will also mentor these developers during the project development cycle, and also help with design and analysis using UML, RUP, and use cases.

Go To Top
Web applications - Web Packages for e-Business
Web application
Our Project Framework package is a Web package utilizing Java swing, servlets, JSP, Beans, RMI, JDBC, and Threads. It is a three tier or an N-tier system, which is designed for companies that would like to provide e-business for their customers. They are designed to work with any existing database, legacy system, and for distributed systems utilizing Java RMI. It has the following tiers:

         1. Front-end
                  A. HTML Web Pages
                  B. JavaScript
                  C. JSP with Beans.

         2. Middle tier
                  A. Servlets
                  B. Classes (RMI) – Business Logic Classes
                  C. Database Classes – Database Services

         3. Database back-end

Go To Top
Front-end
The system front end is composed of dynamic Web pages (HTML), which have in-line help and check user input for errors. The Web pages contain JavaScript code to make them dynamic. They make calls to a number of servlets.

JSP(s) can be used for short and small Web services, and with the use of Java Beans, they can be more of practical and useful Web pages.

Go To Top
Middle tier
The Middle tier is composed of three separate layers for high performance, scalability and reusability. Servlets are main system runners and the start of the middle tier. The servlets are designed to handle high volume calls. Servlets are threaded and designed to handle volume utilizing the business (RMI) classes. Servlets’ jobs are to handle user requests and work as proxy layers to help protect the hosting server and database.

The business (RMI) logic classes are designed for distributed systems. They can be placed on different servers and not necessarily a Web server. Their main function is to provide business logic classes. They are developed to take care of business calculations, error checking, and preparing outputs for the servlets, which in turn pass them to the user.

Go To Top
Database back-end
The database classes’ main objective is database services. These database business classes work with business logic classes to provide database service. They utilize Java JDBC APIs and SQL statements for making them generic for accessing any database vender. This would create a generic and a reusable database access that can be used with any Java application. Companies have the choice of providing Web applications, and in-house Java applications, using the same business and database classes. Making the database classes as independent layers helps create off-the-shelf database services in the case where the clients may have databases from different venders.

The Web application may run on any HTTP server (Web sever or Intranet server) and can provide a B2B or B2C front-end. It also works as a proxy layer to protect the system from an outside illegal access.

Go To Top
Java Application
Having the business (RMI) logic and database as separate layers helps create a reusable code that can be called from a Java application. This Java application would run on the company network system or application server. Both the servlets layer and the Java application would be calling the same business logic classes.

The Web application and Java application would be two separating application doing the same thing. The Web application would be for the public to use, while the Java application would be used internally. Updating the RMI and database classes would be done only once for both applications.

Go To Top
Errors
The application design is cashing-in on the fact that Sun’s Java is a simple, object-oriented, network-savvy, robust, secure, architecture neutral, portable, high-performance, and multithreaded application. The application Exception Handling code is strictly implemented to make the application robust and secure.

Go To Top
Dynamic Business Rules
Business rules are placed in the database and can be updated periodically without changing any of the application code. This part of the application design makes the system dynamic and distributed. The business classes, which use Java RMI and database, can be placed on any server, which make the application distributed and dynamic.

The middle or business logic tier(s) are independent tiers that can reside on any server with CORBA interface. Each of middle tier components may be placed on a remote server that uses Java RMI or CORBA to combine services or objects that may be developed and maintained by independent vendors or internal divisions within a company. It uses the database tier to help make the database an independent tier.

Go To Top
Batch processing
The business classes (RMI) can implement batch processing as part of their services or functionalities. Companies can develop their in-house Java application to invoke such processes. This can be done remotely using the RMI capabilities.

Go To Top
Illustration Web Packages
This Web application can be tailored for illustration application, do-it-yourself-online, or any business that has a great deal of calculations or implements complicated business logic. The application can be tailored to handle any e-business and any database, or several different databases.

Go To Top
GUI front
Use JavaScript for HTML Web page and using Java swing classes give this application the capability to be GUI, user-friendly, and idiot proof. Using online help is also available to make such capability an easier task.

Go To Top
Threading
Some of the classes designed in this Web application are threaded to increase performance. The threading gives these classes the ability to run several processes at the same time. Synchronization of both method and shared data structures are used to prevent corruption of data, conflicts, and locks.

Go To Top
True distributed system
A distributed system concept is the most misunderstood concept in system development. A distributed system is the existence of multiple systems running to service a client request. The existence of a distributed systems is not restricted to locations or system types. A company may have branches all over the world connected through networks, or an Intranet, where each branch may be running different systems. The ability to share services and software execution is what Java RMI and CORBA is all about. Our Framework middle tier is a true distributed system with Java RMI classes that help bring in services and software execution as simple as a local call. Our Web servlets can create a middle-tier object (RMI) from different remote system, and use its functionality the same way a servlet can create a local object. These gives companies the freedom of having all of their branches development classes independently of each other, and have them available on their servers for the rest of the company to use. The updating and scalability of these classes would be the responsibility of the branch, and not the company. This is definitely an added freedom and leverage any company would love to have.

Go To Top
Performance
Performance is dependent of both hardware and software. Our Project Framework is a software solution that can be installed on any hardware with JVM and an HTTP server. Our software performance is handled by our tier design. The design includes servlets, business logic and database service classes, plus threading.

Servlets
Web access is handled by servlets, which are threaded to handle volume. The servlet is designed with the fact the thousands of Web users might be accessing the same Web site. The limitation here is the host handling and not the Web application; unlike CGI‘s, which would make separate processes.

Threading
For high performance, the application is designed using Java threading. This would help volume calls by eliminating separate processes. The threading also eliminates over use of database access and free such limited resource.

Independent Database services
Having a separate layer of database classes help both reusability and have frequently used database tables available for speedy access.

Go To Top
Scalability
Having separate tiers with independent functionalities gives the system the freedom to add or modify functionality without major changes to the system. For example, the business logic tier may have several classes that can be modified, expanded, or eliminated without changing any part of the system. Different database venders can be implemented into the system and only the database service classes are updated. For front-end scalability, Web pages can be added for the user to provide additional functionality to the system. The Web pages are designed to call the servlet through the “GET” or “POST” commands. Servlets respond to the user request by returning a Web page. Only additional Web pages and business logic classes or calls are added to handle the new added features.

Go To Top
Security
Security is handled early in this design by putting a layer of software as a proxy server to protect the host server and the database. The user will only use Web pages and fill Web forms, which are submitted to the server. The Web application will in turn display values and tables using the browser, and no other interactions will take place.

For secure information that the user would be submitting, a secure-HTTP server, or any secure server, may be used. Applets can be used to provide bi-directional secured information. Java RMI implements Java Security class that can be used to ensure unauthorized access will not be allowed. The Web application is designed with servlets as the first runner, and a proxy layer, which will call RMI services. Business logic classes (RMI) will be the only callers to the database classes, and would put two extra layers of code to get to the database.

Go To Top
Legacy systems
Our Framework can work in parallel with existing legacy systems. It can use the functionality of the legacy system though CORBA or APIs. It also can be implemented as a parallel system and would be a future replacement to any legacy system. The Framework design gives freedom and the proper approach to handle any functionality of a legacy system, including access database, sockets, and filing system.

goto Top
Future versions
Companies that would implement our Framework as a pilot project would be able to use our framework experience, analysis, design, code, training, and mentoring. These would help build a solid team that can lead future projects and have the experience to retrain, support, and mentor other teams. This would be a seed of independence from outside help. This pilot project would be a model and resource for future projects and challenges.

The future for our Project Framework is even brighter. We have a plan for turning it into a visual component system with a futuristic compiler and system analysis. Our plan is to help projects have an even larger launching as to start with futuristic features that would save developers and companies the analysis, design, and code. It would be an expert system for the software development cycle.

Go To Top
Pros and Cons
Our Project Framework is more than a “jump-start” on project development. It combines training, analysis, development, and a project template to speed the initial stages or the launching of a project, which is known as Inception phase and Elaboration phase (RUP). It shortens these stages from a period of sixteen weeks to six weeks. It begins with two weeks of Java, UML, HTML, JavaScript, and Web development training. The training is hands-on with over 120 Java, HTML, and JavaScript programs plus UML training. The training is done on the company’s system and development environment. The trainees will have a chance to write Java, JavaScript, and HTML code. By the end of the two weeks the trainees will be ready for the second part of the training. The second part is the Project Framework Web and Java applications. The framework is basically the actual code that the company’s project will either inherit, or use, by either expanding the Project Framework classes or cut/past into their own code for the project. This means the developers will have over 120 running programs and Project Framework classes to work with, by either expanding or cutting and pasting. Part of the training is the UML training, where the trainees will be doing some analysis and use cases building. These analysis and use case creations are done on their project analysis and use cases. Project Framework has the analysis and use cases for all its base classes, which they also can be used the same way as the code. These analysis and use cases can either be expanded into the company’s project, or cut/past into the project analysis and use cases. By the end of fourth week, the entire development team would have done analysis, design, coding, and UML training on their own project. The fifth and sixth weeks are mentoring of the actual project, where the trainer will be working with the team as both a developer and a mentor. This helps the team with problems that need an experienced analyst and developer, plus an enforcer of the RUP process.

Our Project Framework does not provide the following:

         1. Web server with servlet engine and JSP engine such IBM WebSphere.
         2. Java compiler- any compiler can be used including JDK.
         3. Help with server or Web server; companies must have their own Web
             server and administrator.
         4. Rational Rose license – companies must get their own
         5. Database - companies must get their own
         6. Database design - companies must develop their own

Go To Top
Project Framework Model
Project Framework Model shows a Web and Java application with an N-tiers system. Each tier is an independent part from the rest of the system and can be replaced, scaled, or modified with no effect on the rest of the system.

The Java application can run on any Web or application server and provides a user interface for systems. The Web application may run on any HTTP server (Web sever or Intranet server) and can provide a B2B or B2C front-end. It also works as a proxy layer to protect the system from any outside illegal access.

The middle or business logic tier(s) are independent tiers that can reside on any server with CORBA interface. Each of middle tier components may be placed on a remote server that uses Java RMI or CORBA to combine services or objects that may be developed and maintained by independent venders or internal divisions within a company. It uses the database tier to help make the database an independent tier.

The database tier is a service layer for the front and middle tiers. It can be designed to work with any database and also help give the database generic access tier and protection.

The composition of these Framework tiers can build a dynamic business rule access, have GUI front, and Web and Java application fronts that may use Java threaded features. It is a true distributed system that is scalable and secure with high performance.

Go To Top
Project Framework Model Figure