SERVICE-ORIENTED COMPUTING

Similar documents
Service-Oriented Computing in Recomposable Embedded Systems

DOT NET Syllabus (6 Months)

COURSE 20487B: DEVELOPING WINDOWS AZURE AND WEB SERVICES

Developing Windows Azure and Web Services

"Charting the Course... MOC A Introduction to Web Development with Microsoft Visual Studio Course Summary

Simulation Modelling Practice and Theory

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF INFORMATION TECHNOLOGY. (An NBA Accredited Programme) ACADEMIC YEAR / EVEN SEMESTER

DOT NET SYLLABUS FOR 6 MONTHS

Software Development & Education Center Complete.NET 4.5

MS-20487: Developing Windows Azure and Web Services

10267 Introduction to Web Development with Microsoft Visual Studio 2010

[MS20487]: Developing Windows Azure and Web Services

Apex TG India Pvt. Ltd.

COURSE OUTLINE: OD10267A Introduction to Web Development with Microsoft Visual Studio 2010

Software Development & Education Center Complete.NET 4.5

Introduction to Web Development with Microsoft Visual Studio 2010

Developing Microsoft Azure and Web Services. Course Code: 20487C; Duration: 5 days; Instructor-led

DOT NET COURSE BROCHURE

2310C VB - Developing Web Applications Using Microsoft Visual Studio 2008 Course Number: 2310C Course Length: 5 Days

DE Introduction to Web Development with Microsoft Visual Studio 2010

.Net. Course Content ASP.NET

describe the functions of Windows Communication Foundation describe the features of the Windows Workflow Foundation solution

Microsoft Developing Windows Azure and Web Services

COMP9321 Web Application Engineering

Oracle SOA Suite 10g: Services Orchestration

A Dream of Software Engineers -- Service Orientation and Cloud Computing

ALPHAPRIMETECH 112 New South Road, Hicksville, NY 11801

P a g e 1. Danish Tecnological Institute. Developer Collection Online Course k Developer Collection

Active Endpoints. ActiveVOS Platform Architecture Active Endpoints

Learn Well Technocraft

Programming Web Services in Java

70-487: Developing Windows Azure and Web Services

Advance Dotnet ( 2 Month )

CHAPTER 1: INTRODUCING C# 3

COMP9321 Web Application Engineering

Semantic Web. Semantic Web Services. Morteza Amini. Sharif University of Technology Fall 94-95

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP

"Charting the Course... MOC A Developing Data Access Solutions with Microsoft Visual Studio Course Summary

BPEL Research. Tuomas Piispanen Comarch

Oracle SOA Suite 11g: Build Composite Applications

Developing Microsoft Azure Solutions: Course Agenda

Course Outline. Lesson 2, Azure Portals, describes the two current portals that are available for managing Azure subscriptions and services.

Enterprise JavaBeans 3.1

Semantic Web. Semantic Web Services. Morteza Amini. Sharif University of Technology Spring 90-91

Syllabus of Dont net C#

Introduction to Web Development with Microsoft Visual Studio 2010


Advanced WCF 4.0 .NET. Web Services. Contents for.net Professionals. Learn new and stay updated. Design Patterns, OOPS Principles, WCF, WPF, MVC &LINQ

Microsoft. Microsoft Visual C# Step by Step. John Sharp

Course Outline. Developing Microsoft Azure Solutions Course 20532C: 4 days Instructor Led

DE-2310 Developing Web Applications Using Microsoft Visual Studio 2008 SP1

Course Outline: Course 10267A: Introduction to Web Development with Microsoft Visual Studio 2010 Learning Method: Instructor-led Classroom Learning

Delivery Options: Attend face-to-face in the classroom or via remote-live attendance.

DEVELOPING WEB AZURE AND WEB SERVICES MICROSOFT WINDOWS AZURE

XML Applications. Introduction Jaana Holvikivi 1

ASP.NET Using C# (VS2017)

Variable Scope The Main() Function Struct Functions Overloading Functions Using Delegates Chapter 7: Debugging and Error Handling Debugging in Visual

Dot Net Online Training

Scott Lowden SAP America Technical Solution Architect

.NET Advance Package Syllabus

Introducing SAP Enterprise Services Explorer for Microsoft.NET

Delivery Options: Attend face-to-face in the classroom or remote-live attendance.

C#.NET TRAINING / /

.NET-6Weeks Project Based Training

Microsoft Official Courseware Course Introduction to Web Development with Microsoft Visual Studio

Open Source Library Developer & IT Pro

Using Xml Schemas Effectively In Wsdl Design

IBM. Planning and Installation. IBM Workload Scheduler. Version 9 Release 4

Developing Web Applications Using Microsoft Visual Studio 2008 SP1

Architecting a Network-Centric M&S Application

SUN. Java Platform Enterprise Edition 6 Web Services Developer Certified Professional

Overview SENTINET 3.1

ASP.NET Using C# (VS2013)

Advanced Topics in the Semantic Web: Semantic Services for Business Process Management

COMP6511A: Large-Scale Distributed Systems. Windows Azure. Lin Gu. Hong Kong University of Science and Technology Spring, 2014

10267A CS: Developing Web Applications Using Microsoft Visual Studio 2010

Lecture 15 Service-Oriented Computing and Web Software Development

Microsoft.NET Programming (C#, ASP.NET,ADO.NET, VB.NET, Crystal Report, Sql Server) Goal: Make the learner proficient in the usage of MS Technologies

Call: JSP Spring Hibernate Webservice Course Content:35-40hours Course Outline

INTRODUCTION TO.NET. Domain of.net D.N.A. Architecture One Tier Two Tier Three Tier N-Tier THE COMMON LANGUAGE RUNTIME (C.L.R.)

KINGS COLLEGE OF ENGINEERING 1

Web Services in Cincom VisualWorks. WHITE PAPER Cincom In-depth Analysis and Review

(9A05803) WEB SERVICES (ELECTIVE - III)

Mastering VB.NET using Visual Studio 2010 Course Length: 5 days Price: $2,500

Synchronization of Services between the IBM WebSphere Services Registry & Repository and SAP s Services Registry

Big Java Late Objects

Audience: Experienced application developers or architects responsible for Web applications in a Microsoft environment.

Type of Classes Nested Classes Inner Classes Local and Anonymous Inner Classes

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

Integration Framework. Architecture

Oracle Fusion Middleware

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved.

Lesson 14 SOA with REST (Part I)

<Insert Picture Here> Click to edit Master title style

Developing Microsoft Azure Solutions (MS 20532)

"Charting the Course... Mastering EJB 3.0 Applications. Course Summary

Techno Expert Solutions

Java SE7 Fundamentals

COURSE DELIVERY PLAN - THEORY Page 1 of 6

Java J Course Outline

Transcription:

THIRD EDITION (REVISED PRINTING) SERVICE-ORIENTED COMPUTING AND WEB SOFTWARE INTEGRATION FROM PRINCIPLES TO DEVELOPMENT YINONG CHEN AND WEI-TEK TSAI

ii

Table of Contents Preface (This Edition)...xii Preface (First Edition)...xv Part I Chapter 1 Distributed Service-Oriented Software Development and Web Data Management...1 Introduction to Distributed Service-Oriented Computing...3 1.1 Computer Architecture and Computing Paradigms... 3 1.1.1 Computer Architecture...3 1.1.2 Software Architecture...4 1.1.3 Computing Paradigms...4 1.2 Distributed Computing and Distributed Software Architecture... 7 1.2.1 Distributed Computing...7 1.2.2 N-Tier Architecture...8 1.2.3 Distributed Object Architecture...10 1.3 Service-Oriented Architecture and Computing...12 1.3.1 Basic Concepts and Terminologies...12 1.3.2 Service-Oriented Computing...15 1.3.3 Object-Oriented Computing versus Service-Oriented Computing...17 1.3.4 Service-Oriented System Engineering...19 1.4 Service-Oriented Software Development and Applications...20 1.4.1 Traditional Software Development Processes...20 1.4.2 Service-Oriented Software Development...20 1.4.3 Applications of Service-Oriented Computing...24 1.4.4 Web Application Composition...25 1.5 Enterprise Software Development...26 1.6 Discussions...29 1.7 Exercises and Projects...33 Chapter 2 Distributed Computing with Multithreading...41 2.1 Introduction to C# and.net...41 2.1.1 Getting Started with C# and.net...41 2.1.2 Comparison between C++ and C#...43 2.1.3 Namespaces and the using Directive...44 2.1.4 Class and Object in C#...46 2.1.5 Parameters: Passing by Reference with ref & out...49 2.1.6 Base Class and Base Calling Class Constructor...50 2.1.7 Constructor, Destructor, and Garbage Collection...50 2.1.8 Pointers in C#...50 2.1.9 C# Unified Type System...51 2.2 Memory Management and Garbage Collection...52 2.2.1 Static Variables and Static Methods...53 2.2.2 Runtime Stack for Local Variables...54 2.2.3 Heap for Dynamic Memory Allocation...56 2.2.4 Scope and Garbage Collection...56 iii

2.3 General Issues in Multitasking and Multithreading...57 2.3.1 Basic Requirements...57 2.3.2 Critical Operations and Synchronization...58 2.3.3 Deadlock and Deadlock Resolving...60 2.3.4 Order of Execution...61 2.3.5 Operating System Support for Multitasking and Multithreading...62 2.4 Multithreading in Java...64 2.4.1 Creating and Starting Threads...64 2.4.2 Thread Synchronization...68 2.4.3 Synchronized Method...68 2.4.4 Synchronized Statements...72 2.5 Multithreading in C#...73 2.5.1 Thread Classes and Properties...73 2.5.2 Monitor...74 2.5.3 Reader and Writer Locks...82 2.5.4 Mutexes...86 2.5.5 Semaphore...87 2.5.6 Coordination Event...88 2.6 Exception Handling and Event-Driven Programming...90 2.6.1 Exception Handling...90 2.6.2 Event-Driven Programming...94 2.6.3 Case Study: An Electronic Commerce Application in Event-Driven Approach...99 2.7 Discussions...104 2.8 Exercises and Projects...105 Chapter 3 Essentials in Service-Oriented Software Development... 117 3.1 Service-Oriented Software Development Environments...117 3.1.1 Overview... 117 3.1.2 Windows Communication Foundation... 119 3.1.3 WCF Service Interface: Address, Binding, and Contract... 120 3.2 Service Provider: Creating and Hosting Services...121 3.2.1 Getting Started with Developing WCF Services... 122 3.2.2 Hosting Your Web Services as a Service Provider... 126 3.3 Service Brokers: Publishing and Discovering Services...128 3.3.1 An Ideal Service Broker with All Desired Features... 128 3.3.2 UDDI Service Registry... 131 3.3.3 ebxml Service Registry and Repository... 138 3.3.4 Ad Hoc Registry Lists... 140 3.4 SOAP and HTTP...140 3.4.1 SOAP Format... 141 3.4.2 HTTP... 142 3.4.3 SOAP Over HTTP... 143 3.5 WSDL: Web Services Description Language...144 3.5.1 Elements of WSDL Documents... 145 3.5.2 WSDL Document Example... 146 3.6 Service Requesters: Building Applications Using Services...147 3.6.1 Connecting Endpoint and Proxy... 148 3.6.2 Creating a Windows Forms Application in ASP.Net... 149 3.6.3 Developing a Web Site Application to Consume WCF Services... 153 3.6.4 Consuming Services in Different Platform... 156 iv

3.7 Web Service Testing and Dynamic Service Invocation...157 3.7.1 Get Web Content from URL... 157 3.7.2 Analyze WSDL Document... 158 3.7.3 Test Web Service... 159 3.8 Java-Based Web Service Development...159 3.8.1 Web Application Building Using AJAX programming... 159 3.8.2 Java-Based Web Service Development and Hosting... 161 3.9 Discussions...163 3.10 Exercises and Projects...165 Chapter 4 XML Data Representation and Processing... 171 4.1 XML Fundamentals...171 4.1.1 XML versus HTML... 172 4.1.2 XML Syntax... 173 4.1.3 XML Namespaces... 176 4.2 XML Data Processing...177 4.2.1 DOM: Document Object Model... 178 4.2.2 SAX: Simple API for XML... 180 4.2.3 XML Text Writer... 181 4.2.4 XML Processing in Java... 182 4.3 XPath...184 4.4 XML Type Definition Languages...186 4.4.1 XML Document Type Definition (DTD)... 187 4.4.2 XML Schema... 189 4.4.3 Namespace... 191 4.4.4 XML Validation... 193 4.5 Extensible Stylesheet Language...195 4.6 Other Web Data Formats...200 4.6.1 XHTML... 200 4.6.2 RSS... 202 4.6.3 Atom... 205 4.6.4 Google Protocol Buffers and BigTable... 207 4.7 Discussions...208 4.8 Exercises and Projects...209 Chapter 5 Web Application and Data Management... 215 5.1 Models of Web Applications...215 5.1.1 Pure HTML-based Web Application... 215 5.1.2 Client-Side Scripting... 216 5.1.3 Server-Side Scripting and Code-Behind Page Computing... 217 5.1.4 Client-Side Out-Of-Browser Computing... 218 5.2 Structure of Web Applications...219 5.2.1 Components of Web Applications... 219 5.2.2 Server Controls... 221 5.2.3 User Controls... 225 5.2.4 Web Application Configuration... 227 5.2.5 Global Application Class... 230 5.2.6 Dynamic Link Library... 231 v

5.3 State Management...232 5.3.1 Overview of State Management Techniques... 232 5.3.2 View State... 233 5.3.3 Session State... 234 5.3.4 Session State and Cookies... 239 5.3.5 Application State and Service Execution Model... 240 5.4 Save User Data to Server File System...240 5.4.1 File System and Standard File Operations... 241 5.4.2 Reading and Writing XML Files... 241 5.5 Caching...246 5.5.1 Output Caching... 246 5.5.2 Fragment Caching... 248 5.5.3 Data Caching... 248 5.6 Dynamic Graphics Design and Generation...256 5.6.1 Dynamic Graphics... 256 5.6.2 Getting Started with Dynamic Graphics Generation... 257 5.6.3 Generating Dynamic Graphics in User Control... 259 5.7 Architecture Design...264 5.7.1 ASP.Net Forms-Centric Architecture... 264 5.7.2 ASP.Net MVC Architecture... 265 5.8 Discussions...266 5.9 Exercises and Projects...267 Chapter 6 Dependability of Service-Oriented Software... 273 6.1 Basic Concepts...273 6.1.1 Dependability... 273 6.1.2 Dependability Attributes and Quality of Service... 274 6.1.3 Security Issues in SOA Software... 275 6.2 Access Control in Web Applications...277 6.2.1 IIS and Windows-Based Security Mechanisms... 277 6.2.2 Forms-Based Security... 278 6.2.3 User Registration and Account Management... 283 6.3 Encryption and Decryption...285 6.3.1 Developing Encryption and Decryption Service in WCF... 286 6.3.2 WCF Service Client... 288 6.3.3 Secure Sockets Layer Cryptographic Protocols... 289 6.4 Dependable Computing in Windows Communication Foundation...289 6.4.1 WS-Security... 290 6.4.2 WS-Reliability... 291 6.4.3 Transactions... 292 6.5 Discussions...294 6.6 Exercises and Projects...295 Part II Advanced Service-Oriented Computing and System Integration... 299 Chapter 7 Advanced Services and Architecture-Driven Application Development... 301 7.1 Self-Hosting Services...301 7.1.1 Developing Self-Hosting WCF Services... 301 7.1.2 Developing Clients to Consume Self-Hosting Services... 305 vi

7.2 Advanced WCF Services...310 7.2.1 Advanced Communication Models... 310 7.2.2 Advanced Bindings... 312 7.2.3 Service Behavior and State Management... 314 7.3 REST Concept and RESTful Services...317 7.3.1 REST Concept and REST Architecture... 317 7.3.2 RESTful Services... 317 7.3.3 Two Ways of Developing RESTful Service... 322 7.3.4 Developing an Image Verifier in RESTful Service... 325 7.3.5 Consuming RESTful Service... 328 7.4 Workflow Foundation...330 7.4.1 Architecture and Components... 330 7.4.2 Creating a WF Flowchart Application... 332 7.4.3 Creating Custom Code Activity for Workflow Application... 334 7.4.4 Implementing Finite State Machine in Workflow... 336 7.4.5 Creating Workflow Service... 338 7.5 Discussions...346 7.6 Exercises and Projects...347 Chapter 8 Enterprise Software Development and Integration... 353 8.1 Overview of Composition Languages...353 8.2 BPEL...356 8.2.1 BPEL Activities and Constructs... 356 8.2.2 BPEL Process... 356 8.2.3 WSDL Interface Definition of BPEL Process... 359 8.2.4 BPEL Process... 361 8.2.5 An Example Invoking Real Web Services... 363 8.3 Stateless versus Stateful Web Services...370 8.3.1 BizTalk s Singleton Object Approach... 371 8.3.2 BPEL s Correlation Approach... 371 8.4 Frameworks Supporting BPEL Composition...374 8.4.1 Oracle SOA Suite... 374 8.4.2 ActiveBPEL... 375 8.4.3 BizTalk... 376 8.5 Message-Based Integration...376 8.5.1 Java Message Service... 378 8.5.2 Microsoft Message Queue... 379 8.5.3 Database-Supported Messaging... 380 8.5.4 Enterprise Service Bus... 382 8.6 Mashup for Web Application Integration...383 8.7 Other Composition Languages...386 8.7.1 OWL-S... 386 8.7.2 SCA/SDO... 387 8.7.3 WSFL: Web Services Flow Language... 388 8.8 Discussions...390 8.9 Exercises and Projects...391 Chapter 9 Internet of Things and Robot as a Service... 397 vii

9.1 Internet of Things...397 9.2 Service-Oriented Robotics Computing...399 9.3 Event-Driven Robotics Applications...400 9.4 Robot as a Service...402 9.4.1 Robot as a Service Design... 403 9.4.2 Robot as a Service Implementation... 405 9.5 Robotics Developer Studio and Visual Programming Language...406 9.6 Simulating an ALU Using VPL...410 9.6.1 Logic Design of an Arithmetic and Logic Unit... 410 9.6.2 Creating VPL Activities... 410 9.6.3 VPL Diagram and Testing... 412 9.7 Finite State Machine and VPL Diagram...415 9.8 Developing Service-Oriented Robotics Applications...419 9.8.1 Service Repository in Robotics Developer Studio... 419 9.8.2 Sensor Service... 420 9.8.3 Maze Navigation Algorithms... 421 9.8.4 Implementing a Heuristic Maze Navigation Algorithm... 421 9.8.5 Implementing a Wall-Following Maze Navigation Algorithm... 428 9.9 Mapping VPL to Other Platforms...430 9.10 Discussions...432 9.11 Exercises and Projects...433 Chapter 10 Interfacing Service-Oriented Software with Databases... 437 10.1 Databases in Service-Oriented Software...437 10.2 Relational Databases in Service-Oriented Software...438 10.2.1 Interface between Database and Software... 438 10.2.2 SQL Database in ADO.Net... 440 10.2.3 DataAdapter and DataSet in ADO.Net... 446 10.2.4 WCF RIA Service... 448 10.3 XML-Based Database and Query Language XQuery...450 10.3.1 Expressing Queries... 450 10.3.2 Transforming XML Document... 452 10.3.3 XQuery Discussions... 454 10.4 LINQ, Language Integrated Query...454 10.4.1 What is the Purpose of LINQ?... 454 10.4.2 Lambda Expressions... 455 10.4.3 LINQ to Object... 457 10.4.4 LINQ to SQL... 459 10.4.5 LINQ to XML... 462 10.5 Discussions...465 10.6 Exercises and Projects...467 Chapter 11 Ontology and Semantic Web... 471 11.1 Semantic Web and Ontology...471 11.2 Ontology Languages RDF and RDF Schema...472 11.2.1 RDF... 472 viii

11.2.2 RDF Schema... 474 11.2.3 Reasoning and Verification in Ontology... 480 11.3 OWL: Web Ontology Language...481 11.3.1 From RDF to OWL... 481 11.3.2 The OWL Class and Property... 482 11.3.3 Boolean Combinations of Classes... 483 11.3.4 Property Restrictions... 483 11.3.5 Synopsis of OWL Lite, DL, and Full... 484 11.4 Linked Data...485 11.5 Ontology Development Environments...486 11.6 Discussions...488 11.7 Exercises and Projects...489 Chapter 12 Service-Oriented Application Architecture... 493 12.1 Introduction...493 12.2 Application Architectures...495 12.2.1 Dynamic Architecture via Dynamic Composition... 497 12.2.2 Dynamic Re-Composition... 498 12.2.3 Lifecycle Management Embedded in Operation Infrastructure... 498 12.3 Examples of Service-Oriented Application Architectures...500 12.3.1 IBM WebSphere Architecture... 500 12.3.2 Enterprise Service Bus... 502 12.3.3 SAP NetWeaver... 503 12.3.4 User-Centric Service Oriented Architecture... 504 12.4 Discussions...505 12.5 Exercises and Projects...507 Chapter 13 A Mini Walkthrough of Service-Oriented Software Development... 511 13.1 Introduction...511 13.2 Sample Domain Model...515 13.2.1 Ontology Systems... 515 13.2.2 Published Services... 519 13.2.3 Published Workflows... 522 13.2.4 Shipping Domain Collaboration Templates... 523 13.3 Specific Requirements for a Project...525 13.4 A Worked Example...526 13.5 Discussions...534 13.6 Exercises and Projects...537 Chapter 14 Cloud Computing and Software as a Service... 539 14.1 Introduction...539 14.2 SaaS Maturity Model...542 14.3 Database Design for Multi-Tenancy SaaS...544 14.3.1 Resource Isolation Patterns... 546 14.3.2 Security... 549 ix

14.3.3 Scalability... 551 14.4 Google App Engine...551 14.4.1 Services... 552 14.4.2 Datastore... 553 14.4.3 Hints for Developing Scalable Applications... 553 14.4.4 Development and Tooling... 554 14.4.5 Other Constraints... 554 14.5 Google File System...554 14.5.1 GFS System Structure and Operations... 555 14.5.2 Lessons Learned from Developing GFS... 556 14.5.3 Other Similar Projects... 557 14.6 BigTable...557 14.6.1 Major Components... 558 14.6.2 BigTable Overview... 558 14.7 MapReduce...564 14.7.1 MapReduce Programming Model... 564 14.7.2 Example... 565 14.7.3 Applications... 565 14.7.4 Execution Overview... 566 14.7.5 Task Granularity and Fault-Tolerant Computing... 566 14.8 Hadoop...567 14.8.1 Hadoop Ecosystem... 567 14.8.2 Hadoop HDFS & MapReduce... 568 14.8.3 Example... 568 14.9 Microsoft Azure...570 14.9.1 Azure Architecture... 570 14.9.2 Azure Elements... 571 14.9.3 Creating Your First Application Azure Cloud... 573 14.10 Salesforce.com...573 14.11 Prioritization and Scheduling...579 14.12 Cloud Computing Algorithms...585 14.13 Applications of Data Differencer...595 14.14 Discussions...596 14.15 Exercises and Projects...597 Part III Appendices: Tutorials on Service-Oriented Software Development... 601 Appendix A Web Application Development... 603 A.1 Design of Graphical User Interface...603 A.2 Discovering Web Services Available Online...608 A.3 Access Web Services in Your Program: Cinema Service...610 A.4 Access Web services in Your Program: Weather Forecasting Service...614 A.5 Access Web Services in Your Program: USZip Service...616 A.6 Creating ASP.Net Web Services...617 A.7 Exercises and Projects...621 x

Appendix B Service-Oriented Robotics Applications... 625 B.1 Getting Started with Robotics Developer Studio and VPL...625 B.2 Programming Conditions in VPL...627 B.3 Programming Loop in VPL...628 B.4 Programming a Robot in a Simulation Environment...628 B.5 Deploying the Program to a Real Robot...633 B.6 Programming the Arm of the Robot...634 B.7 Autonomous Robot in an Obstacle Course...636 B.8 Exercises and Projects...641 Appendix C ASU Repository of Services and Applications... 643 References... 649 Index... 657 xi