cis*6650.01 service-oriented computing

52
Qusay H. Qusay H. Mahmoud Mahmoud CIS*6650.01 CIS*6650.01 1 CIS*6650.01 CIS*6650.01 Service-Oriented Service-Oriented Computing Computing Course Information & Overview Course Information & Overview Qusay H. Mahmoud, Ph.D. Qusay H. Mahmoud, Ph.D. [email protected] [email protected]

Upload: ariel-doyle

Post on 30-Dec-2015

25 views

Category:

Documents


0 download

DESCRIPTION

CIS*6650.01 Service-Oriented Computing. Course Information & Overview Qusay H. Mahmoud, Ph.D. [email protected]. Course Information. Course URL : http://www.cis.uoguelph.ca/~qmahmoud/teaching.html Lectures: Tue 1:00 – 4:00pm (10-min break every 50 minutes) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 11

CIS*6650.01CIS*6650.01Service-Oriented ComputingService-Oriented Computing

Course Information & OverviewCourse Information & Overview

Qusay H. Mahmoud, Ph.D.Qusay H. Mahmoud, Ph.D.

[email protected]@uoguelph.ca

Page 2: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 22

Course InformationCourse InformationCourse URL : Course URL : http://www.cis.uoguelph.ca/~qmahmoud/teaching.htmlhttp://www.cis.uoguelph.ca/~qmahmoud/teaching.html

Lectures: Tue 1:00 – 4:00pm (10-min Lectures: Tue 1:00 – 4:00pm (10-min break every 50 minutes)break every 50 minutes)Book: No single book covers all topicsBook: No single book covers all topics– On reserve at McLaughlin library (2-hr in-On reserve at McLaughlin library (2-hr in-

library use): Service-Oriented Computing: library use): Service-Oriented Computing: Semantics, Processes, AgentsSemantics, Processes, Agents

– Check course homepage for online resourcesCheck course homepage for online resources

Page 3: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 33

Grading SchemeGrading SchemeAssignments (40%)Assignments (40%)– Programming assignment (10%)Programming assignment (10%)– Write a short paper (15%), and present it (5%)Write a short paper (15%), and present it (5%)– Reading research paper, critique(5%), presentation (5%)Reading research paper, critique(5%), presentation (5%)

Midterm (15%): Tue, Feb 27 (1-hr)Midterm (15%): Tue, Feb 27 (1-hr)

Project (45%)Project (45%)– Project idea and initial design (5%)Project idea and initial design (5%)– Implementation/Performance evaluation (15%)Implementation/Performance evaluation (15%)– Presentation & Demo (10%)Presentation & Demo (10%)– Final paper (15%)Final paper (15%)

Page 4: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 44

GoalsGoalsThis is a systems course (skills)This is a systems course (skills)

Understand the fundamentals of SOA, Web Understand the fundamentals of SOA, Web Services, SOC, and related standardsServices, SOC, and related standards

Learn about “some” of the technologies that Learn about “some” of the technologies that can be used to develop SOC applicationscan be used to develop SOC applications

Learn about research challengesLearn about research challenges

Work effectively in groups to develop a Work effectively in groups to develop a significant SOC system, or a solution to a significant SOC system, or a solution to a challenging problemchallenging problem

Page 5: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 55

Course ContentCourse ContentDistributed ParadigmsDistributed Paradigms

Service-Oriented ArchitectureService-Oriented Architecture

Service-Oriented ComputingService-Oriented Computing

Web Services (1Web Services (1stst&2&2ndnd generation standards) generation standards)

Interoperability, agentsInteroperability, agents

Service Composition, Coordination, TransactionsService Composition, Coordination, Transactions

Semantic Web and OntologiesSemantic Web and Ontologies

Wireless Web ServicesWireless Web Services

Security and TrustSecurity and Trust

Service-Centric EngineeringService-Centric Engineering

Page 6: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 66

LimitationsLimitationsToo many 2Too many 2ndnd generation specifications generation specificationsWe will not be able to cover all topics in We will not be able to cover all topics in detailsdetailsFor some topics, the course is more like an For some topics, the course is more like an eye openereye openerDo not expect to become an expert in every Do not expect to become an expert in every single topic that we will coversingle topic that we will coverIt is almost impossible to master all the It is almost impossible to master all the technologies for service-oriented computing technologies for service-oriented computing or even just Web Services (i.e. the focus is or even just Web Services (i.e. the focus is not on the tools)not on the tools)

Page 7: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 77

Towards Network ComputingTowards Network ComputingThe evolution of computing?The evolution of computing?– Stand-alone computersStand-alone computers– MainframesMainframes– PCsPCs– C/S ComputingC/S Computing– Network ComputingNetwork Computing

The Internet (and Web) factorThe Internet (and Web) factorThe Java factorThe Java factorThe network is the computerThe network is the computer

Page 8: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 88

Client/Server ComputingClient/Server Computing

Processing distributed between nodes Processing distributed between nodes (front-end or client, and back-end or (front-end or client, and back-end or server)server)Monolithic programs are divided into two Monolithic programs are divided into two parts:parts:– Client & ServerClient & Server

Client applications run on local machinesClient applications run on local machinesServer applications run on centralized Server applications run on centralized machinesmachines

Page 9: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 99

The Internet factorThe Internet factorAttempts to inter-connect all private and Attempts to inter-connect all private and public networks togetherpublic networks togetherDARPA’s IP is the de-facto standard for DARPA’s IP is the de-facto standard for exchanging data between different networksexchanging data between different networksTCP is the de-facto standard transport TCP is the de-facto standard transport protocol over IP (combo as TCP/IP)protocol over IP (combo as TCP/IP)Classical applications: email, file transfer, Classical applications: email, file transfer, remote loginremote login

Page 10: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 1010

The Web factorThe Web factorWhat is the most useful piece of software of What is the most useful piece of software of the 1990’s (and even today)? The the 1990’s (and even today)? The browserbrowser!!The browser is becoming more or less an The browser is becoming more or less an operating system (or the computing platform) operating system (or the computing platform) for many usersfor many usersTraditional network applications (e.g. email) Traditional network applications (e.g. email) have been incorporated in the browserhave been incorporated in the browserNew business opportunities emerged (e-New business opportunities emerged (e-commerce)commerce)New technologies to address challenges (e.g. New technologies to address challenges (e.g. search engines)search engines)

Page 11: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 1111

The Java factorThe Java factorPortabilityPortability

Platform independentPlatform independent

Java bytecodes can be executed on any Java bytecodes can be executed on any computer with a JVMcomputer with a JVM

Web browsers implement the JVMWeb browsers implement the JVM

Possible to enhance Web pages (applets)Possible to enhance Web pages (applets)

Remote objects can be upgraded online by Remote objects can be upgraded online by pushing new bytecodes to the hosting JVMpushing new bytecodes to the hosting JVM– Corel’s attempt with WordPerfect in 1997 (software Corel’s attempt with WordPerfect in 1997 (software

as a service?)as a service?)

Page 12: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 1212

Distributed Computing ParadigmsDistributed Computing Paradigms

Technologies for building distributed appsTechnologies for building distributed apps

– SocketsSockets– Remote procedure calls (RPC)Remote procedure calls (RPC)– Java RMI (Remote Method Invocation)Java RMI (Remote Method Invocation)– CORBA (and DCOM)CORBA (and DCOM)– Mobile agentsMobile agents

Page 13: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 1313

SocketsSocketsBSD sockets (early 1980s)BSD sockets (early 1980s)Analogous to telephones – provide the Analogous to telephones – provide the developer with an interface to the networkdeveloper with an interface to the networkThink of a socket as an end point of a Unix Think of a socket as an end point of a Unix pipepipeUsed in the same way as a file descriptor:Used in the same way as a file descriptor:– Creation (open socket)Creation (open socket)– Read/write (receive/send to socket)Read/write (receive/send to socket)– Destruct (close socket)Destruct (close socket)

Types: SOCK_STREAM, SOCK_DGRAM, Types: SOCK_STREAM, SOCK_DGRAM, SOCK_RAWSOCK_RAW

Page 14: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 1414

Remote Procedure CallsRemote Procedure CallsSun Microsystems developed the Open Sun Microsystems developed the Open Network Computing RPC (1987) – Network Computing RPC (1987) – communication mechanism for NFScommunication mechanism for NFSA remote function could be invoked as if it A remote function could be invoked as if it were a local onewere a local oneOpen Software Foundation’ DCE Open Software Foundation’ DCE (Distributed Computing Environment) 1989(Distributed Computing Environment) 1989Microsoft RPC initiative based on Microsoft RPC initiative based on DCE/RPC (1990)DCE/RPC (1990)

Page 15: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 1515

CORBACORBACommon Object Request Broker Common Object Request Broker Architecture (OMG, 1991)Architecture (OMG, 1991)

A specification for creating and using A specification for creating and using distributed objectsdistributed objects

It is not a programming languageIt is not a programming language

Page 16: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 1616

Java RMIJava RMIRMI is a core package of Java 1.1+RMI is a core package of Java 1.1+

The power of Java interfaces (no The power of Java interfaces (no protocols)protocols)

Methods can be invoked from JVMs, Methods can be invoked from JVMs, possibly running on remote hostspossibly running on remote hosts

Page 17: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 1717

CORBA vs. RMICORBA vs. RMIInterfaces in IDLInterfaces in IDL

Language-independentLanguage-independent

Heterogeneous Heterogeneous language environmentlanguage environment

Garbage collector (No)Garbage collector (No)

In, out, inout In, out, inout parametersparameters

Pass by referencePass by reference

Interfaces in JavaInterfaces in Java

Java-basedJava-based

Homogenous language Homogenous language environmentenvironment

Garbage collector (Yes)Garbage collector (Yes)

No such parametersNo such parameters

Pass by copy (local Pass by copy (local objects), by reference to objects), by reference to stub (remote objects)stub (remote objects)

Page 18: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 1818

Summary of Distributed ParadigmsSummary of Distributed ParadigmsSocksSocks– too low-level mechanismtoo low-level mechanism

RMIRMI– Java-to-Java object distributionJava-to-Java object distribution– Java-specific (not language-neutral)Java-specific (not language-neutral)– RMI-IIOP: depends on CORBA for communication and RMI-IIOP: depends on CORBA for communication and

Java-specific interfacesJava-specific interfaces

CORBACORBA– OMG standard, language-neutralOMG standard, language-neutral– Interoperability issues (no guarantee vendors would Interoperability issues (no guarantee vendors would

implement the full specification)implement the full specification)

DCOMDCOM– Microsoft distributed object technologyMicrosoft distributed object technology– Windows-specificWindows-specific

Page 19: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 1919

AgentsAgentsAn agent is an entity that:An agent is an entity that:– Acts on behalf of others in autonomous fashionActs on behalf of others in autonomous fashion– Proactive ReactiveProactive Reactive– Exhibits some levels of the key attributes of Exhibits some levels of the key attributes of

learning, cooperation, learning, cooperation, mobility mobility (mobile agents)(mobile agents)

Page 20: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 2020

The WebThe WebDesigned for people to share information: human to Designed for people to share information: human to machine interactionmachine interaction

Source: http://www.w3.org/2003/Talks/0521-hh-wsa/slide2-0.htmlSource: http://www.w3.org/2003/Talks/0521-hh-wsa/slide2-0.html

First generation Web: static HTMLFirst generation Web: static HTMLSecond generation Web: dynamic HTML, Web-based Second generation Web: dynamic HTML, Web-based servicesservices– 2.5G: AJAX?2.5G: AJAX?

Third generation Web: Web servicesThird generation Web: Web servicesFourth generation Web: Semantic Web ServicesFourth generation Web: Semantic Web Services

Page 21: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 2121

CGI (Common Gateway CGI (Common Gateway Interface)Interface)

Server-side technologyServer-side technologyMainly used to interpret fill-out formsMainly used to interpret fill-out formsCGI scripts can be written in any languageCGI scripts can be written in any languageActs as a gateway between output/inputActs as a gateway between output/inputEnvironment variables:Environment variables:– REMOTE_HOST, REMOTE_ADDRREMOTE_HOST, REMOTE_ADDR– CONTENT_TYPE, CONTENT_LENGTHCONTENT_TYPE, CONTENT_LENGTH– QUERY_STRINGQUERY_STRING

StatelessStateless

Page 22: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 2222

ServletsServletsServer-side technologyServer-side technologyDesigned to overcome some limitations of Designed to overcome some limitations of existing technologies (e.g. CGI is stateless)existing technologies (e.g. CGI is stateless)Characteristics:Characteristics:– A light-weight task that can be executed as a A light-weight task that can be executed as a

threadthread– A servlet can remain in memory (a CGI script A servlet can remain in memory (a CGI script

terminates when it finished)terminates when it finished)

Advantages:Advantages:– A servlet can service multiple client requestsA servlet can service multiple client requests– Can handle multiple clients without re-initializingCan handle multiple clients without re-initializing

Page 23: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 2323

JSP (Java Server Pages)JSP (Java Server Pages)Server-side technologyServer-side technologyEnables you to embed Java code within an Enables you to embed Java code within an HTML documentHTML documentWhen an HTTP request is received, the When an HTTP request is received, the compilation engine converts the JSP compilation engine converts the JSP document into a Java Servlet then the servlet document into a Java Servlet then the servlet will be loadedwill be loaded

Page 24: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 2424

XML (eXtensible Markup Language)XML (eXtensible Markup Language)A meta-language used to define documents A meta-language used to define documents containing structured datacontaining structured dataA simple and extensible subset of SGML to capture A simple and extensible subset of SGML to capture new vocabulariesnew vocabulariesXML vs. HTMLXML vs. HTML– Markup languages (tags used to annotate data)Markup languages (tags used to annotate data)– In HTML, the syntax and semantics of a document are In HTML, the syntax and semantics of a document are

defined (can be used alone to create presentation). XML defined (can be used alone to create presentation). XML allows you define doc syntaxallows you define doc syntax

– HTML docs are not well-formed (not all tags have end HTML docs are not well-formed (not all tags have end tags). XML is well-formedtags). XML is well-formed

– In XML, tag names are case sensitive (not in HTML)In XML, tag names are case sensitive (not in HTML)

Page 25: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 2525

Features and Benefits of XMLFeatures and Benefits of XMLExtensibility: XML can be used to create other Extensibility: XML can be used to create other markup languagesmarkup languages

Precise structure: HTML suffers from poor Precise structure: HTML suffers from poor structure (difficult to process effectively). XML structure (difficult to process effectively). XML documents are well structureddocuments are well structured– Each element has a root and all elements must be Each element has a root and all elements must be

nested within other elementsnested within other elements

Powerful extensions: XML used to define Powerful extensions: XML used to define syntax or content, other languages are needed syntax or content, other languages are needed to define semantics, style, or presentationto define semantics, style, or presentation

Page 26: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 2626

XML Document TypesXML Document TypesTwo types:Two types:– Valid documentValid document: Defined by a Document Type : Defined by a Document Type

Definition (DTD) – grammar of the document that Definition (DTD) – grammar of the document that defines what kind of elements, attributes, and defines what kind of elements, attributes, and entities can be in a documententities can be in a document

– Well-formed documentWell-formed document: Doesn’t have to adhere : Doesn’t have to adhere to a DTD, but must follow two rules:to a DTD, but must follow two rules:

1) Each element must have open&closed tag1) Each element must have open&closed tag

2) There must be one root element that contains 2) There must be one root element that contains all other elementsall other elements

Page 27: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 2727

XMLXMLSample XML documentSample XML document

Page 28: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 2828

XML NamesapcesXML NamesapcesThe freedom to define arbitrary tag names can The freedom to define arbitrary tag names can become a problembecome a problem– Two or more parties use XML to exchange information, but Two or more parties use XML to exchange information, but

could use the same tag to refer to different things (sol: use could use the same tag to refer to different things (sol: use namespaces)namespaces)

A namespace is declared: prefix, element and URI:A namespace is declared: prefix, element and URI:

<wsdl: definitions xmlns:wsdl=<wsdl: definitions xmlns:wsdl=http://schemas.xmlsoap.org/wsdl/http://schemas.xmlsoap.org/wsdl/>>

– Any child element can use the defined prefixAny child element can use the defined prefix– QualifiedName (QName) is the prefix + element/attributeQualifiedName (QName) is the prefix + element/attribute

Page 29: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 2929

XML NamespacesXML Namespaces

Source: IBMSource: IBMWithout namespaces, the processor cannot distinguish between the Without namespaces, the processor cannot distinguish between the two <binding> elementstwo <binding> elements

Page 30: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 3030

Presenting XML DocumentsPresenting XML Documentsstocks.xml in a browserstocks.xml in a browser

Page 31: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 3131

Displaying XML NicelyDisplaying XML NicelyApply a transformation on the XML documentApply a transformation on the XML document– To extract the data, orTo extract the data, or– To create a new format (XML to HTML)To create a new format (XML to HTML)

Can be done using a transformation languageCan be done using a transformation language– Extensible Stylesheet Transformation Language Extensible Stylesheet Transformation Language

(XSLT), which is part of XSL(XSLT), which is part of XSL

Two parts to XSLTwo parts to XSL– Transformation language (XSLT)Transformation language (XSLT)– Formatting language (XSL formatting objects)Formatting language (XSL formatting objects)

Page 32: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 3232

TransformationTransformationXSL Stylesheet (stocks.xsl)XSL Stylesheet (stocks.xsl)

Page 33: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 3333

XSL StylesheetXSL StylesheetXSL syntaxXSL syntax

To apply xsl to stocks.xml, change first line to: To apply xsl to stocks.xml, change first line to: <?xml:stylesheet type=“text/xsl” <?xml:stylesheet type=“text/xsl” href=“./stocks.xmls”> version…etc?>href=“./stocks.xmls”> version…etc?>

Page 34: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 3434

Parsing XMLParsing XML1) Simple API for XML (SAX)1) Simple API for XML (SAX)– It is not a parser, but a standard interfaceIt is not a parser, but a standard interface– Developed by members of the XML-DEV mailing list Developed by members of the XML-DEV mailing list

(now hosted by OASIS)(now hosted by OASIS)– It is lightweight and fast (because it is event-based It is lightweight and fast (because it is event-based

– reports parsing events directly to app using – reports parsing events directly to app using callbacks)callbacks)

Page 35: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 3535

Parsing XMLParsing XML2) Document Object Model (DOM)2) Document Object Model (DOM)– A platform- and language-neutral interfaces A platform- and language-neutral interfaces

for accessing and updating XML documentsfor accessing and updating XML documents– Uses a tree structure, composed of element Uses a tree structure, composed of element

nodes and text nodesnodes and text nodes– Tree is built in memory (but it is simpler to Tree is built in memory (but it is simpler to

program than SAX).program than SAX).

Page 36: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 3636

Transforming XMLTransforming XMLTransform XML into any desired formatTransform XML into any desired format

A transformation engine takes an XML A transformation engine takes an XML document and applies the XSL to create a document and applies the XSL to create a new document formatnew document format

Page 37: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 3737

The Stocks ExampleThe Stocks ExampleThe example on the previous slides and all The example on the previous slides and all source code can be found at the following source code can be found at the following URL; ignore the JSP stuff if you wish…URL; ignore the JSP stuff if you wish…

http://java.sun.com/developer/http://java.sun.com/developer/technicalArticles/xml/WebAppDev2/technicalArticles/xml/WebAppDev2/

Page 38: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 3838

XML SchemaXML SchemaXML Schema allows you define and constrain XML Schema allows you define and constrain the content of an XML document (alternative to the content of an XML document (alternative to DTD – Document Type Definition)DTD – Document Type Definition)– You can define custom typesYou can define custom types– You can define simple and complex typesYou can define simple and complex types

It is a document created using the XML It is a document created using the XML schema definition language (XSD)schema definition language (XSD)

Page 39: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 3939

XML SchemaXML SchemaExample from Example from w3schools.com/schemaw3schools.com/schema

Page 40: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 4040

JiniJiniPronounced “Gee-nee”Pronounced “Gee-nee”

A network infrastructure on top of Java to A network infrastructure on top of Java to create a “federation” of virtual machinescreate a “federation” of virtual machines

Discovery/Join/Lookup ProtocolsDiscovery/Join/Lookup Protocols

Page 41: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 4141

Service-Oriented Architecture Service-Oriented Architecture (SOA)(SOA)

It is an architectural style for building software It is an architectural style for building software applications based on services available on a applications based on services available on a network such as the Webnetwork such as the WebA service is an implementation of a well-defined A service is an implementation of a well-defined business functionality (can be consumer by clients business functionality (can be consumer by clients in other applications)in other applications)SOA promotes loose coupling between components SOA promotes loose coupling between components (for reuse)(for reuse)Allows businesses to reuse existing applications, Allows businesses to reuse existing applications, and promises interoperability between apps and and promises interoperability between apps and technologiestechnologies

Page 42: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 4242

SOASOAUses the “find-bind-execute” paradigmUses the “find-bind-execute” paradigm

Page 43: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 4343

SOASOAProvides a new level of flexibility, meaning:Provides a new level of flexibility, meaning:– Services are software components with well-Services are software components with well-

defined interfaces (implementation-independent)defined interfaces (implementation-independent)– Services are self-contained (perform pre-Services are self-contained (perform pre-

determined tasks) and loosely coupled (for determined tasks) and loosely coupled (for independence)independence)

– Services can be dynamically discoveredServices can be dynamically discovered– Composite services can be built from aggregates Composite services can be built from aggregates

of other servicesof other services

Page 44: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 4444

Principles forming the baseline Principles forming the baseline foundation for SOAfoundation for SOA

Services are loosely coupledServices are loosely coupled

Services are autonomousServices are autonomous

Services share a formal contractServices share a formal contract

Services abstract underlying logicServices abstract underlying logic

Service are composableService are composable

Services are statelessServices are stateless

Services are reusableServices are reusable

Services are discoverableServices are discoverable

Page 45: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 4545

Extended SOAExtended SOABasic SOA didn’t address concerns such as Basic SOA didn’t address concerns such as management, orchestration, transaction and management, orchestration, transaction and coordination, security, and others.coordination, security, and others.

Source: Mike P. Papazoglou, Service-Oriented Computing: Concepts, Characteristics and Directions

Page 46: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 4646

Web ServicesWeb ServicesMachine to machine interactionMachine to machine interaction

Source: http://www.w3.org/2003/Talks/0521-hh-wsa/slide3-0.htmlSource: http://www.w3.org/2003/Talks/0521-hh-wsa/slide3-0.html

SOA can be realized with Web ServicesSOA can be realized with Web Services

Page 47: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 4747

What is a Web Service?What is a Web Service?(W3C): A Web service is a (W3C): A Web service is a software systemsoftware system identified identified by a URI, whose public interfaces and bindings are by a URI, whose public interfaces and bindings are defined and described using XMLdefined and described using XML. Its definition can . Its definition can be discovered by other software systems. These be discovered by other software systems. These systems may then interact with the Web service in a systems may then interact with the Web service in a manner prescribed by its definition, using manner prescribed by its definition, using XML based XML based messagesmessages conveyed by conveyed by Internet protocolsInternet protocols (w3C) (w3C)(Microsoft): A piece of business logic accessible via (Microsoft): A piece of business logic accessible via the Internet using open standardsthe Internet using open standards(): Web services are application components that are (): Web services are application components that are designed to support interoperable machine-to-designed to support interoperable machine-to-machine interaction over a network. This machine interaction over a network. This interoperability is gained through a set of XML-based interoperability is gained through a set of XML-based open standardsopen standards

Page 48: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 4848

Web Services StandardsWeb Services StandardsBasic Standards (first generation)Basic Standards (first generation)

WSDL: Web Service Description LanguageWSDL: Web Service Description Language

SOAP: Simple Object Access ProtocolSOAP: Simple Object Access Protocol

UDDI: Universal Description, Discovery, and UDDI: Universal Description, Discovery, and IntegrationIntegration

Network (HTTP, FTP, e-mail)

Service registry and discovery (UDDI)

Service Description (WSDL)

XML-based Messaging (SOAP)

Page 49: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 4949

Overview of LifecycleOverview of LifecycleInvoking web services…Invoking web services…

Source: http://web-services.gov/7Source: http://web-services.gov/7

Page 50: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 5050

Service-Oriented ComputingService-Oriented ComputingA computing paradigm that utilizes services A computing paradigm that utilizes services as fundamental elements for developing as fundamental elements for developing applicationsapplications

Services perform functions (simple requests Services perform functions (simple requests or complicated business process)or complicated business process)

Services can be “simple” or “composite”. Services can be “simple” or “composite”. Composite services assemble existing Composite services assemble existing services to offer high-level functionalityservices to offer high-level functionality

Automatic service composition is a major Automatic service composition is a major challengechallenge

Page 51: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 5151

Software-as-a-Service (SaaS)Software-as-a-Service (SaaS)Enterprise software is being transformed from Enterprise software is being transformed from an installed product to a hosted servicean installed product to a hosted service

Customer pays on a subscription or pay per Customer pays on a subscription or pay per use basis to access functionality using web use basis to access functionality using web browser or other clientsbrowser or other clients

Corel tried this (more or less) in 1997 with Corel tried this (more or less) in 1997 with WordPerfectWordPerfect

Page 52: CIS*6650.01 Service-Oriented Computing

Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 5252

Software-as-a-ServiceSoftware-as-a-ServiceBenefits:Benefits:– Reduced acquisition and maintenance costs Reduced acquisition and maintenance costs

(customer)(customer)– Scalability and QoS is responsibility of service Scalability and QoS is responsibility of service

provider (customer)provider (customer)– Easier support and maintenance (service provider)Easier support and maintenance (service provider)

DownsideDownside– Security: confidential info visible to others Security: confidential info visible to others

(customer)(customer)– Availability and reliability are harder to guarantee Availability and reliability are harder to guarantee

(service provider)(service provider)