<?xml version='1.0' encoding='UTF-8' ?>
<html xmlns='http://www.w3.org/1999/xhtml'><head><title>SylViA || Fall 2005 || Web Services: Concepts, Design and Implementation Complete Syllabus</title><link href='http://rosetta.sims.berkeley.edu:8085/sylvia/css/site.css' type='text/css' rel='stylesheet'/><link href='http://rosetta.sims.berkeley.edu:8085/sylvia/img/favicon.ico' rel='shortcut icon'/><link href='http://rosetta.sims.berkeley.edu:8085/sylvia/s05/rss/290-3.rss' title='SylViA' type='application/rss+xml' rel='alternate'/><script language='JavaScript'> 
          function helpPop(){
                    OpenWin = this.open("http://rosetta.sims.berkeley.edu:8085/sylvia/html/help.html", "Help",
          "toolbar=no,menubar=no,location=yes,scrollbars=yes,resizable=yes,width=400,height=600"); 
          }
          function helpViewsPop(){
                    OpenWin = this.open("http://rosetta.sims.berkeley.edu:8085/sylvia/html/help.html#views", "Help",
          "toolbar=no,menubar=no,location=yes,scrollbars=yes,resizable=yes,width=400,height=600"); 
          }
          function IndividualSub() { 
          OpenWin = this.open("http://rosetta.sims.berkeley.edu:8085/sylvia/f05/subscribe/290-3.rss", "Subscription",
          "toolbar=no,menubar=no,location=yes,scrollbars=yes,resizable=yes,width=500,height=450"); }
          function CombinationSub() {
            OpenWin = this.open("http://rosetta.sims.berkeley.edu:8085/sylvia/f05/subscribe/.....rss", "Subscription", 
            "toolbar=no,menubar=no,location=yes,scrollbars=yes,resizable=yes,width=500,height=450");
        }
</script></head><body><table class='layout'><tr class='layout'><td class='layout sidenav'><div id='sidenav'><a href='/sylvia/index'><div id='header'>   </div></a><div id='sidenavlinks'><table class='sidenavlinkssection'><tr><td><h1>Course Email</h1><div><p><a href='mailto:ablum@good.com'>Lect Blum</a></p></div><h1>Course Link</h1><div><p><a href='http://www.sims.berkeley.edu/academics/courses/is290-3/f05/ '>Course Website</a></p></div></td></tr><tr><td class='spacer'/></tr><tr><td><h1>Individual Syllabi</h1><div><form action='/sylvia/f05/view/' enctype='text/plain' method='get'><p><select name='course'><option value=''>Syllabus</option><option value='202'>202</option><option value='290-3' selected='selected'>290-3</option><option value='290A-1'>290A-1</option><option value='290A-2'>290A-2</option><option value='214'>214</option><option value='296A-2'>296A-2</option></select></p><p><select name='view'><option value='complete' selected='selected'>Views</option><option value='quick'>Quick View</option><option value='detailed'>Detailed View</option><option value='complete' selected='selected'>Complete View</option><option value='asn'>Deliverables</option><option value='admin'>Administrivia</option></select> <a href='javascript:helpViewsPop();'><img class='help' src='http://rosetta.sims.berkeley.edu:8085/sylvia/img/help.gif'/></a></p><p class='input'><input value='Go!' type='submit'/></p></form></div></td></tr><tr><td class='spacer'/></tr><tr><td><h1>Combined Syllabi</h1><div><form action='/sylvia/f05/multi/' enctype='text/plain' name='SylSelect' method='get'><p><select name='1' onRelease='viewListChange();'><option value=''>Syllabus 1</option><option value='202'>202</option><option value='290-3'>290-3</option><option value='290A-1'>290A-1</option><option value='290A-2'>290A-2</option><option value='214'>214</option><option value='296A-2'>296A-2</option></select></p><p><select name='2'><option value=''>Syllabus 2</option><option value='202'>202</option><option value='290-3'>290-3</option><option value='290A-1'>290A-1</option><option value='290A-2'>290A-2</option><option value='214'>214</option><option value='296A-2'>296A-2</option></select></p><p><select name='3'><option value=''>Syllabus 3</option><option value='202'>202</option><option value='290-3'>290-3</option><option value='290A-1'>290A-1</option><option value='290A-2'>290A-2</option><option value='214'>214</option><option value='296A-2'>296A-2</option></select></p><p><select name='4'><option value=''>Syllabus 4</option><option value='202'>202</option><option value='290-3'>290-3</option><option value='290A-1'>290A-1</option><option value='290A-2'>290A-2</option><option value='214'>214</option><option value='296A-2'>296A-2</option></select></p><p><select name='5'><option value=''>Syllabus 5</option><option value='202'>202</option><option value='290-3'>290-3</option><option value='290A-1'>290A-1</option><option value='290A-2'>290A-2</option><option value='214'>214</option><option value='296A-2'>296A-2</option></select></p><p><select name='view'><option value='detailed'>Views</option><option value='quick'>Quick View</option><option value='detailed'>Detailed View</option><option value='asn'>Deliverables</option></select> <a href='javascript:helpViewsPop();'><img class='help' src='http://rosetta.sims.berkeley.edu:8085/sylvia/img/help.gif'/></a></p><p class='input'><input value='Go!' type='submit'/></p></form></div></td></tr><tr><td class='spacer'/></tr><tr><td><h1><span class='logo'>SylViA</span> Links</h1><div><p><a href='/sylvia/f05/index'>Fall 2005 home</a></p><p><a href='http://rosetta.sims.berkeley.edu:8085/sylvia/index'><span class='logo'>SylViA</span> home</a></p><p><a href='http://www.ischool.berkeley.edu'>iSchool home</a></p><p><a href='mailto:sylvia@sims.berkeley.edu?subject=SylViA'><span class='logo'>SylViA</span> Contact </a></p><p><a href='http://groups.sims.berkeley.edu/sylvia'>the <span class='logo'>SylViA</span> project</a></p><p><a href='javascript:helpPop();'>Help <img class='help' src='http://rosetta.sims.berkeley.edu:8085/sylvia/img/help.gif'/></a></p></div></td></tr></table></div></div></td><td class='layout'><div class='main' id='complete'><div class='course-title'><p class='course-title'>IS 290-3 : Web Services: Concepts, Design and Implementation</p><div id='breadcrumb'><p><a href='http://rosetta.sims.berkeley.edu:8085/sylvia/f05/'>Fall 2005</a>  <img src='http://rosetta.sims.berkeley.edu:8085/sylvia/img/bullet_right_gree.gif'/>  <a href='http://rosetta.sims.berkeley.edu:8085/sylvia/f05/view/290-3.detailed'>IS 290-3</a>  <img src='http://rosetta.sims.berkeley.edu:8085/sylvia/img/bullet_right_gree.gif'/>  Complete Syllabus</p></div></div><div id='content'><div id='alt-nav'><p><span id='print'><img src='http://rosetta.sims.berkeley.edu:8085/sylvia/img/bullet_right_oran.gif'/><a href='http://rosetta.sims.berkeley.edu:8085/sylvia/f05/view/print/290-3.complete'>Printable Version</a></span></p></div><div class='complete-section'><p class='section-title'>Administrivia</p><div class='section'><div class='subsection'><div class='class'><p class='subsection-title'>Teaching Team<a name='teachingTeam'> </a></p><div class='subsection'><p class='heading'>Lecturer Adam Blum</p><div class='subsection'><p>Email: <a href='mailto:ablum@good.com'>ablum@good.com</a></p><p>Mobile number: 408-396-5490</p><p>Office number: 408-327-6230</p></div><div class='subsection'><p>Office Hours: Thursday 4:00pm-5:00pm South Hall 314 </p></div></div></div></div><div class='subsection'><div class='class'><p class='subsection-title'>Course Description</p><div class='subsection'><p><a href='http://www.sims.berkeley.edu/academics/courses/is290/WSCDI.php'>Link to course description</a></p> 
        <p>Web services enable computer programs to communicate with each other across application, 
operating system, hardware and organizational boundaries via XML documents and open standard Internet protocols. 
This course covers the basic standards that enable web services: SOAP, WSDL, and UDDI. 
It describes proper design of web services and applications to use them within a service-oriented architecture. 
Programming techniques for consumption and implementation of web services are demonstrated. The roadmap and motivation of future 
web services standards is laid out. Over the course of the semester students will build a significant web service 
project and incrementally enhance it as new techniques and web service standards are learned. The course
will be graded on the basis of this project as well as midterm and final exams.</p>
	</div></div></div><div class='subsection'><div class='class'><p class='subsection-title'>Course Information</p><div class='subsection'><p><span class='heading'><n0:name xmlns:n0='urn:publicid:IDN+www.sims.berkeley.edu:schema:syllabusapp:syllabus:200404:en'>Web Services: Concepts, Design and Implementation</n0:name></span> INFOSYS 290-3</p><p><span class='heading'>Course Dates: </span>September  1 to December  15, 2005</p><p><span class='heading'>Lecture Schedule: </span>Thursday 5:00pm-8:00pm in 202 South Hall</p><p><span class='heading'>Units: </span>3</p><p><span class='heading'>Grading Option: </span>Letter Grade only</p></div></div></div></div></div><div class='complete-section'><p class='section-title'>Course Work</p><div class='section'><div class='class'><p class='subsection-title'>December  1 : </p><div class='content'><div class='subsection'><p><span class='intro'>Course Project due<a name='2004-12-01-CourseProject'> </a></span></p><div class='subsection'><p/><p><a href='http://rosetta.sims.berkeley.edu:8085/sylvia/f05/view/290-3.asn#2004-12-01-CourseProject'>Assignment details</a></p></div></div></div></div><div class='class'><p class='subsection-title'>September  1 : Thursday</p><div class='content'><div class='subsection'><p><span class='intro'>Introduction<a name='2005-09-01-Introduction'> </a></span></p><div class='subsection'><p>
				<p>
				This discusses the overall roadmap of topics for the course.  Describes what web services are and what they are for.   Provides a brief introduction to SOAP and WSDL.  It also introduces the concept of the projects and their basic structure. 
				</p>
				</p><p><span class='class-section'>Lecturer: </span>Adam Blum</p><p><span class='class-section'>Resources</span></p><div class='subsection'>
                                <p><a href='http://adamblum.com/wscourse/INFOSYS290-Section3-Lecture1-Fall2005.ppt'>Lecture 1 Slides</a></p>
                                </div></div></div></div></div><div class='class'><p class='subsection-title'>September  8 : Thursday</p><div class='content'><div class='subsection'><p><span class='intro'>SOAP and WSDL<a name='2005-09-08-SOAPandWSDL'> </a></span></p><div class='subsection'><p>
				<p>
				Detailed discussion of the SOAP and WSDL specifications.  Includes several examples of each.  Also demonstrates the Google and Amazon web services APIs and describes their WSDL definitions
				</p>
				</p><p><span class='class-section'>Lecturer: </span>Adam Blum</p><p><span class='class-section'>Resources</span></p><div class='subsection'>
                                <p><a href='http://adamblum.com/wscourse/INFOSYS290-Section3-Lecture2-Fall2005.ppt'>Lecture 2 Slides</a></p>
                                </div></div></div><div class='subsection'><p><span class='intro'>Course Project assigned<a name='2005-09-08-CourseProject'> </a></span></p><div class='subsection'><p>Due on December  1</p><p><a href='http://rosetta.sims.berkeley.edu:8085/sylvia/f05/view/290-3.asn#2005-09-08-CourseProject'>Assignment details</a></p></div></div></div></div><div class='class'><p class='subsection-title'>September  15 : Thursday</p><div class='content'><div class='subsection'><p><span class='intro'>Consuming Web Services<a name='2005-09-15-ConsumingWebServices'> </a></span></p><div class='subsection'><p>
				<p>
				This lecture covers how to consume web services from your web or desktop applications.
				It uses examples of consuming web services from MindReef SOAPScope, AboveAll Studio and Visual Studio .NET.
				</p>

				</p><p><span class='class-section'>Lecturer: </span>Adam Blum</p><p><span class='class-section'>Resources</span></p><div class='subsection'>
					<p><a href='http://www.sims.berkeley.edu/academics/courses/is290-3/f05/samples/blogs'>Blogs Web Service</a></p>
					<p><a href='http://www.sims.berkeley.edu/academics/courses/is290-3/f05/samples/PokerAdvisor'>Poker Advisor - Samples Web Services Client</a></p>


                </div></div></div></div></div><div class='class'><p class='subsection-title'>September  22 : Thursday</p><div class='content'><div class='subsection'><p><span class='intro'>Creating Web Services<a name='2005-09-22-CreatingWebServices'> </a></span></p><div class='subsection'><p>
This lecture describes how to create web services.  Will focus on use of Microsoft Visual 
Studio .NET for this purpose.  
				</p><p><span class='class-section'>Lecturer: </span>Adam Blum</p><p><span class='class-section'>Resources</span></p><div class='subsection'>
                                <p><a href='http://www.sims.berkeley.edu/academics/courses/is290-3/f05/INFOSYS290-Section3-Lecture4-Fall2005.ppt'>Lecture 4 Slides</a></p>

					<p><a href='http://www.sims.berkeley.edu/academics/courses/is290-3/f05/samples/PokerOdds'>Poker Odds - Sample of Computational and HTML Scraping Services</a></p>

					<p><a href='http://www.sims.berkeley.edu/academics/courses/is290-3/f05/samples/Blogs'>Blogs - Sample of XML Wrapping Web Service</a></p>


					<p><a href='http://www.sims.berkeley.edu/academics/courses/is290-3/f05/samples/SportsBetLines'>SportsBetLines - Sample of XML Wrapping Web Service using XSD Utility</a></p>
					

				</div></div></div></div></div><div class='class'><p class='subsection-title'>September  29 : Thursday</p><div class='content'><div class='subsection'><p><span class='intro'>Register and Discover: Service Registries and UDDI<a name='2005-09-29-RegisterandDiscover:ServiceRegistriesandUDDI'> </a></span></p><div class='subsection'><p>
					<p>
						IBM, Microsoft, and Systinet UDDI Registries.  How do you search them for web
						services?  How do you register web services in them?
					</p>
				</p><p><span class='class-section'>Lecturer: </span></p><p><span class='class-section'>Resources</span></p><div class='subsection'>
					<p><a href='http://adamblum.com/wscourse/INFOSYS290-Section3-Lecture5-Fall2005.ppt'>Lecture 5 Slides</a></p>
					<p><a href='http://www.sims.berkeley.edu/academics/courses/is290-3/f05/samples/PublishToUDDI'>Sample UDDI Publish Application</a></p>
					<p><a href='http://webservices.sys-con.com/read/45102.htm'>Article: Web Services Journal - UDDI as an Extended Web Services Registry</a></p>
				</div></div></div></div></div><div class='class'><p class='subsection-title'>October  6 : Thursday</p><div class='content'><div class='subsection'><p><span class='intro'>Topic Review and Mobile Web Services<a name='2005-10-06-TopicReviewandMobileWebServices'> </a></span></p><div class='subsection'><p>
					<p>
					I distributed Sprint 6700 Windows Mobile 5 devices to all project teams before class.
					
					Then I lectured on remaining material in UDDI lecture and about asynchronous web services.
					
					Finally I showed building a sample mobile app to consume web services from a Windows Mobile 5 device.
				
					</p>
				</p><p><span class='class-section'>Lecturer: </span>Adam Blum</p><p><span class='class-section'>Resources</span></p><div class='subsection'>
					<p><a href='http://www.sims.berkeley.edu/academics/courses/is290-3/f05/samples/EmailValidator'>Email Validator - Sample of Asynch Web Services Client</a></p>
				</div></div></div></div></div><div class='class'><p class='subsection-title'>October  13 : Thursday</p><div class='content'><div class='subsection'><p><span class='intro'>GoodAccess Web Services<a name='2005-10-13-GoodAccessWebServices'> </a></span></p><div class='subsection'><p>
					<p>
					Describes Good Technology's GAWS product for synchronizing web service
					information to mobile devices.
					</p>
				</p><p><span class='class-section'>Lecturer: </span>Adam Blum</p><p><span class='class-section'>Resources</span></p><div class='subsection'>
                                <p><a href='http://adamblum.com/wscourse/INFOSYS290-Section3-Lecture7-Fall2005.ppt'>Lecture 7 Slides</a></p>
                                </div></div></div></div></div><div class='class'><p class='subsection-title'>October  20 : Thursday</p><div class='content'><div class='subsection'><p><span class='intro'>Midterm Exam<a name='2005-10-20-MidtermExam'> </a></span></p><div class='subsection'><p>	
					<p>
					Covers lectures 1 through 6.  The emphasis is on the SOAP, WSDL And UDDI standards.
					
					Specific topics included will be many of the following.  All topics covered in class
					however are fair game.
					<ul>
						<li>motivation behind web services</li>
						<li>definition of a web service</li>
						<li>characteristics of a good web service</li>
						<li>identification of components of a web service architecture in a diagram</li>
						<li>SOAP message structure</li>
						<li>identifying purpose of elements in SOAP envelope example</li>
						<li>design purpose between differentiating between header and body elements</li>
						<li>description of purpose of locating elements in specific places in SOAP</li>
						<li>purpose of SOAP faults</li>
						<li>meaning of SOAP mustUnderstand</li>
						<li>WSDL architecture components</li>
						<li>purpose of various parts in specific WSDL examples</li>
						<li>basic steps in creating and exposing a .NET web service</li>
						<li>describe methods of testing web services</li>
						<li>list potential web services uses including some specific example web services</li>
						<li>discuss characteristics of informational web services versus transactional web services</li>
						<li>differences of SOAP versus other distributed system capabilities</li>
						<li>good and bad parts of CORBA, DCOM and Java RMI</li>
						<li>why use asynchronous web services</li>
						<li>how does .NET expose asynch web services</li>
						<li>three basic methods of invoking async web services</li>
						<li>.NET methods of blocking for web service invocation</li>
						<li>motivation for a web services registry</li>
						<li>basic abstractions in UDDI standard</li>
						<li>meaning of components in XML data model in UDDI</li>
						<li>the two types of tModels and the purposes</li>
						<li>meaning of specific UDDI API calls</li>
						<li>how do UDDI abstractions map to WSDL abstractions</li>
						<li>standard methods to populate UDDI registries with WSDL information</li>
						<li>methods of extending UDDI registries with information on services and their endpoints</li>
					</ul>
					
					</p>
				</p><p><span class='class-section'>Lecturer: </span>Adam Blum</p><p><span class='class-section'>Resources</span></p><div class='subsection'>
                    <p><a href='http://adamblum.com/wscourse/WebServicesMidtermExam.doc'>Web Services Midterm Exam</a></p>
                  </div></div></div></div></div><div class='class'><p class='subsection-title'>October  27 : Thursday</p><div class='content'><div class='subsection'><p><span class='intro'>Web Services Metadata Repositories and Composite App Development Tools<a name='2005-10-27-WebServicesMetadataRepositoriesandCompositeAppDevelopmentTools'> </a></span></p><div class='subsection'><p>
					<p>
					Guest lecture from Roger Sippl, Chairman of AboveAll Software
					</p>
				</p><p><span class='class-section'>Lecturer: </span>Adam Blum</p></div></div></div></div><div class='class'><p class='subsection-title'>November  3 : Thursday</p><div class='content'><div class='subsection'><p><span class='intro'>Web Services Security<a name='2005-11-03-WebServicesSecurity'> </a></span></p><div class='subsection'><p><p>
                                This class shows how to create web services with:
				- confidentiality - encryption via WS-Security and XML Encryption 
				- integrity - signing via WS-Security and XML Signature
				- compliance with security policies - negotiated via WS-Policy and WS-SecurityPolicy
				We also describe methods of securing your web service assuming that you do not have the ability to use a WS-Security supporting SOAP implementation.
				</p></p><p><span class='class-section'>Lecturer: </span>Adam Blum</p><p><span class='class-section'>Resources</span></p><div class='subsection'>
                                <p><a href='http://adamblum.com/wscourse/INFOSYS290-Section3-Lecture10-Fall2005.ppt'>Lecture 10 Slides</a></p>
                                </div></div></div></div></div><div class='class'><p class='subsection-title'>November  10 : Thursday</p><div class='content'><div class='subsection'><p><span class='intro'>The Enterprise Web Services Service Bus:Routable, Reliable and Publish/Subscribe Web Services<a name='2005-11-10-TheEnterpriseWebServicesServiceBus:Routable,ReliableandPublish/SubscribeWebServices'> </a></span></p><div class='subsection'><p><p>Covers recently emerging standards: WS-Addressing, WS-ReliableMessaging and WS-Eventing
				and how they facilitate a new class of multiparty ad hoc enterprise integration.</p></p><p><span class='class-section'>Lecturer: </span>Adam Blum</p><p><span class='class-section'>Resources</span></p><div class='subsection'>
                              <p><a href='http://adamblum.com/wscourse/INFOSYS290-Section3-Lecture11-Fall2005.ppt'>Lecture 11 Slides</a></p>
	                        <p><a href='http://adamblum.com/CBRSubscribe.zip'>Sample Content-Based Routing Client Using WS-Eventing</a></p>
                         </div></div></div></div></div><div class='class'><p class='subsection-title'>November  17 : Thursday</p><div class='content'><div class='subsection'><p><span class='intro'>SOA Best Practices<a name='2005-11-17-SOABestPractices'> </a></span></p><div class='subsection'><p>
				<p>
				What is a service-oriented architecture, and what are best practices
				for deploying a service-oriented architecture around web services 
				across and organization
				</p>
				</p><p><span class='class-section'>Lecturer: </span>Adam Blum</p><p><span class='class-section'>Resources</span></p><div class='subsection'>
                              <p><a href='http://adamblum.com/wscourse/INFOSYS290-Section3-Lecture12-Fall2005.ppt'>Lecture 12 Slides</a></p>
                       </div></div></div></div></div><div class='class'><p class='subsection-title'>November  24 : Thursday : Thanksgiving</p><div class='content'><div class='subsection'><p><span class='intro'>Holiday: Thanksgiving<a name='2005-11-24-Thanksgiving'> </a></span></p><div class='subsection'><p><p>Use the time to work on your projects!
				</p></p><p><span class='class-section'>Lecturer: </span>Adam Blum</p></div></div></div></div><div class='class'><p class='subsection-title'>December  1 : Thursday</p><div class='content'><div class='subsection'><p><span class='intro'>WS-Policy and WS-SecurityPolicy<a name='2005-12-01-WS-PolicyandWS-SecurityPolicy'> </a></span></p><div class='subsection'><p><p>Discusses WS-Policy, WS-SecurityPolicy and WS-Trust</p></p><p><span class='class-section'>Lecturer: </span>Adam Blum</p><p><span class='class-section'>Resources</span></p><div class='subsection'>
          <p><a href='http://adamblum.com/wscourse/INFOSYS290-Section3-Lecture14-Fall2005.ppt'>Lecture 14 Slides</a></p>
        </div></div></div></div></div><div class='class'><p class='subsection-title'>December  8 : Thursday</p><div class='content'><div class='subsection'><p><span class='intro'>Presentations<a name='2005-12-08-Presentations'> </a></span></p><div class='subsection'><p>
					<p>Student presentations: 30 minutes per presentation</p>
				</p><p><span class='class-section'>Lecturer: </span>Adam Blum</p></div></div></div></div><div class='class'><p class='subsection-title'>December  15 : Thursday</p><div class='content'><div class='subsection'><p><span class='intro'>Final Exam<a name='2005-12-15-FinalExam'> </a></span></p><div class='subsection'><p><p>
			Covers metadata repositories, WS-Security, WS-Eventing, WS-Addressing.
			</p></p><p><span class='class-section'>Lecturer: </span>Adam Blum</p></div></div></div></div></div></div><p class='alternate'>last updated on 2005-09-03 by Adam Blum</p></div></div></td></tr></table></body></html>

