cis*6650.01 service-oriented computing
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 PresentationTRANSCRIPT
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
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
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%)
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
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
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)
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
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
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
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)
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?)
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
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
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)
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
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
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)
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
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)
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
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
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
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
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)
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
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
Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 2727
XMLXMLSample XML documentSample XML document
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
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
Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 3030
Presenting XML DocumentsPresenting XML Documentsstocks.xml in a browserstocks.xml in a browser
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)
Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 3232
TransformationTransformationXSL Stylesheet (stocks.xsl)XSL Stylesheet (stocks.xsl)
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?>
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)
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).
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
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/
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)
Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 3939
XML SchemaXML SchemaExample from Example from w3schools.com/schemaw3schools.com/schema
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
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
Qusay H. MahmoudQusay H. Mahmoud CIS*6650.01CIS*6650.01 4242
SOASOAUses the “find-bind-execute” paradigmUses the “find-bind-execute” paradigm
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
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
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
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
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
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)
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
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
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
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)