Tuesday, 13 May 2008 08:04 pm  
Home What we do How we do it
» Methodology
» PRS
Solutions Contact



PRS
If we have to explain, what is PRS in one sentence, we will say that PRS is the system which enable fast generating WEB business applications. Shorten PRS stand for Product Release System. Word Product is used because WEB application is product for us. PRS is build from three components: Application Infrastructure Builder (AIB), Application Work flow (Awf) and Application Security(AS).
What is PRS?

In this chapter we will try to explain what is web application is in the first place. We will assume that you are familiar with programming in general, that you are using Internet, as well that you are familiar with HTML, HTTP, web browser, client-server architecture, etc.

It is common, every time that we mention web or WWW, the first thought is Internet, web sites, web browsers, etc.

Here, we will break with standard mistake: web application is the same as web site. WRONG.

Web site may be build from bunch of static HTML pages, linked with hyper links. When web site owner (or site administrator) wants to change something, for example, to add news, he must change HTML page directly and then, this changed page he must upload to web server and replace the old HTML page.

This operation means that the person which administer web site must know some sort of HTML programming. It may be OK, if the site has a few pages or pages are infrequently changes. Imagine that you have to add news several times per day - you have to hire HTML programmer just to apply changes to news section. Process of change will be: PR manager or another responsible person will write news story itself, then, send it, by E-mail or some another way, to HTMP programmer. HTML programmer, then, write corresponding HTMP page and upload it to the site. If you have, for example, multi language version of the site, the process is more complicated. Would you hire more HTML programmers or do something else?

It would be more efficacy, faster and cheaper that PR manager may type the news, on his own computer and that news should appear on the site immediately or employers in selling department of the company can change prices, add new products, etc. For this kind of process you need some sort of web application. We can draw some conclusions from this case study: for web application, web site is interface to the users. Content on this sites is dynamically generated reflecting user actions and web application functionalities.

Let's explain another mistake: web applications works ONLY on Internet. WRONG.

Web application also works on local company network or on your personal computer like ordinary desktop application.

And as the final mistake: web applications are insecure, unstable, �toys for kiddies�, etc.. WRONG.

Now, many business application are developed as web application and the �serious� player stays behind them like IBM, Oracle, SAP, Novell, Microsoft, etc.

So, what is web application? It is a computer program like any program. It receive some inputs, process them and returns some sort of reply.

Look at the picture where we can see web application structure.

Picture 1. Web application structure


Lets analyze this picture. Client, in this case, is a web browser (Mozilla, Netscape, Opera, Internet Explorer, etc.). It sends HTTP request to web server. Sending HTTP request means that you clicked in your browser on some link, fill in some sort of forms and clicked on submit button, etc. Web server returns some sort of response in HTML format, called HTML page. Here ends left side of the picture and it represents process that took place in case of static web site. Lets expand this process with right part of the picture. We will analyze following example:

If you, in your browser (client) type www.google.com , you will get home page of this Internet Search engine. Now, if you type, in appropriate field on the page, some phrase, for example, �cycling campagnolo� and click on Search button, you really sends HTTP request to Google web server. Web server get your request and typed phrase, and send them to the web application which will process your request. What it means exactly? It means that your request will trigger some sort of program or programs. They will search Google's database for phrase that you typed on Google home page and form the corresponding report and sends it back to your browser. In this case, HTML page that you see in your browser is dynamically created on Goggle server.

It's important to understands few things. Client, web server, web application and database can be miles away but it can be on same computer. It means that, the person who use web application is unaware of the place of execution of web application.

Let's bring to the table, what are the benefits and what are the side effect of using web application?

Let's start with side effects. Fist, for successful implementation of this concept, your company must have the working network infrastructure. We have mentioned that web application may work on local workstation, but it is extreme case and you will loose all benefits that this technology can bring to your company. Second, considering that client for web application is web browser, web application are not applicable for various tasks, such as, heavy work with text, graphics, video or audio files (DTP, graphics design, music post production, 3D modeling, CAD, CAM, etc.). For that kind of tasks we should use classic desktop applications.

Web applications are best for tasks which include some sort of databases. They are: e-commerce, e-banking, web portals, project management, PIM, CRM, ERP, document management, various business analysis, messaging, etc.

Why is that? If we analyze the picture 1 again, we will see that web application is build from three entities. It's called three layer architecture. We have some sort of data repository layer (DB layer), layer where the data are processed (business logic layer) and layer where the data are shown (display layer). This three layers are independent from each other. It means that you can change business logic and you don't have to change data repository layer, or you can change display layer and do not change business logic. All rules for web application are located on web server. It means that if you want to change something you have to change it on one place, web server. Clients are not effected in any way by this changes. It's more cheaper, less time consuming then other desktop application systems. Imagine that, your company has 1000 computers that are using some sort of CRM application. In case of classic desktop application, in case that you have to change something or add new functionality, the change must be implemented on each of this 1000 computers. In case of web application, because, we have mentioned earlier, all rules are located on one spot, web server, you have to change things only on one place, web server. All changes are visible right away to all your clients, employees, etc without any intervention on client side. Moreover, as client for web application is web browser, it means that client is not dependable from operating system, because on every modern operating system exist several browsers you can use. Furthermore, it means, that you can make more savings by using free operating systems like GNU Linux, Free BSD, etc) and other freely available application like OpenOffice.org, Mozilla, etc...

Business logic layer is usually written in technologies that are also independent of underlaying operating systems like Java, PHP, Python, etc. So you can, once written web application, migrate to another web server with different underlying operating system, and it will work without any change in application.

At the end, data repository layer in such system may be any modern RDBMS, web server file system, web service, just to name few. So, it means that you have many possibilities.

Where is the place of PRS?

Lat's analyze web application's components ant try to try to observe key steps, that are performed during it's creating. First, you have to analyze clients requirements and try to form future functionalities. Based on client's requirements and planned functionalities, you have to make some sort of Project. Then, client must agree with this Project, and you will make database model and define data flow.

On the end, you will create database layer and write code that will support agreed functionalities. In this way, application will facilitate client to enter some sort of data in database, precessing those data and make some reports based on those data (Picture 2)

 

Picture 2. block diagram of web application


If we look picture 2, we will see the dotted line that �split� application in two logical sections:

administer section and display section.

Administer section should provide ability to enter data into database (based on specified access rights), data changes, deleting data, searching, viewing, sorting, etc. For example, sales representative in your company, during processing of some purchase order, enter into database data about buyer(name, address, company name,...) as well as data about order (product type, quantities, price, tax, etc.). During his work, he need to view, sort, print and change data about orders, customers,.... Those are functionalities that administer section of your application should provide.

On the other hand, sale manager or director has another set of needs from same data. For example, he wants to know �How many product we sell in last 3 months?� or �How much customer has spent in last year?� or want to check buying habits of some client. Those are functionalities that display section should provide.

Analyzing the time, during code writing, needed for application development, we conclude that most of the time is spent on writing administer section (about 80%). If we look into functionalities of administer section of each application we will see that we may sort over some shared functionalities that is same for each application. It means that this work can be formalized. This is the place for PRS AIB.

PRS AIB make possible AUTOMATIC generation of administration section of web application and making interface for further development of display section. It means that PRS generated application, immediately enable you to define users and roles in system, user authorizing, rights management, viewing, entering, deleting and sorting data. It's up to you to develop specific reports that are part of display section. According to our experience, PRS cut short the coding time of administer section for about 90%. If you spent 30 days for coding administrative section, with PRS you need only 2-3 days. And furthermore, as administrative section become bigger and more complex, the benefit is bigger.