0% found this document useful (0 votes)
13 views31 pages

Internship Report Data Analysis PMGDISHA

The Summer Internship Report details the data analysis conducted on the PMGDISHA scheme aimed at enhancing digital literacy in rural India. The report outlines the internship experience at the Ministry of Electronics and Information Technology, highlighting the use of tools such as R and PHP for data manipulation and visualization. Key tasks included analyzing data from Uttar Pradesh, categorizing panchayats based on performance, and creating visual maps to represent the findings.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views31 pages

Internship Report Data Analysis PMGDISHA

The Summer Internship Report details the data analysis conducted on the PMGDISHA scheme aimed at enhancing digital literacy in rural India. The report outlines the internship experience at the Ministry of Electronics and Information Technology, highlighting the use of tools such as R and PHP for data manipulation and visualization. Key tasks included analyzing data from Uttar Pradesh, categorizing panchayats based on performance, and creating visual maps to represent the findings.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

Summer Internship Report

DATA ANALYSIS OF PMGDISHA

SAHAL TANUJ SANDEEP Reg.No.- IMEITY/2018/04483


| B.Tech. Computer Science Manipal University Jaipur |
10-08-2018

At
MINISTRY OF ELECTRONICS
AND INFORMATION
TECHNOLOGY, GOVERNMENT
OF INDIA, NEW DELHI.
Acknowledgement
Words do not reflect the gratitude and appreciation I feel for those who have supported me
during the process. I take immense pleasure in conveying my gratitude to Ministry of
Electronics and Information Technology (MEITY) for giving me this opportunity under
Digital India Internship Scheme; and would also like to extend this gratitude to the Joint
Secretatry- Shri Jaideep Kumar Mishra.

This report would not have been possible without the constant support, motivation and
guidance of Shri Sanjay Kumar Vyas and Shri Shankar Das, my mentors for the duration of
my internship at MEITY. I thank them for their kind co-operation and expert guidance in
the completion of my report.

In addition, I would like to thank my family and friends for their encouragement
and support in this effort.

The technical guidance and support received from Shri Rishikesh Patnakar was immense
and I am grateful to him in providing me all the data that was necessary for my work.

PAGE 1
ABOUT DIGITAL INDIA INTERNSHIP SCHEME
An internship is an opportunity for a student to secure first hand and practical work
experience under the guidance of a qualified and experienced Supervisor/Mentor. It also
aims at active participation in the learning process through experimentation and putting
into practice the knowledge acquired in the classrooms. The Ministry of Electronics and
Information Technology is engaged in electronic development through e-Infrastructure
creation to facilitate and promote (1) e-governance (2) Promotion of electronics hardware
manufacturing and Information Technology & IT Enabled Services (IT-ITeS) Industry (3)
Providing Support for creation of Innovation Infrastructure in emerging areas of technology
(4) Providing support for development of e-Skills and Knowledge network and (5) Securing
India's cyber space.

For the larger benefit of the student community and with a view to enrich the
management/implementation of its various schemes/programmes, the Ministry of
Electronics and Information Technology has decided to notify these “Internship
Guidelines”, to provide a framework for engagement of Interns for a limited period.

BROAD AREA OF INTERNSHIP :- HRD


HRD activities of Ministry of Electronic and Information Technology are targeted to ensure
availability of trained human resources for the manufacturing & service sectors of
electronics and IT industry. Initiatives include identifying gaps emerging from the formal
sector and planning programmes in non-formal and formal sectors for meeting these gaps.
This includes Skill Development in the domain of Electronics & IT and related areas.

The Skill Development activities of the Ministry are primarily being taken up by its two
autonomous societies viz. National Institute of Electronics and Information Technology
(NIELIT previously known as DOEACC) and Centre for Development of Advanced
Computing (C-DAC). In addition, the various organizations / attached offices under the
Ministry viz. ERNET India, Media Lab Asia, CSC E-Governance Services India Limited,
STQC, NIC etc. also engaged in training of various stakeholders in small numbers.

SUB AREA : PMGDISHA (DIGITAL LITERACY)


The Government has approved a scheme titled “Pradhan Mantri Gramin Digital Saksharta
Abhiyan (PMGDISHA)” to usher in digital literacy in rural India by covering 6 crore rural
households (one person per household) by 31.03.2019. This is in line with the announcement
made by Hon’ble Finance Minister in the Union Budget 2016-17. To ensure equitable
geographical reach, each of the 2,50,000 Gram Panchayats would be expected to register an
average of 200-300 candidates.

PAGE 2
Special focus of the said Scheme is on training the beneficiaries on use of Electronic
Payment System. The outcome measurement criteria would include undertaking at least 5
electronic payments transactions by each beneficiary using UPI (including BHIM app),
USSD, PoS, AEPS, Cards, Internet Banking.

The total outlay of the above Scheme is Rs. 2,351.38 Crore (approx.). It is being implemented
as a Central Sector Scheme by the Ministry of Electronics & Information Technology
through an implementing agency namely CSC e-Governance Services India Limited, with
active collaboration of all the State Governments and UT Administrations.

TOOLS USED IN THE INTERNSHIP:

1. R is a language and environment for statistical computing and graphics. It


is a GNU project which is similar to the S language and environment which was developed
at Bell Laboratories (formerly AT&T, now Lucent Technologies) by John Chambers and
colleagues. R can be considered as a different implementation of S.

R provides a wide variety of statistical (linear and nonlinear modelling, classical statistical
tests, time-series analysis, classification, clustering, …) and graphical techniques, and is
highly extensible.

One of R’s strengths is the ease with which well-designed publication-quality plots can be
produced, including mathematical symbols and formulae where needed. Great care has
been taken over the defaults for the minor design choices in graphics, but the user retains
full control.

Source: Internet

THE R ENVIRONMENT
R is an integrated suite of software facilities for data manipulation, calculation and
graphical display. It includes

 an effective data handling and storage facility,


 a suite of operators for calculations on arrays, in particular matrices,
 a large, coherent, integrated collection of intermediate tools for data analysis,
 graphical facilities for data analysis and display either on-screen or on hardcopy,
and

PAGE 3
 a well-developed, simple and effective programming language which includes
conditionals, loops, user-defined recursive functions and input and output
facilities.

Source: Internet

2.

PHP: Hypertext Preprocessor (or simply PHP) is a server-side scripting language


designed for Web development, but also used as a general-purpose programming language.

PHP code may be embedded into HTML code, or it can be used in combination with various
web template systems, web content management systems, and web frameworks. PHP code
is usually processed by a PHP interpreter implemented as a module in the web server or as
a Common Gateway Interface (CGI) executable. The web server combines the results of the
interpreted and executed PHP code, which may be any type of data, including images, with
the generated web page. PHP code may also be executed with a command-line interface
(CLI) and can be used to implement standalone graphical applications.

Source: Internet

PAGE 4
3.

HTML, HyperText Markup Language, gives content structure and meaning by defining
that content as, for example, headings, paragraphs, or images. CSS, or Cascading Style
Sheets, is a presentation language created to style the appearance of content—using, for
example, fonts or colors.

The two languages—HTML and CSS—are independent of one another and should remain
that way. CSS should not be written inside of an HTML document and vice versa. As a
rule, HTML will always represent content, and CSS will always represent the appearance
of that content.

Source: Internet

PAGE 5
TASKS ASSIGNED DURING INTERNSHIP:

TASK 1

OBJECTIVE:
• Capturing and analyzing the data in respect of States/Districts under the
PMGDISHA Scheme, so that a triggered approach could be explored for achieving
the targets envisaged across the states.

APPROACH:
• Analysis of data on Uttar Pradesh was given in the format excel file having
following coloumns of State Name, District Name, Panchayat Name, Tehsil Name,
Registered Candidates, Trained Candidates, Exam Completed and Certified
Candidates. Total entries in the data were 60,303. This excel was then converted to
.csv file (Comma Seperated Values) and was imported in R studio so that an
analysis can be started.

• 1st approach:- Data was cleaned using dplyr package, duplicate entries were
removed on the basis of StateName, DistrictName, TehsilName, PanchayatName.

▫ Final clean data was saved as dis1.pmgdisha.

▫ Duplicate entries were saved as dup.entries.

• 2nd approach:- Panchayats were categorized into 5 categories on the basis of


passing percentage namely,

#FUNCTION TO CATEGORIZE THE PANCHAYATS INTO 4 CATEGORIES

categorize<-function(reg,cert){
if(reg==0){
return("None")
}
val<-(cert/reg)*100
if(val <= 25){
return("Poor")
}else if(val<=50 & val>25){
return("Below average")
}else if(val<=75 & val>50){
return("Above average")
}else{

PAGE 6
return("Excellent")
}
}

category<-NULL
for(i in 1:nrow(dis1.pmgdisha)){
category<-
c(category,categorize(dis1.pmgdisha[i,"Registered.candidates"],dis1.pmgdisha[i,"Ce
rtified.Candidates"]))
}
dis1.pmgdisha$category<-as.factor(category)

#FUNCTION TO CATEGORIZE THE PANCHAYATS INTO 5 CATEGORIES with


passing percentage

derive_percentage<-function(reg,cert){
if(reg==0){
return(reg)
}
val<-(cert/reg)*100
if(val <= 25){
return(val)
}else if(val<=50 & val>25){
return(val)
}else if(val<=75 & val>50){
return(val)
}else{
return(val)
}
}

Result_Percent<-NULL
for(i in 1:nrow(dis1.pmgdisha)){
Result_Percent<-
c(Result_Percent,derive_percentage(dis1.pmgdisha[i,"Registered.candidates"],dis1.
pmgdisha[i,"Certified.Candidates"]))
}
dis1.pmgdisha$Result_Percent<-as.numeric(Result_Percent)

▫ FORMULA :- (certified/registered)*100

▫ Excellent (75<)%

PAGE 7
• #ROWS having best performance on Certified candidates
bestcertified.pmgdisha<-filter(dis1.pmgdisha,category=="Excellent")

▫ Above Average (50-75)%

• #ROWS HAVING Above Average track record


aboveAverage.pmgdisha<-filter(dis1.pmgdisha,category=="Above
average")

▫ Below Average (25-50)%

• #ROWS HAVING below Average track record


belowAverage.pmgdisha<-filter(dis1.pmgdisha,category=="Below
average")

▫ Poor (0-25)%

• #ROWS HAVING poor track record


poor.pmgdisha<-filter(dis1.pmgdisha,category=="Poor")

▫ None (Zero Registration)

• #ROWS HAVING REGITERED CANDIDATES=0


ZeroReg.pmgdisha<-filter(dis1.pmgdisha,category=="None")

▫ Registered candidates in UP = 27,05,152

▫ Trained candidates in UP = 27,05,152

▫ Exam taken candidates in UP = 13,73,969

▫ Certified candidates in UP = 13,16,647

PAGE 8
Disclaimer : Based on the sample data, the image is for symbolic representation
only.

WRAP UP:
• To display the categorized panchayats in a better view geocoding is done using R
in order to get latitude and longitude of every panchayat.

#Data visualization
library(ggplot2)
library(ggmap)

#Finding Latitude and longitude

visualize<-function(sheet){
for (i in 1:nrow(sheet)){
latlon = geocode(sheet[i,"Address"])
sheet$lon[i] = as.numeric(latlon[1])
sheet$lat[i] = as.numeric(latlon[2])
}

• Geocoding of each categorical data was done and the rows with non-NA entries
were kept in different data-frame in R with name as (category)Map.pmgdisha.

PAGE 9
ZeroRegMap.pmgdisha<-ZeroReg.pmgdisha[complete.cases(ZeroReg.pmgdisha),]
poorMap.pmgdisha<-poor.pmgdisha[complete.cases(poor.pmgdisha),]
belowAverageMap.pmgdisha<-
belowAverage.pmgdisha[complete.cases(belowAverage.pmgdisha),]
aboveAverageMap.pmgdisha<-
aboveAverage.pmgdisha[complete.cases(aboveAverage.pmgdisha),]
bestcertifiedMap.pmgdisha<-
bestcertified.pmgdisha[complete.cases(bestcertified.pmgdisha),]

• Now in order to plot the panchayats district wise on the map, the above data
frames were combined together and then segregated in the 75 districts of Uttar
Pradesh.

#BINDING DATA FRAMES


DistrictWise<-
rbind.data.frame(bestcertified.pmgdisha,aboveAverage.pmgdisha,belowAverage.p
mgdisha,poor.pmgdisha,ZeroReg.pmgdisha)
DistrictWiseMap<-
rbind.data.frame(bestcertifiedMap.pmgdisha,aboveAverageMap.pmgdisha,belowA
verageMap.pmgdisha,poorMap.pmgdisha,ZeroRegMap.pmgdisha)

#DistrictMap WISE SEGREGATION


X1<-split.data.frame(DistrictWise,DistrictWise$district_name)
X<-split.data.frame(DistrictWiseMap,DistrictWiseMap$district_name)

Disclaimer : Based on the sample data, the image is for symbolic representation
only.

PAGE 10
• Now a makeMap function is made which when called plots the panchayats of each
district on the basis of their category with different colors and then it is linked
with the PMGDISHA Dashboard.

makeMap<- function(test1){
getColor <- function (test1) {
sapply(test1$category, function(category) {
if(category=="Excellent") {
"black"
} else if(category=="Above average") {
"pink"
}else if(category=="Below average") {
"darkblue"
}else if(category=="Poor") {
"orange"
} else {
"red"
}})
}

icons <- awesomeIcons(


icon = 'ios-close',
iconColor = 'black',
library = 'ion',
markerColor = getColor(test1)
)

cntr_crds <- c(mean(test1[, "lon"]),mean((test1)[, "lat"]))

leaflet(test1) %>% addProviderTiles(providers$CartoDB.Positron)%>%


addAwesomeMarkers(~lon, ~lat, icon=icons, popup = paste("<strong>", "State:",
"</strong>", test1$state_name, "<br>",
"<strong>","District:","</strong>",
test1$district_name, "<br>",
"<strong>","Tehsil:","</strong>",
test1$tehsil_name, "<br>",
"<strong>","Panchayat:","</strong>",
test1$panchayat_name, "<br>",
"<strong>","Registered candisates:","</strong>",
test1$Registered.candidates, "<br>",
"<strong>","Trained candisates:","</strong>",
test1$Trained.Candidates, "<br>",

PAGE 11
"<strong>","Exam completed:","</strong>",
test1$Exam.Completed, "<br>",
"<strong>","Certified candisates:","</strong>",
test1$Certified.Candidates, "<br>",
"<strong>","Result Percent:","</strong>",
test1$Result_Percent, "<br>",
"<strong>","Category:","</strong>",
test1$category))%>%
addLegend(position = "topright",colors =
c("black","pink","blue","orange","red"),labels =
c("Excellent","AboveAverage","BelowAverage","Poor","Zero Registration"),title =
"Color Grades")%>%
setView(cntr_crds[1], cntr_crds[2], zoom = 11)

makeMap(X[["AGRA"]])

Disclaimer : Based on the sample data, the image is for symbolic representation
only.

PAGE 12
makeMap(X[["ALIGARH"]])

Disclaimer : Based on the sample data, the image is for symbolic representation only.

makeMap(X[["ALLAHABAD"]])

Disclaimer : Based on the sample data, the image is for symbolic representation only.

PAGE 13
• Download button is there download the distrct wise sheet to give it to directly to
the District coordinator in order to have a triggered approach on those
panchayats.

-----------------------TASK 1 FINISHED---------------------

PAGE 14
TASK 2

OBJECTIVE:
• Capturing/analyzing the data regarding Digital lockers opened for the beneficiaries
certified under the PMGDISHA and digital certificates pushed into their respective
lockers.

APPROACH:
• State: Assam

▫ 1st and 2nd approach are applied same as Task 1 on the data of Assam.

▫ Registered = 1,65,125

▫ Trained = 1,46,628

▫ Digital lockers opened = Exam Eligible Candidates = 64,166

▫ Not opened = 1,46,628 – 64,166=82,462

▫ Exam taken = 31,467

▫ Certified = 30,713

Disclaimer : Based on the sample data, the image is for symbolic representation only.

PAGE 15
 Digital lockers can only be made after the 10 days of training is completed of the
beneficiaries and that in the case of Assam is 64,166 out of total trained candidates
of 1,46,628.
 District wise data was prepared with the same R code used in Task 1.

Disclaimer : Based on the sample data, the image is for symbolic representation only.

WRAP UP:
• Distrcit wise view and Training centres Map is made so that direct and precise
contact can be made using code same as task 1.

• Every map was exported as a web page in order to link it to the Dashboard so that
a proper visual view can be seen.

• Some examples of mapView of 3 distrcits of Assam.

PAGE 16
 Baksa District

Disclaimer : Based on the sample data, the image is for symbolic representation only.

• Barpeta District

Disclaimer : Based on the sample data, the image is for symbolic representation only.

PAGE 17
• Bongaigaon District

Disclaimer : Based on the sample data, the image is for symbolic representation only.

• No training centres

Disclaimer : Based on the sample data, the image is for symbolic representation only.

PAGE 18
• Zero Registered Trainig Centres.

Disclaimer : Based on the sample data, the image is for symbolic representation only

-----------------------TASK 2 FINISHED---------------------

PAGE 19
FINAL OUTCOME OF TASK 1 & TASK 2:-
A proper website containing Registration page, login page and a Dashboard is made so
that all the analysis on sample states of Uttar Pradesh and Assam can be viewed properly
at one place.

REGISTRATION PAGE

DISCLAIMER : BASED ON THE SAMPLE DATA, THE IMAGE IS FOR SYMBOLIC


REPRESENTATION ONLY.

LOGIN PAGE

DISCLAIMER : BASED ON THE SAMPLE DATA, THE IMAGE IS FOR SYMBOLIC


REPRESENTATION ONLY.

PAGE 20
DASHBOARD

DISCLAIMER : BASED ON THE SAMPLE DATA, THE IMAGE IS FOR SYMBOLIC


REPRESENTATION ONLY.

PAGE 21
TASK 3

OBJECTIVES:
• Data analysis of digital financial transactions made by the PMGDISHA beneficiaries
and amount transferred/refunded to the beneficiaries or to the CSC operators
implementing PMGDISHA Scheme by CSC-SPV.

APPROACH:
 Currently there is no proper way implemented in refunding the money of the
beneficiaries which they transfer in CSC-SPV accounts.
 Each beneficiary transfer Rs.5 in 5 transactions but there is no proper algorithm or
system developed to transfer that amount to the respective beneficiary.
 At present CSC-SPV is facing the problem in refunding the money because
transaction ID’s come from different banks.

WRAP-UP:
 But CSC-SPV is working on an algorithm and a software that can identify the
transaction ID properly and can refund the money back.

-----------------------TASK 3 FINISHED---------------------

PAGE 22
TASK 4

OBJECTIVES:
• Study on backend IT technological components undertaken towards
implementation of PMGDISHA Scheme by CSC-SPV.

APPROACH:
THE PMGDISHA PORTAL IS DEVELOPED ON MVC
ARCHITECTURE

Source: Internet

 THE THEORY BEHIND MODEL VIEW CONTROLLER


Model View Controller (MVC) is a software architecture pattern, commonly used to
implement user interfaces: it is therefore a popular choice for architecting web apps. In
general, it separates out the application logic into three separate parts, promoting
modularity and ease of collaboration and reuse. It also makes applications more flexible
and welcoming to iterations.

PAGE 23
To make this a little more clear, let's imagine a shopping app. All we want is a list of the
name, quantity and price of each item we need to buy this week. Below we'll describe how
we could implement some of this functionality using MVC.

 The Model
The model defines what data the app should contain. If the state of this data changes, then
the model will usually notify the view (so the display can change as needed) and
sometimes the controller (if different logic is needed to control the updated view).

Going back to our shopping list app, the model would specify what data the list items
should contain — item, price, etc. — and what list items are already present.

 The View
The view defines how the app's data should be displayed.

In our shopping list app, the view would define how the list is presented to the user, and
receive the data to display from the model.

 The Controller
The controller contains logic that updates the model and/or view in response to input
from the users of the app.

So for example, our shopping list could have input forms and buttons that allow us to add
or delete items. These actions require the model to be updated, so the input is sent to the
controller, which then manipulates the model as appropriate, which then sends updated
data to the view.

You might however also want to just update the view to display the data in a different
format, e.g., change the item order to alphabetical, or lowest to highest price. In this case
the controller could handle this directly without needing to update the model.

 System is hosted on AWS cloud in India

AWS announced that Amazon Internet Services Private Limited (AISPL), an Indian
subsidiary of the Amazon Group, which undertakes the resale and marketing of AWS
Cloud services in India, has achieved full Cloud Service Provider (CSP) empanelment, and
successfully completed the STQC (Standardization Testing and Quality Certification)
audit from the Indian Ministry of Electronics and Information Technology (MeitY) for
cloud services delivered from the AWS Asia Pacific (Mumbai) Region.

Government organizations can take advantage of the best-in-class technology from AWS
Cloud to drive transformation, and to deliver highly innovative citizen-centric services at
lower cost through programs such as Digital India, Skill India, and Smart Cities. AWS
offers fully featured services for compute, storage, databases, IoT, networking, machine

PAGE 24
learning and artificial intelligence (AI), and more, from 46 Availability Zones across 17
geographic regions globally.

AWS public sector customers in India include Andhra Pradesh State Skill Development
Corporation (APSSDC), Centre for Science and Environment (CSE), CSC e-Governance
Services (set up by the Ministry of Electronics & IT), Gujarat Technical University, Indian
Institute of Science (IISc), and Indian Institute of Technology, Guwahati.

What is Cloud Computing?


Cloud computing is the on-demand delivery of compute power, database storage,
applications, and other IT resources through a cloud services platform via the internet
with pay-as-you-go pricing.

CLOUD COMPUTING BASICS


Whether you are running applications that share photos to millions of mobile users or
you’re supporting the critical operations of your business, a cloud services platform
provides rapid access to flexible and low cost IT resources. With cloud computing, you
don’t need to make large upfront investments in hardware and spend a lot of time on the
heavy lifting of managing that hardware. Instead, you can provision exactly the right type
and size of computing resources you need to power your newest bright idea or operate
your IT department. You can access as many resources as you need, almost instantly, and
only pay for what you use.

HOW DOES CLOUD COMPUTING WORK?


Cloud computing provides a simple way to access servers, storage, databases and a broad
set of application services over the Internet. A Cloud services platform such as Amazon
Web Services owns and maintains the network-connected hardware required for these
application services, while you provision and use what you need via a web application.

SIX ADVANTAGES AND BENEFITS OF CLOUD COMPUTING

Source: Internet

PAGE 25
Trade capital expense for variable expense
Instead of having to invest heavily in data centers and servers before you know how you’re
going to use them, you can only pay when you consume computing resources, and only
pay for how much you consume.

Source: Internet

Benefit from massive economies of scale


By using cloud computing, you can achieve a lower variable cost than you can get on your
own. Because usage from hundreds of thousands of customers are aggregated in the cloud,
providers such as Amazon Web Services can achieve higher economies of scale which
translates into lower pay as you go prices.

Source: Internet

Stop guessing capacity


Eliminate guessing on your infrastructure capacity needs. When you make a capacity
decision prior to deploying an application, you often either end up sitting on expensive
idle resources or dealing with limited capacity. With cloud computing, these problems go
away. You can access as much or as little as you need, and scale up and down as required
with only a few minutes notice.

Source: Internet

PAGE 26
Increase speed and agility
In a cloud computing environment, new IT resources are only ever a click away, which
means you reduce the time it takes to make those resources available to your developers
from weeks to just minutes. This results in a dramatic increase in agility for the
organization, since the cost and time it takes to experiment and develop is significantly
lower.

Source: Internet

Stop spending money on running and maintaining data centers


Focus on projects that differentiate your business, not the infrastructure. Cloud
computing lets you focus on your own customers, rather than on the heavy lifting of
racking, stacking and powering servers.

Source: Internet

Go global in minutes
Easily deploy your application in multiple regions around the world with just a few clicks.
This means you can provide a lower latency and better experience for your customers
simply and at minimal cost.

TYPES OF CLOUD COMPUTING


Cloud computing has three main types that are commonly referred to as Infrastructure as
a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). Selecting
the right type of cloud computing for your needs can help you strike the right balance of
control and the avoidance of undifferentiated heavy lifting.

PAGE 27
JAVA/OPEN SOURCE SOFTWARE IS USED

DWR

DWR is a Java open source library which allows you to write Ajax web sites. It allows code
in a browser to use Java functions running on a web server just as if it was in the browser.
DWR works by dynamically generating Javascript based on Java classes. The code does
some Ajax magic to make it feel like the execution is happening on the browser, but in
reality the server is executing the code and DWR is marshalling the data back and
forwards.

Google Web Toolkit

Google Web Toolkit (GWT) is an open source Java software development framework that
makes writing AJAX applications like Google Maps and Gmail easy for developers who
don't speak browser quirks as a second language. Writing dynamic web applications
today is a tedious and error-prone process; you spend 90% of your time working around
subtle incompatibilities between web browsers and platforms, and JavaScript's lack of
modularity makes sharing, testing, and reusing AJAX components difficult and fragile.
GWT lets you avoid many of these headaches while offering your users the same
dynamic, standards-compliant experience. You write your front end in the Java
programming language, and the GWT compiler converts your Java classes to browser-
compliant JavaScript and HTML.

Echo2

Echo2 is the next-generation of the Echo Web Framework, a platform for developing
web-based applications that approach the capabilities of rich clients. The 2.0 version
holds true to the core concepts of Echo while providing dramatic performance,
capability, and user-experience enhancements made possible by its new Ajax-based
rendering engine.

ICEfaces

ICEfaces is an integrated Ajax application framework that enables Java EE application


developers to easily create and deploy thin-client rich Internet applications (RIA) in pure
Java. ICEfaces leverages the entire standards-based Java EE ecosystem of tools and
execution environments. Rich enterprise application features are developed in pure Java,
and in a pure thin-client model. There are no Applets or proprietary browser plug-ins
required. ICEfaces applications are JavaServer Faces (JSF) applications, so Java EE

PAGE 28
application development skills apply directly and Java developers are isolated from doing
any JavaScript related development.

SweetDEV RIA

SweetDEV RIA is a complete set of world-class Ajax tags in Java/J2EE. It helps you to
design Rich GUI in a thin client. SweetDEV RIA provides you Out-Of-The-Box Ajax tags.
Continue to develop your application with frameworks like Struts or JSF. SweetDEV RIA
tags can be plugged into your JSP pages.

ItsNat, Natural AJAX

ItsNat is an open source (dual licensed GNU Affero General Public License
v3/commercial license for closed source projects) Java AJAX Component based Web
Framework. It offers a natural approach to the modern Web 2.0 development. ItsNat
simulates a Universal W3C Java Browser in the server. The server mimics the behavior of
a web browser, containing a W3C DOM Level 2 node tree and receiving W3C DOM
Events using AJAX. Every DOM server change is automatically sent to the client and
updated the client DOM accordingly. Consequences: pure (X)HTML templates and pure
Java W3C DOM for the view logic. No JSP, no custom tags, no XML meta-programming,
no expression languages, no black boxed components where the developer has absolute
control of the view. ItsNat provides an, optional, event based (AJAX) Component System,
inspired in Swing and reusing Swing as far as possible such as data and selection models,
where every DOM element or element group can be easily a component.

ThinWire

ThinWire is an development framework that allows you to easily build applications for
the web that have responsive, expressive and interactive user interfaces without the
complexity of the alternatives. While virtually any web application can be built with
ThinWire, when it comes to enterprise applications, the framework excels with its highly
interactive and rich user interface components.

Source: Internet

-----------------------TASK 4 FINISHED---------------------

------------------------------------REPORT COMPLETED----------------------------

PAGE 29
PAGE 30

You might also like