CS8711 - Cloud Computing Record
CS8711 - Cloud Computing Record
Name _________________________________________
Branch _________________________________________
This is to certify that this is a bonafide record of work done by the above student in
_______________ _______________
_______________ _______________
Signature
Ex. No Date Name of the Experiment Page No. Marks
of the faculty
4 Install Hadoop
Aim:
Find procedure to Install Virtualbox / VMware Workstation with different flavours of linux or
windows OS on top of windows7 or 8. This experiment is to be performed through portal.
Procedure to install:
It should probably be in the download folder by default, if you have not changed the settings in your
browser. File name should be something like VMware-workstation-full-15.5.1-15018445.exe. This file
name can change depending on the version of the software currently available for download. But for
now, till the next version is available, they will all be VMware Workstation 15 Pro.
For demonstration purpose, I have placed the downloaded installer on my desktop. Find the installer on
your system and double click to launch the application.
VMware workstation 15 pro for windows 10 installer file screenshot.
VMware Workstation 12 Pro installer windows 10 UAC screenshot Initial Splash screen will appear.
Wait for the process to complete.
VMware Workstation 15 Installation Splash Screen
Now you will see VMware Workstation setup wizard dialog box. Click next to continue.
Select the folder in which you would like to install the application. There is no harm in leaving the
defaults as it is. Also select Enhanced Keyboard Driver check box.
Next step is to select the place you want the shortcut icons to be placed on your system to launch the
application. Please select both the options, desktop and start menu and click next.
Now you see the begin installation dialog box. Click install to start the installation process.
Screenshot for VMware Workstation 15 pro installation begin confirmation dialog box on windows10.
After the installation completes, you should see VMware Workstation icon on the desktop. Double
click on it to launch the application.
If you see the dialog box asking for licence key, click on trial or enter the licence key. Then what you have
is the VMware Workstation 15 Pro running on your windows 10 desktop. If don’t have the licence
key, you will have 30days trial.
At some point of time if you decide to buy the Licence key, you can enter the Licence key by going
to Help->Enter a Licence Key You can enter the 25 character licence key in the dialog box shown
below and click OK. Now you have the licence version of the software.
Result:
Thus the installation of Virtual box/VMware was installed and running successfully
EX. No:2 INSTALL A C COMPILER IN THE VIRTUAL MACHINE
CREATED USING VIRTUAL BOX AND EXECUTE SIMPLE
PROGRAMS
Aim:
Install a C compiler in the virtual machine created using virtual box and execute Simple Programs
InstallVirtualBox
1. Visit http://www.virtualbox.org/wiki/downloads
2. Download VirtualBox platform packages for your OS
3. Open the Installation Package by double clicking
MAC
Install VirtualBox
MAC
PC
MAC
PC
MAC
PC
Install Linux using Virtual Box
5. Choose the amount of memory to allocate (I suggest choosing between 512 MB to 1024 MB)
6. Click Continue or Next
MAC
PC
Install Linux using Virtual Box
MAC
PC
Install Linux using Virtual Box
MAC
PC
Install Linux using Virtual Box
11. Choose ÒDynamically AllocatedÓ click continue. This way, the size of your Virtual Hard Disk will grow as
MAC
PC
Install Linux using Virtual Box
12. Click the folder icon and choose the ubuntu iso Þle you downloaded.
13. Select the size of the Virtual Disk (I recommend choosing 8 GB) and click continue
MAC
PC
Install Linux using Virtual Box
MAC
PC
Running Linux
MAC & PC
Running Linux
3. Click continue on pop-up window
MAC
PC
Running Linux
3. Click the folder icon and choose the ubuntu iso Þle you downloaded and click continue and start
Running Linux
Running Linux
5. Choose Erase disk and install Ubuntu and click Forward (Don’t worry, it won’t wipe your computer)
Running Linux
C Programming on Linux
2. Open gedit by typing gedit & on terminal (You can also use any other Text Editor application)
C Programming on Linux
#include<stdio.h>
main()
printf("Hello World\n");
4.
C Programming on Linux
5. Type ls on Terminal to see all Files under current folder
6. Confirm that helloworld.c is in the current directory. If not, type cd DIRECTORY_PATH to go to the directo
7. Type gcc helloworld.c to compile, and type ls to conÞrm that a new executable Þle a.out is created
C Programming on Linux
Type ./a.out on Terminal to run the progra
Result:
Thus the installation of a c compiler in the virtual machine using virtual box was installed and
executed successfully.
EX. No:3 INSTALLING AND RUNNING THE GOOGLE APP ENGINE
ON WINDOWS
Aim:
Installing and Running the Google App Engine On Windows
Procedure:
This document describes the installation of the Google App Engine Software Development
Kit (SDK) on a Microsoft Windows and running a simple “hello world” application.
The App Engine SDK allows you to run Google App Engine Applications on your local
computer. It simulates the run--‐time environment of the Google App Engine infrastructure.
If you don't already have Python 2.5.4 installed in your computer, download and
http://www.python.org/download/releases/2.5.4/
You can download the Google App Engine SDK by going to:
http://code.google.com/appengine/downloads.html
Click through the installation wizard, and it should install the App Engine. If you do not
have Python 2.5, it will install Python 2.5 as well.
Once the install is complete you can discard the downloaded installer
Making your First Application
Now you need to create a simple application. We could use the “+” option to have the
launcher make us an application – but instead we will do it by hand to get a better
sense of what is going on.
Make a folder for your Google App Engine applications. I am going to make the
Folder on my Desktop called “apps” – the path to this folder is:
And then make a sub--‐folder in within apps called “ae--01--trivial” – the path to this
folder would be:
Using a text editor such as JEdit (www.jedit.org), create a file called app.yaml in the ae-
-01--trivial folder with the following contents:
application: ae-01-trivial
version: 1
runtime: python
api_version: 1
handlers:
- url: /.*
script: index.py
Note: Please do not copy and paste these lines into your text editor – you might end up
with strange characters – simply type them into your editor.
Then create a file in the ae--01--trivial folder called index.py with three lines in it:
Paste http://localhost:8080 into your browser and you should see your
application as follows:
Just for fun, edit the index.py to change the name “Chuck” to your own name and
press Refresh in the browser to verify your updates.
You can watch the internal log of the actions that the web server is performing when you
are interacting with your application in the browser. Select your application in the Launcher
and press the Logs button to bring up a log window:
Each time you press Refresh in your browser – you can see it retrieving the output with
a GET request.
With two files to edit, there are two general categories of errors that you may encounter.
If you make a mistake on the app.yaml file, the App Engine will not start and your
launcher will show a yellow icon near your application:
To get more detail on what is going wrong, take a look at the log for the application:
In this instance – the mistake is mis--‐indenting the last line in the app.yaml (line 8).
If you make a syntax error in the index.py file, a Python trace back error will appear in
your browser.
The error you need to see is likely to be the last few lines of the output – in this case I
made a Python syntax error on line one of our one--‐line application.
Reference: http://en.wikipedia.org/wiki/Stack_trace
When you make a mistake in the app.yaml file – you must the fix the mistake and
attempt to start the application again.
If you make a mistake in a file like index.py, you can simply fix the file and press refresh in your
browser – there is no need to restart the server.
To shut down the server, use the Launcher, select your application and press the Stop button.
This material is Copyright All Rights Reserved – Charles Severance
Comments and questions to [email protected] www.dr--‐chuck.com
CloudSim is written in Java. The knowledge you need to use CloudSim is basic Java
programming and some basics about cloud computing. Knowledge of programming IDEs such
as Eclipse or NetBeans is also helpful. It is a library and, hence, CloudSim does not have to be
installed. Normally, you can unpack the downloaded package in any directory, add it to the Java
classpath and it is ready to be used. Please verify whether Java is available on your system. To
use CloudSim in Eclipse:
5. The first step is to initialise the CloudSim package by initialising the CloudSim library,
as follows:
6. Data centres are the resource providers in CloudSim; hence, creation of data centres is a
second step. To create Datacenter, you need the DatacenterCharacteristics object that stores the
properties of a data centre such as architecture, OS, list of machines, allocation policy that
covers the time or spaceshared, the time zone and its price:
10. Create a cloudlet with length, file size, output size, and utilisation model:
Cloudlet cloudlet = new Cloudlet(id, length, pesNumber, fileSize, outputSize, utilizationModel, utilizationModel
CloudSim.startSimulation()
Initialising...
Starting CloudSim version 3.0
Datacenter_0 is starting...
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>null
Broker is starting...
Entities started.
Simulation completed.
Simulation completed.
========== OUTPUT ==========
Cloudlet ID STATUS Data center ID VM ID Time Start Time Finish Time
User id Debt
For this you need to share clipboard between host OS and guest OS, installing Guest
Addition on both the virtual machines (probably setting bidirectional and restarting
them). You copy from guest OS in the clipboard that is shared with the host OS.
Then you paste from the host OS to the second guest OS.
2. You can enable drag and drop too with the same method (Click on the machine,
settings, general, advanced, drag and drop: set to bidirectional )
3. You can have common Shared Folders on both virtual machines and use one of
the directory shared as buffer to copy.
Installing Guest Additions you have the possibility to set Shared Folders too. As you put a
file in a shared folder from host OS or from guest OS, is immediately visible to the other.
(Keep in mind that can arise some problems for date/time of the files when there are
different clock settings on the different virtual machines).
If you use the same folder shared on more machines you can exchange files directly copying
them in this folder.
4. You can use usual method to copy files between 2 different computer with client-server
application. (e.g. scp with sshd active for linux, winscp... you can get some info about SSH
servers e.g. here)
You need an active server (sshd) on the receiving machine and a client on the sending
machine. Of course you need to have the authorization setted (via password or, better,
via an automatic authentication method).
Note: many Linux/Ubuntu distribution install sshd by default: you can see if it is running
with pgrep sshd from a shell. You can install with sudo apt-get install openssh-server.
5. You can mount part of the file system of a virtual machine via NFS or SSHFS on
the other, or you can share file and directory with Samba.
You may find interesting the article Sharing files between guest and host without
You should remember that you are dialling with a little network of machines with different
operative systems, and in particular:
• Each virtual machine has its own operative system running on and acts as a
physical machine.
• Each virtual machine is an instance of a program owned by an user in the hosting operative
system and should undergo the restrictions of the user in the hosting OS.
E.g Let we say that Hastur and Meow are users of the hosting machine, but they did not
allow each other to see their directories (no read/write/execute authorization). When each
of them run a virtual machine, for the hosting OS those virtual machine are two normal
programs owned by Hastur and Meow and cannot see the private directory of the other
user. This is a restriction due to the hosting OS. It's easy to overcame it: it's enough to give
authorization to read/write/execute to a directory or to chose a different directory in which
both users can read/write/execute.
I mean I suggest you to enable Drag & drop to be cosy with the Windows machines
and the Shared folders or to be cosy with Linux.
When you will need to be fast with Linux you will feel the need of ssh-keygen and
to Generate once SSH Keys to copy files on/from a remote machine without writing password anymore.
In this way it functions bash auto-completion remotely too!
OpenStack is an open-source software cloud computing platform. OpenStack is primarily used
for deploying an infrastructure as a service (IaaS) solution like Amazon Web Service (AWS).
In other words, you can make your own AWS by using OpenStack. If you want to try out
OpenStack, TryStack is the easiest and free way to do it.
In order to try OpenStack in TryStack, you must register yourself by joining TryStack Facebook
Group. The acceptance of group needs a couple days because it’s approved manually. After you
have been accepted in the TryStack Group, you can log in TryStack.
TryStack.org Homepage
I assume that you already join to the Facebook Group and login to the dashboard. After you
log in to the TryStack, you will see the Compute Dashboard like:
OpenStack Compute Dashboard
In this post, I will show you how to run an OpenStack instance. The instance will be
accessible through the internet (have a public IP address). The final topology will like:
Network topology
As you see from the image above, the instance will be connected to a local network and the local
network will be connected to internet.
Network? Yes, the network in here is our own local network. So, your instances will be not
mixed up with the others. You can imagine this as your own LAN (Local Area Network) in the
cloud.
3. In Subnet tab,
1. Fill Network Address with appropriate CIDR, for example 192.168.1.0/24. Use private
network CIDR block as the best practice.
2. Select IP Version with appropriate IP version, in this case IPv4.
3. Click Next.
4. In Subnet Details tab, fill DNS Name Servers with 8.8.8.8 (Google DNS) and then
click Create.
Now, we will create an instance. The instance is a virtual machine in the cloud, like AWS EC2.
You need the instance to connect to the network that we just created in the previous step.
5. Select Image Name with Ubuntu 14.04 amd64 (243.7 MB) if you want install Ubuntu
1. Fill Key Pair Name with your machine name (for example Edward-Key).
2. Fill Public Key with your SSH public key (usually is in ~/.ssh/id_rsa.pub). See
description in Import Key Pair dialog box for more information. If you are using
Windows, you can use Puttygen to generate key pair.
4. In Networking tab,
1. In Selected Networks, select network that have been created in Step 1, for example internal.
5. Click Launch.
6. If you want to create multiple instances, you can repeat step 1-5. I created one more instance
with instance name Ubuntu 2.
I guess you already know what router is. In the step 1, we created our network, but it is isolated.
It doesn’t connect to the internet. To make our network has an internet connection, we need
a router that running as the gateway to the internet.
3. Click on your router name link, for example router1, Router Details page.
4. Click Set Gateway button in upper right:
6. Go to Network > Network Topology. You will see the network topology. In the example, there
are two network, i.e. external and internal, those are bridged by a router. There are
instances those are joined to internal network.
Step 4: Configure Floating IP Address
Floating IP address is public IP address. It makes your instance is accessible from the internet.
When you launch your instance, the instance will have a private network IP, but no public IP. In
OpenStack, the public IPs is collected in a pool and managed by admin (in our case is TryStack).
You need to request a public (floating) IP address to be assigned to your instance.
5. Click Associate.
6. Now you will get a public IP, e.g. 8.21.28.120, for your instance.
OpenStack has a feature like a firewall. It can whitelist/blacklist your in/out connection. It
is called Security Group.
1. Go to Compute > Access & Security and then open Security Groups tab.
2. In default row, click Manage Rules.
3. Click Add Rule, choose ALL ICMP rule to enable ping into your instance, and then click Add.
4. Click Add Rule, choose HTTP rule to open HTTP port (port 80), and then click Add.
5. Click Add Rule, choose SSH rule to open SSH port (port 22), and then click Add.
6. You can open other ports by creating new rules.
Now, you can SSH your instances to the floating IP address that you got in the step 4. If you
are using Ubuntu image, the SSH user will be ubuntu.
Result:
Thus the Google App engine was installed and running successfully.
EX. No:4 INSTALL HADOOP
Aim:
To Install Hadoop
Procedure:
Step 1: Click here to download the Java 8 Package. Save this file in your home
directory.
Step 2: Extract the Java Tar File.
Command: tar -xvf jdk-8u101-linux-i586.tar.gz
Step 5: Add the Hadoop and Java paths in the bash file (.bashrc).
Open. bashrc file. Now, add Hadoop and Java Path as shown below.
Command: vi .bashrc
For applying all these changes to the current Terminal, execute the source command.
To make sure that Java and Hadoop have been properly installed on your system and can be
accessed through the Terminal, execute the java -version and hadoop version commands.
Lifetime Access
Explore Curriculum
Command: ls
All the Hadoop configuration files are located in hadoop-2.7.3/etc/hadoop directory as you can
see in the snapshot below:
Fig: Hadoop Installation – Hadoop Configuration Files
Step 7: Open core-site.xml and edit the property mentioned below inside configuration
tag:
core-site.xml informs Hadoop daemon where NameNode runs in the cluster. It contains
configuration settings of Hadoop core such as I/O settings that are common to HDFS &
MapReduce.
Command: vi core-site.xml
7
8 </configuration>
Step 8: Edit hdfs-site.xml and edit the property mentioned below inside configuration
tag:
hdfs-site.xml contains configuration settings of HDFS daemons (i.e. NameNode, DataNode,
Secondary NameNode). It also includes the replication factor and block size of HDFS.
Command: vi hdfs-site.xml
Step 9: Edit the mapred-site.xml file and edit the property mentioned below inside
configuration tag:
mapred -site.xml contains configuration settings of MapReduce application like number of JVM
that can run in parallel, the size of the mapper and the reducer process, CPU cores available for a
process, etc.
In some cases, mapred-site.xml file is not available. So, we have to create the mapred-site.xml
file using mapred-site.xml template.
Command: vi mapred-site.xml.
7
</configuration>
8
Step 10: Edit yarn-site.xml and edit the property mentioned below inside configuration
tag:
yarn -site.xml contains configuration settings of ResourceManager and NodeManager like
application memory management size, the operation needed on program & algorithm, etc.
Command: vi yarn-site.xml
1
2 <?xml version="1.0">
3 <configuration>
4 <property>
5 <name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>6
</property>
7 <property>
8 <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</
9 name>
1 <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>0
1 </configuration>
Step 11: Edit hadoop-env.sh and add the Java Path as mentioned below:
hadoop-env.sh contains the environment variables that are used in the script to run Hadoop like
Java home path, etc.
Command: vi hadoop–env.sh
Fig: Hadoop Installation – Configuring hadoop-env.sh
Command: cd hadoop-2.7.3
This formats the HDFS via NameNode. This command is only executed for the first time.
Formatting the file system means initializing the directory specified by the dfs.name.dir
variable.
Never format, up and running Hadoop filesystem. You will lose all your data stored in the
HDFS.
Either you can start all daemons with a single command or do it individually.
Command: ./start-all.sh
Start NameNode:
The NameNode is the centerpiece of an HDFS file system. It keeps the directory tree of all files
stored in the HDFS and tracks all the file stored across the cluster.
Start DataNode:
On startup, a DataNode connects to the Namenode and it responds to the requests from the
Namenode for different operations.
Start ResourceManager:
ResourceManager is the master that arbitrates all the available cluster resources and thus helps in
managing the distributed applications running on the YARN system. Its work is to manage each
NodeManagers and the each application’s ApplicationMaster.
Step 14: To check that all the Hadoop services are up and running, run the below
command.
Command: jps
Result:
Thus the Hadoop was installed successfully.
EX. No:5 DEVELOP A NEW WEB SERVICE FOR CALCULATOR.
OBJECTIVE:
PROCEDURE:
When you start Globus toolkit container, there will be number of services starts up. The
service for this task will be a simple Math service that can perform basic arithmetic for a
client.
The service itself will have three remotely accessible operations that operate upon
value:
Usually, the best way for any programming task is to begin with an overall description of what
you want the code to do, which in this case is the service interface. The service interface
describes how what the service provides in terms of names of operations, their arguments and
return values. A Java interface for our service is:
It is possible to start with this interface and create the necessary WSDL file using the standard
Web service tool called Java2WSDL. However, the WSDL file for GT 4 has to include details
of resource properties that are not given explicitly in the interface above. Hence, we will provide
the WSDL file.
WSDL service interface description file -- The WSDL service interface description file is
provided within the GT4services folder at:
GT4Services\schema\examples\MathService_instance\Math.wsdl
This file, and discussion of its contents, can be found in Appendix A. Later on we will need to
modify this file, but first we will use the existing contents that describe the Math service above.
Service code in Java -- For this assignment, both the code for service operations and for the
resource properties are put in the same class for convenience. More complex services and
resources would be defined in separate classes. The Java code for the service and its resource
properties is located within the GT4services folder at:
GT4services\org\globus\examples\services\core\first\impl\MathService.java.
Deployment Descriptor -- The deployment descriptor gives several different important sets of
information about the service once it is deployed. It is located within the GT4services folder
at:
GT4services\org\globus\examples\services\core\first\deploy-server.wsdd.
It is now necessary to package all the required files into a GAR (Grid Archive) file. The build
tool ant from the Apache Software Foundation is used to achieve this as shown overleaf:
Generating a GAR file with Ant (from http://gdp.globus.org/gt4-
tutorial/multiplehtml/ch03s04.html)
Ant is similar in concept to the Unix make tool but a java tool and XML based.
Build scripts are provided by Globus 4 to use the ant build file. The windows version of the
build script for MathService is the Python file called globus-build-service.py, which held in
the GT4services directory. The build script takes one argument, the name of your service that
you want to deploy. To keep with the naming convention in [1], this service will be called first.
In the Client Window, run the build script from the GT4services directory with:
globus-build-service.py first
The output should look similar to the following:
Buildfile: build.xml
.
.
.
.
.
BUILD SUCCESSFUL
Total time: 8 seconds
During the build process, a new directory is created in your GT4Services directory that is
named build. All of your stubs and class files that were generated will be in that directory and
its subdirectories. More importantly, there is a GAR (Grid Archive) file called
org_globus_examples_services_core_first.gar. The GAR file is the package that contains
every file that is needed to successfully deploy your Math Service into the Globus container.
The files contained in the GAR file are the Java class files, WSDL, compiled stubs, and the
deployment descriptor.
If the container is still running in the Container Window, then stop it using Control-C. To deploy
the Math Service, you will use a tool provided by the Globus Toolkit called globus-deploy-gar.
In the Container Window, issue the command:
globus-deploy-gar org_globus_examples_services_core_first.gar
Successful output of the command is :
GT4Services\org\globus\examples\clients\MathService_instance\Client.java
and contains
You should see the service called MathService.
GT4Services\org\globus\examples\clients\MathService_instance\Client.java
package org.globus.examples.clients.MathService_instance;
import org.apache.axis.message.addressing.Address;
import org.apache.axis.message.addressing.EndpointReferenceType;
import org.globus.examples.stubs.MathService_instance.MathPortType;
import org.globus.examples.stubs.MathService_instance.GetValueRP;
import
org.globus.examples.stubs.MathService_instance.service.MathServiceAddressingL
ocator;
public class Client {
/ Get PortType
math = locator.getMathPortTypePort(endpoint);
/ Perform an addition
math.add(10);
/ Access value
System.out.println("Current value: "
+ math.getValueRP(new GetValueRP()));
/ Perform a subtraction
math.subtract(5);
/ Access value
System.out.println("Current value: "
+ math.getValueRP(new GetValueRP()));
} catch (Exception e) {
e.printStackTrace();
}
}
}
When the client is run from the command line, you pass it one argument. The argument is the
URL that specifies where the service resides. The client will create the end point rerference and
incorporate this URL as the address. The end point reference is then used with the
getMathPortTypePort method of a MathServiceAdressingLocator object to obtain a
reference to the Math interface (portType). Then, we can apply the methods available in the
service as though they were local methods Notice that the call to the service (add and subtract
method calls) must be in a “try {} catch(){}” block because a “RemoteException” may be
thrown. The code for the “MathServiceAddressingLocator” is created during the build
process. (Thus you don’t have to write it!)
%GLOBUS_LOCATION%\etc\globus-devel-env.bat
You can verify that this sets your CLASSPATH, by executing the command:
echo %CLASSPATH%
You should see a long list of JAR files.
Running \gt4\etc\globus-devel-env.bat only needs to be done once for each Client Window that
you open. It does not need to be done each time you compile.
Once your CLASSPATH has been set, then you can compile the Client code by typing in the
following command:
javac -classpath
build\classes\org\globus\examples\services\core\first\impl\:%CLASSPATH%
org\globus\examples\clients\MathService_instance\Client.java
globus-start-container -nosec
if the container is not running.
To start the client from your GT4Services directory, do the following in the Client Window,
which passes the GSH of the service as an argument:
java -classpath
build\classes\org\globus\examples\services\core\first\impl\:%CLASSPATH%
org.globus.examples.clients.MathService_instance.Client
http://localhost:8080/wsrf/services/examples/core/first/MathService
which should give the output:
Current value: 15
Current value: 10
Before we can add functionality to the Math Service (Section 5), we must undeploy the service.
In the Container Window, kill the container with a Control-C. Then to undeploy the service,
type in the following command:
globus-undeploy-gar org_globus_examples_services_core_first
which should result with the following output:
Undeploying gar...
Deleting /.
.
.
Undeploy successful
6 Adding Functionality to the Math Service
In this final task, you are asked to modify the Math service and associated files so the srvice
supports the multiplication operation. To do this task, you will need to modify:
MathService.java)
Math.wsdl)
The exact changes that are necessary are not given. You are to work them out yourself. You
will need to fully understand the contents of service code and WSDL files and then modify them
accordingly. Appendix A gives an explanation of the important parts of these files. Keep all file
names the same and simply redeploy the service afterwards. You will also need to add a code
to the client code (Client.java) to test the modified service to include multiplication.
Result:
Thus the Develop a new Web Service for Calculator was executed successfully.
EX.No:6 DEVELOP NEW OGSA-COMPLIANT WEB SERVICE
Aim:
Develop new OGSA-compliant Web Service
OBJECTIVE:
PROCEDURE:
Writing and deploying a WSRF Web Service is easier than you might think. You just have to
follow five simple steps
To run this program, as a minimum you will be required to have installed the following
prerequisite software
a. Download the latest Axis2 runtime from the above link and extract it. Now we
point Eclipse WTP to downloaded Axis2 Runtime. Open Window -> Preferences
-> Web Services -> Axis2 Emitter
Select the Axis2 Runtime tab and point to the correct Axis2 runtime location.
Alternatively at the Axis2 Preference tab, you can set the default setting that will
come up on the Web Services Creation wizards. For the moment we will accept
the default settings.
b. Click OK.
c. Next we need to create a project with the support of Axis2 features. Open File ->
Click next
d. Select the name Axis2WSTest as the Dynamic Web project name (you can specify
any name you prefer), and select the configured Tomcat runtime as the target
runtime.
Click next.
e. Select the Axis2 Web service facet
Click Finish.
h. Select Converter.java, open File -> New -> Other... -> Web Services -> Web
Service
Click next.
i. The Web service wizard would be brought up with Web service type set to
Bottom up Java bean Web Service with the service implementation
automatically filled in. Move the service scale to Start service.
j. Click on the Web Service runtime link to select the Axis2 runtime.
Click OK.
k. Ensure that the correct server and service project are selected as displayed below.
Click next.
l. This page is the service.xml selection page. if you have a custom services.xml, you
can include that by clicking the Browse button. For the moment, just leave it at the
default.
Click next.
m. This page is the Start Server page. It will be displayed if the server has not been
started. Click on the Start Server button. This will start the server runtime.
Click next.
n. This page is the Web services publication page, accept the defaults.
Click Finish.
o. Now, select the Axis2WSTest dynamic Web project, right-click and select Run ->
Run As -> Run on Server to bring up the Axis2 servlet.
Click Next.
p. Make sure you have the Axis2WSTest dynamic Web project on the right-hand
side under the Configured project.
Click Finish.
q. This will deploy the Axis2 server webapp on the configured servlet container
and will display the Axis2 home page. Note that the servlet container will start
up according to the Server configuration files on your workspace.
r. Click on the Services link to view the available services. The newly
created converter Web service will be shown there.
s. Click on the Converter Service link to display the wsdl URL of the newly
created Web service. Copy the URL.
t. Now we'll generate the client for the newly created service by referring the ?wsdl
generated by the Axis2 Server. Open File -> New -> Other... -> Web Services ->
Web ServiceClient
u. Paste the URL that was copied earlier into the service definition field.
v. Click on the Client project hyperlink and enter Axis2WSTestClient as the
name of the client project. Click OK.
Back on the Web Services Client wizard, make sure the Web service runtime is set to Axis2 and
the server is set correctly. Click Next.
Next page is the Client Configuration Page. Accept the defaults and click Finish.
The Clients stubs will be generated to your Dynamic Web project Axis2WSTestClient.
Now we are going to write Java main program to invoke the client stub. Import the
ConverterClient.java file to the workspace into the wtp package in the src folder of
Axis2WSTestClient.
Then select the ConverterClient file, right-click and select Run As -> Java Application. Here's
what you get on the server console:
Another way to test and invoke the service is to select Generate test case to test the service
check box on the Axis2 Client Web Service Configuration Page when going through the
Web Service Client wizard.
If that option is selected, the Axis2 emitter will generate JUnit testcases matching the WSDL
we provide to the client. These JUnit testcases will be generated to a newly added source
directory to the Axis2WSTestClient project called test.
Next thing we need to do is to insert the test case with the valid inputs as the Web service
method arguments. In this case, let's test the
ConverterConverterSOAP11Port_httpTest.java by provide values for Celsius and
Farenheit for the temperature conversion. As an example, replace the generated TODO
statement in each test method to fill in the data with values as:
testStartfarenheitToCelsius() ->farenheitToCelsius8.setFarenheit(212);
Here the testcases were generated to test both the synchronous and asynchronous clients.
w. After that, select the testcase, right-click, select Run As -> JUnit Test. You will be
able to run the unit test successfully invoking the Web service.
The Web Service wizard orchestrates the end-to-end generation, assembly, deployment,
installation and execution of the Web service and Web service client. Now that your
Web service is running, there are a few interesting things you can do with this WSDL
file. Examples:
You can choose Web Services -> Test with Web Services Explorer to test the
service.
You can choose Web Services -> Publish WSDL file to publish the service to a
public UDDI registry.
RESULT:
Thus the development of a new OGSA-compliant web service was executed successfully.
EX. No:7 USING APACHE AXIS DEVELOP A GRID SERVICE
OBJECTIVE:
PROCEDURE:
You will need to download and install the following software:
http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.1.24/bin/jakarta
tomcat4.1.24.exe.
1. Java 2 SDK
• Add the Java binaries to your PATH variable in the same way by setting a user
variable called PATH with the value “%PATH%;C:\j2sdk1.4.1\bin”
2. Apache Tomcat
<role rolename="admin"/>
</tomcat-users>
3. XML Security
4. Apache Axis
• Unzip the downloaded Axis archive to C: (this will create a directory C:\axis-1_1).
• Extract the file xmlsec.jar from the downloaded security archive to
privileged="true">
<LoggerclassName="org.apache.catalina.logger.FileLogger"prefix="axis_log."
suffix=".txt" timestamp="false"/>
Deploy one of the sample Web Services to test the system and to create the C:\axis-
1_1\webapps\axis\WEB-INF\server-config.wsdd file. From C:\axis-1_1 issue the
command (on one line):
java org.apache.axis.client.AdminClient
http://localhost:8080/axis/services/AdminService/samples/stock/deploy.wsdd
This should return the following:
RESULT:
Thus the development of a Grid Service using Apache Axis is executed successfully.
EX. No:8 DEVELOP APPLICATIONS USING JAVA OR C/C++ GRID APIS
Aim:
Develop applications using Java or C/C++ Grid APIs
OBJECTIVE:
To develop an applications using Java or C/C++ Grid APIs.
SAMPLE CODE:
import AgentTeamwork.Ateam.*;
import MPJ.*;
try {
Thread.currentThread( ).sleep( 1000 );
}
catch(InterruptedException e ) {
}
ateam.takeSnapshot( phase );
}
else
program.compute(
); MPJ.Finalize( );
}
try {
Thread.currentThread( ).sleep( 1000 );
}
catch(InterruptedException e ) {
}
ateam.takeSnapshot( phase );
}}
System.out.println ( "Sockets with " + myRank + ": " + " output[" + i + "]=" + i % 128 );
}
public static void main( String[] args ) {
MPJ.Init( args, ateam );
program.compute( ); MPJ.Finalize( );
}
}
rm -f *.class
javac -classpath MPJ.jar:Ateam.jar:. *.java
_libHelloWorld.so_ GridJNI_library.cpp
HelloWorld.cpp
cerr << "argv[0] = " << argv[0] << endl; cerr << "argv[1] = " <<
argv[1] << endl; MPI_Init(&argc, &argv); cout << "MPI Init
Successful!" << endl;
MPI_Comm_rank(0,&rank);
MPI_Comm_size(0,&size);
cout << "[HelloWorld.cpp]Rank = " << rank << endl;
cout << "[HelloWorld.cpp]Size = " << size << endl; cerr << "Calling
MPI_Finalize()" << endl; MPI_Finalize();
cerr << "finished" << endl;
RESULT:
Thus the development of applications using Java or C/C++ Grid APIs is executed successful