1 / 18

On Integrating Service-Oriented Paradigm Into Introductory IS Courses

On Integrating Service-Oriented Paradigm Into Introductory IS Courses. Billy B. L. Lim Chu Jong School of Information Technology Illinois State University Normal, IL 61790-5150, USA. Evolution of Approaches. Delivery mode Programming Mainframe-based PCs Text-based

Download Presentation

On Integrating Service-Oriented Paradigm Into Introductory IS Courses

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. On Integrating Service-Oriented Paradigm Into Introductory IS Courses Billy B. L. Lim Chu Jong School of Information Technology Illinois State University Normal, IL 61790-5150, USA

  2. Evolution of Approaches • Delivery mode • Programming • Mainframe-based • PCs • Text-based • Graphical user interfaces (GUIs) • Web • Java Applet, JavaScript • Analysis and Design • Structured • OO • Next wave • SOA (service-oriented architecture) / WS (Web services)? Procedural Object-Oriented

  3. Service, Service Paradigm, and SOA • Service • “Services are self-describing, platform-agnostic computational elements that support rapid low-cost composition of distributed applications.” (Papazoglou, 2003) • “[A service] is an application function packaged as a reusable component for use in a business process. It either provides information or facilitates a change to business data from one valid and consistent state to another.” (Bennett, 2002) • Service-oriented paradigm / SOA • utilizes services as fundamental building blocks for developing applications

  4. Web services: The 4 W’s • What • “A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP-messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards.” [W3C] • Web services Components • WSDL (Web Service Description Language) • SOAP (Simple Object Access Protocol) • UDDI (Universal Description, Discovery, and Integration)

  5. Web services: The 4 W’s (cont’d) • Why • 4 papers at ISECON 2006 • “Creating Web Services for Legacy COBOL” • “Web Services: Introduction and Travel Project Tutorials Using Visual Studio and ASP.NET” • “Service-Oriented Architecture: Concepts and Implementation” • “Integrating a Service-Oriented Paradigm into Introductory IS Courses” • This seems to be one of the most promising advances in software design & development in recent years • Interoperable, Easy to use, Reusable, Ubiquitous, Firewall-friendly, Platform/language independent, etc.

  6. Web services: The 4 W’s (cont’d) • Who • Major solution providers • Microsoft, IBM, Sun, Oracle, HP, BEA, etc. • Consumers/Producers • State Farm, Caterpillar, Amazon, Google, Nordstrom, General Motors, Nasdaq, etc. • List of public Web Services http://www.xmethods.net/ • Who should pay attention to this? • All of us! • When • 2006 to 2008 (fully dynamic search and use) [IDC] • Casual / ad-hoc use of services • New business models possible • Commoditization of software • Pervasive use in nontraditional devices

  7. Service Paradigm in Introductory IS Courses: Why? • Why not! • Prepares students for upper division courses • => prepares students for the IT industry • Allows for “concrete” showcase of concepts • Makes the courses fun!

  8. Integration Scenarios • Method Invocation • Sequential, Iterative, and Decision Structures • Sorting and/or Searching • Miscellaneous Data structures • Use of Different OS • File vs. DBMS • System Concepts • EDI / System Integration

  9. Sequential, Iterative, and Decision Structures • An example • Traditional approach • Same old stuff • Web services approach • A plausible scenario here is to discuss a problem where one wishes to find out the coldest temperature in an area by zip codes at a particular moment in time. Further, the coldest area needs to be plotted on a map.

  10. Sequential, Iterative, and Decision Structures (cont’d) • Web services available (for the task) • http://www.xmethods.net/sd/2001/TemperatureService.wsdl • Returns current temperature for a given U.S. zipcode • http://teachatechie.com/GJTTWebServices/ZipCode.asmx • GetNearbyZipCodes • Returns a DataSet containing maximum of 250 zip codes and radius mileage within a given radius of a zip code • http://staging.mappoint.net/standard-30/mappoint.wsdl • Finding Addresses, Finding Nearby Places, Routing, Map Rendering, etc.

  11. WS-based Solution

  12. WS-based Solution

  13. WS-based Solution (C#) // Get the two input values string homeZip = textBox1.Text; string radius = textBox2.Text; ZipCode zipService = new ZipCode(); // get all the nearBy zips DataSet ds = zipService.GetNearbyZipCodes(homeZip,Convert.ToDecimal(radius)); string[] zipArr = processZip(ds); // get the coldest one and display string coldestZip = findColdestZip(zipArr); textBox3.Text = coldestZip; // plot the map with the coldest zip getMap(coldestZip); 1st Web service

  14. WS-based Solution (C#) // Process the zipcodes (in XML format) and return them as an array of strings string[] processZip (DataSet ds) { string xmlText = ds.GetXml(); XmlDocument doc = new XmlDocument( ); doc.LoadXml( xmlText); XmlNodeList zip = doc.GetElementsByTagName( "ZIP_CODE" ); XmlNodeList distance = doc.GetElementsByTagName( "RADIUS_MILES" ); string[] zipArr = new string[zip.Count]; for ( int i = 0; i < zip.Count; ++i ) { Console.WriteLine( "{0}, {1}", zip[i].InnerText, distance[i].InnerText); zipArr[i] = zip[i].InnerText; } return zipArr; }

  15. WS-based Solution (C#) // Iterate over all the zipcodes and find the temperature each time through. // Record the coldest one along the way. string findColdestZip(string [] zipArr) { TemperatureService tempService = new TemperatureService(); // Get the first zipcode string currentZip = zipArr[0]; float coldestTemp = tempService.getTemp(currentZip); int coldestZip = 0; // Go thru all the other zipcodes and find the coldest temperature for (int i = 1; i < zipArr.Length; i++) { currentZip = zipArr[i]; float temp = tempService.getTemp(currentZip); if (temp < coldestTemp) { coldestTemp = temp; coldestZip = i; } } return zipArr[coldestZip]; } 2nd Web service

  16. WS-based Solution (C#) void getMap(string coldestZip) { string myUserId = “12345"; string mySecurePassword = “secret"; RenderServiceSoap renderService = new RenderServiceSoap(); renderService.Credentials = new System.Net.NetworkCredential(myUserId, mySecurePassword); FindServiceSoap findService = new FindServiceSoap(); findService.Credentials = new System.Net.NetworkCredential(myUserId, mySecurePassword); FindSpecification findSpec = new FindSpecification(); findSpec.DataSourceName = "MapPoint.NA"; findSpec.InputPlace = coldestZip; FindResults foundResults = findService.Find(findSpec); ViewByHeightWidth[] myview = new ViewByHeightWidth[1]; myview[0] = foundResults.Results[0].FoundLocation.BestMapView.ByHeightWidth; MapSpecification mapSpec = new MapSpecification(); mapSpec.DataSourceName = "MapPoint.NA"; mapSpec.Views = myview; mapSpec.Options = new MapOptions(); mapSpec.Options.Format = new ImageFormat(); mapSpec.Options.Format.Height = this.pictureBox1.Size.Height; mapSpec.Options.Format.Width = this.pictureBox1.Size.Width; MapImage[] mapImages = renderService.GetMap(mapSpec); this.pictureBox1.Image = Bitmap.FromStream(new System.IO.MemoryStream(mapImages[0].MimeData.Bits)); } more Web services

  17. What to Put in / Take Out? • This will always be institution-dependent (and controversial!) • For me: • Put In: JUnit Testing, SOA/Web services • Take Out: Some GUI, some Ethics (let me explain ) • Perhaps in the near future, it would be easier to manage this • In terms of approaches and topics (e.g., how OOP replaces structured programming)

  18. Concluding Remarks • Summary • service integration makes sense and doable! • But a lot of work lie ahead (i.e., course materials, textbook, etc.) • Future Work • Google Maps • More in-depth integration at my own School • Advanced Web Development (SOA + Mobile Computing recently approved) • NSF grant application • Stay tuned!

More Related