 Now, we are going to take an external web service which is hosted on ArcGIS website. ArcGIS is a GIS software basically they have exposed a map service They return certain set of maps based on the data source you select So we'll start with this demonstration. We have written a code piece of code this ArcGIS client is a Swim client and this test ESRI that acts as a web service client So we have done similar process We went to ArcGIS site. We took the visitor put it in that means generate client and Then give the necessary parameters for method in location. So there is a get map API It requires certain options to be given you give the you give those options so see X coordinate, Y coordinate, radius and data source. These are the parameters which are required after that you create particular data structure and The sport.getBestMap is the API which you call data source is So there are certain data sets which are defined on ArcGIS website. For example road data data set map data sets you need to Select you'll see in the demonstration. What are the different types of data sources available? So here we can see that you need to give X coordinate Y coordinate 50, radius of circle 20. Now these are the different data sets which are available on ArcGIS site Just select something. For map it is actually contacting the web service and trying to get map. That's why So the UI is freezing is proof that it is contacting the web service Taking some time to get back. So we can see that The map is coming here. It's not that much clear though It's still a map Essentially these are standard maps which are provided by this web service. So like this is roads of the world So arcweb and dot roads dot world another one is a globe explorer. So these are static maps which are The scale is written down One inch is zero 23 miles This is just a random web service that we picked up last night and we had so the details of the GIS data that's behind it We don't we don't even care So we are not showing the web services obviously has a map data in a database Creating a map data out of the database We didn't Create a web service client We created it exactly like you created a web service client yesterday in the lab. No difference. We got a WSTM file from that website We're not going to go through that. Yeah, it requires about half an hour 45 minutes. It's not possible to walk through that No, this is a web service. There are thousands of web services out there. We cannot go through every one of them So One of the things we can talk about is IID Bombay Network as a proxy Confilling the proxy for the last which was an issue that we They've gotten around it with some kind of network But assuming that the proxy situation is something that can be handled independently This won't be an issue If you take a look at this code again, this is similar You give a location to create new web service client You have the visitor location If you see web service references Is it local weather This is a web service client which we have created using visitor You create new service, you create new port Now we have given a static code JFK which is an airport code for John F. Kennedy airport Yeah You call web service like port or get weather report We are printing just relative humidity The result data set that comes back is a huge structure which has lots of information in it What's the color of the sky at that place What's the temperature, humidity, precipitation levels Everything is good. We're only printing one of them If you take a look at this, relative humidity is 43 So there are certain set of airport codes which are listed on this website This is actually the site at which we got that information from developer.capeclear.com He would put in an application for what we're just calling a water product We're allowing them to select a certain district from which this application is going to be submitted There's only a couple of choices in the database right now This is actually getting an order to fetch your database sitting on another server somewhere So they are going to submit this application Now what is happening is that this submission is actually invoking a vehicle process So this is invoking a vehicle process that will take off the workflow for dealing with this application that has just been submitted So it is going to go to multiple sources, two sources The Department of Land Planning and Department of Road Planning let's say Now this workflow involves human interaction as you can see So the first step is that the people send off a message to a web service The web service is now going to interact with humans eventually to a website that we set up which is the Department of Land Planning website The human has to give certain input to it and only then will the vehicle process continue and as a next step it will push it to the next department Now the human decides that he wants to actually look at some data before they can make a decision as to whether they want to approve or reject this application So we are going to go off and get data from what is called a WFS server WFS is a web service that has been defined by a standard body called OGC The Open Geospatial Consortium So we are going to get some data relating to this district for which an application will be applied So this person looks at the data, there is some data about the kind of habitation and the hydrography information for that district that is available and then they decide to let's say in this case accept Now obviously they could accept or reject and if they rejected a different path in the workflow to be taken Now this is where the human has interacted with the workflow to say this is the decision that I am giving you, come do whatever you want and then it turns out that the workflow is now going to pick that decision and continue the workflow It means another decision by another department which is some state road development body can be fictitiously named in this case and these people also would need to go look at some data for this So let's, this is going to go off to another data source to get more data A little more data here So this is going to bring back spatial data as well You can see on this is a little long You can see the spatial coordinates, this is coming off of a Oracle spatial database and suppose data is really not meant for human consumption as such So we are going to view this data as a map go all the way down So we are going to request that this data be viewed as a map There is another server called WMS server or web map server that is out there which is another web service for GIS services that we have built and it's going to return the data as a map that is now going to be displayed and then this human being who is viewing the map will make any appropriate decision based on that that was the road data that you saw and he could decide to accept or reject as well If you decide to accept then this decision has now been submitted to the workflow and the workflow now moves ahead and we can see the applicant who submitted the application in the first place can be checking on the status of the application through a web page that you set up at any point in time and it shows that this request was accepted because the entire workforce was complete Now if you check the status of the application at some intermediate point in time it would just say that it is pending till the workforce was completed So this just gives you an example of a business process in a pre-government kind of a context The context can be anything but this happens to be for a DST project that we have here at IDHANA We can just take a look at the people So it looks somewhat similar to what you have built yesterday So it has a if branch that is in there but it also has a, this does not have the concurrency part of it Is there a flow here? There is a flow here as well It is two things happening simultaneously but very similar to the people that you saw but it is in the context of a slightly more realistic application than concatenating random number of strings that you are doing So for those of you who felt that that was not too realistic and this is a little more realistic So this has been, this was demoed to the Department of Science and Technology last week week before last and they are actually planning to use similar technologies integrating multiple spatial data sources for a decent life planning purpose So I have given the reference to that project to her as well because she is interested from NYC So that is all we have for this demo Pardon? Which one? Which index? So there are many web applications that we have developed as part of this The application web app is the initiator of the workflow It is one of the web applications Then there is the roads department and the planning department web applications that we have also developed The program has DSP All the web app has DSP We go back to the browser application Very similar to the web page that you had yesterday the index.dsp that you had yesterday This is a web page that is kicking off a workflow The workflow is interacting web services which is connecting to Oracle You will not see that code here in the web page There is nothing to do with the web page The web service code for the roads department or the planning department is contacting another web service for degree That is the server That will talk to Oracle, give the data back So that is the path that is being followed So there is a GIS server that is sitting there which talks to the database There is no direct database code that we have written here We don't have to That service is what we are using The degree service we are going to take The service we are taking data We are just displaying the data here Connection pooling is being provided by the application server We don't explicitly manage the connection pool We only have to configure the connection pool on an app server Glass page has been configured with some default connection pool When Glass page comes up, you can take a look at the console It says, starting so many threads So that is part of the connection pooling configuration that we are reading in this one So we don't have to No developer would have to manage the configuration pooling This is part of the infrastructure capability always We have seen the evolution of web service When we have web service environment in cross-platform, cross-language, open environment When we have web service environment in cross-platform, cross-language, open environment Okay Web services are meant for open environments So it is basically used in this integration scenario Where you could have many different legacy applications Each application being built with different technologies For example, you could have a cakes environment You could have a tuxedo environment You could have an oracle financial application You could have an SAP application You could have all these applications existing in an environment So this goes back to the EAI thing that we talked about earlier So what you would typically do is that you would have these different applications talk to each other For example, let's suppose you want to have a purchase order A purchase order is typically part of the oracle financials application It is part of that And the purchase order is going to go off to a list of vendors It is going to go off to some vendors But the oracle financial application has to interact with inventory Which is not part of the oracle financial Let's say you have SAP ERP If you have SAP then your inventory is being managed by SAP So your financials and SAP now have to talk to each other In order to ensure when is a PO kicked off When the inventory level drops below some point Of some raw material that you are using in manufacturing Order for that to happen These two applications have to talk to one another Both are written using disparate technologies Different languages, APRs, maybe different whatever So the question is how do you make this happen There are two ways One is you can write a specific custom adapter From SAP to go to oracle financials If you want to send a message to financials saying Please issue a PO I will write a custom adapter to go from SAP inventory To oracle financials So that is one way of doing it The other way of doing it is to wrap these in web services And expose them as web services Each one of them So my oracle financials would be exposed as a set of web services An issue of PO would be a particular web service And now my SAP application can call out Oracle financials using standard web services The advantage of this is that If I have 10 other different technologies in applications Let's say I have a CRM system Which happens to be Siebel I have a billing application It happens to be portal There are all these different vendors out there Each one of which has built it In their own way, shape and form Now every one of them is exposed If my technology that is used to hit All of this will now become common So my interaction patterns will become grounded With a common base This is often also referred to as An ESB out in the industry Enterprise service bus Which does more than just routing functions So it will do transformation It will do persistent queuing and so on But it's not nothing great That's essentially what it's doing Enterprise service bus is taking a message That is given by one application And persistently keeping it Maybe transforming data Because the data schemas may be different So a customer may be known in one schema In one application, another schema And another application It will do a transformation Based on certain accessibility rules That we have given it And then it will route it to the appropriate place Because it knows the locations And it's an evolving technology This way is evolving step So are there any restrictions With this way as of today? I'm sure there are many restrictions We saw So the core specifications are reasonably solved The core specifications being solved Visgill and UDDI Are reasonably stable Right The other sets of specifications Like the ones we saw today morning WS policy WS policy I think is also very stable But the reliable messaging framework Transactions framework etc Are in some state of flux They have one at least one set of specifications out completely And there are products built to those specifications as well But the specification may change In the future This means the product may also change I'm going to be an SIO So where The application software But Next One of the slide Is taking a methodic System And Is it an indication that So I can also be used to the System software level More certainly System software level Whatever he was talking about He said that software itself Is very sensitive In other words What is concept sensitivity Is that it will be able to sense The surrounding environment in which The software is operating And react appropriately to that That can be done In a SOA environment In fact we have a research project We are funded by Motorola We do exactly that Building a context-sensitive middleware For SOA Using web services That is the heterogeneity issue Because it is a common platformer standard And in fact this example That I was just walking through Also demonstrates how you deal With heterogeneity So you have SAP or SQL You have different applications written Using different languages Using different technologies Which can all be made to talk to each other In a uniform, seamless way That is addressing the heterogeneity issue At the software level There is not much of a concern at all Because there are virtual machines That are already writing and talking Talk to a writer and talk to a worker So you are kind of insulated From the specific instruction set Already So I do not believe that is a concern So can SOA address what he is talking about In fact that is what he said Web services is part of the platform It is exactly what he said SOA is a way of building applications Applications could be your Refer to system software But it is also a way of connecting applications That have already been done So that is one thing that we have to keep in mind People connect applications By itself it is an application But it also helps connect different applications It is doing that enterprise integration Aspect of it