490 likes | 649 Views
Review. V. “Juggy” Jagannathan Associate Professor of Computer Science West Virginia University. Focus of Global Knowledge Networks. Enterprise Application Development Distributed Systems Development Component-based Solution Development Knowledge-based Solution Development.
E N D
Review V. “Juggy” Jagannathan Associate Professor of Computer Science West Virginia University
Focus of Global Knowledge Networks • Enterprise Application Development • Distributed Systems Development • Component-based Solution Development • Knowledge-based Solution Development
ASP & Enterprise Applications Application Service Provider (ASP) provides applications to customers on a subscription basis. ASPs provide for all the infrastructure needs to host the application and rely on Internet or Intranets to deliver the applications to customers. ASPs are Enterprise Applications and need to satisfy a wide range of stringent requirements.
Flexibility Security Reliability Availability Scalability Evolvability Performance Supportability Maintainability Interoperability Platform Independence Location Independence Open Standards and Systems Architectural Choices Enterprise Application Requirements
Platform Choices Platform Standards • Object Management Group (OMG) CORBA Infrastructure and approach • Web services – the new kid on the block Other Popular Platforms • Sun J2EE Platform • Windows .NET • Host of other vendor platforms • Oracle • IBM • Iona Platform Choices
Servers Server Clients C++ Java Ada C other C++ Java Ada C other Client Requests Service IDL-based IDL-based ORB CORBA Architecture – Simple view OMG Technology
Java and J2EE Platform Java Platform Overview
Web Container Tag Library Servlets JSPs J2EE Application Server JAF JAF JavaMail JavaMail EJB Container JMS JMS Session Beans Entity Beans JDBC JDBC JTA JTA JNDI JNDI RMI/IIOP RMI/IIOP Mail Server J2EE Architecture XHTML XML RDBMS HTTP(S) Java App. CORBA Server Applet Directory Service Message Queue Client App. Reproduced with Permission from Java Server Programming J2EE Edition – Wrox Press, Ltd, 2000
JAXP 1.0 – Java API for XML Processing JDBC 3.0 – Java Data Base Connectivity RMI over IIOP EJB 2.1 – Enterprise Java Beans Java Servlets 2.4 Java Server Pages 2.0 Java Message Service 1.0 Java Naming and Directory Interface (JNDI) 1.2 Java Transaction API 1.0 JavaMail 1.1 J2EE Connector Architecture 1.0 Java Authentication and Authorization Service 1.0 J2EE Platform Components Java Platform
J2EE Platform • Strong and proven platform • Evolving constantly • Already supports various APIs to develop and deploy web services Java Platform
Web Services Web Forms Web servers Web servers Web servers Web servers HTTP Web servers .NET servers SOAP UDDI ODBC DCOM .NET .NET Platform Client App. Users .NET Framework .Net Platform
.NET Components • .NET framework • Common Language Runtime (CLR) library • ActiveX Data Objects - (ADO.NET) • Active Server Pages – (ASP.NET) and supports Web Services (UDDI, WSDL & SOAP) • .NET Compact framework for PDAs • .NET Remoting (RPC support) • Visual Studio .NET • VB, C++, C#, Jscript… all compile to MSIL (Microsoft Intermediate Language) and utilize CLR. .Net Platform
.NET Framework • Microsoft’s big push to open standards and support for XML-based solutions • Fully supports web services approach • Microsoft is an active participant in W3C efforts and is a strong proponent of standardization of web services and related technologies. .Net Platform
XML Technology Overview Web Services
Emerging Importance of XML • HTML-tagging is display oriented. • XML-based content tagging has important uses: • data mining • role-oriented display customization • intelligent searching and other value added elements • Wide spread industry support for this new open standard • Microsoft • Netscape • W3C is pushing the standardization efforts • Complementary technology to HTML-based web browsers Why do we care about XML? Web Services
Requirements best addressed by XML ? • Customizing front-end applications - easy presentation of what users want to see • Data mining • Synthesis type applications - combining multiple information sources • Electronic commerce-type applications • Structured Data Exchange Web Services
XML Markup • Elements and attributes • Entity References • Comments • Processing Instructions • Marked Sections • Document Type Definitions (DTDs) • Now, XML Schemas Web Services
Elements • Bounded by start and end tags • Sample markup <Patient> <FirstName> Frank</FirstName> <LastName> Foster</LastName> </Patient> • Patient, LastName, FirstName are all entity tags. Web Services
Attributes • Name-value pairs included as part of start tags. • Sample markup <APatient patientID=“123” FirstName=“Frank” LastName=“Foster”> <Insurance> Blue Cross </Insurance> <Insurance> HMO </Insurance> </APatient> • FirstName and LastName in the example above are attribute declarations. Web Services
Document Type Definitions • Allows the expression of constraints on tags • Defines sequencing and nesting of tags • Defines attributes and values and defaults • Allows specification of external file references Web Services
XML Schemas • Replaces DTDs • Is in XML format (DTD’s are not) • Supports data typing (DTD’s didn't) • Schemas are extensible • XML Schemas – next generation of DTDs. • Wide industry support Web Services
XML’s evolving family of standards • XML Linking Specification (XLL) • Resource Directory Framework (RDF) • Style sheets • CSS Cascading Style sheets • XSL - XML Style sheet Specification Language • Document Object Model (DOM) • XML Schemas • Provides the basis for Web Services and Simple Object Access Protocol (SOAP) Web Services
Web Services Web Services
Web Service Definition A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine- processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards. Source: W3C definition: http://www.w3.org/TR/2004/NOTE-ws-arch-20040211/
What are XML Web Services? • Interaction using standard internet protocols • A vehicle used to integrate other applications • Expose functionality through well-defined interfaces • Can be advertised in a registry/directory. Web Services
Web Services Architecture • http://www.w3.org/TR/2004/NOTE-ws-arch-20040211/
Different Models supported by Web Services • Message Oriented Model • Service Oriented Model • Resource Oriented Model • Policy Model
Example XML Web Services? • Information services • Centralization services • Data Integration, Aggregation and Analysis • Extending and Integrating Applications • Peer-and-Push-based systems Web Services
Benefits of Web Services? • Standards based • Vendor neutral • Simplicity • Language and Platform Independence • Functional Abstraction • Discoverable • Reduced Development time Web Services
When not to use Web Services? • Closed systems • Critical Performance requirements • Technical limitations – like transaction support and security elements have not been standardized Web Services
Web Services Ensemble Discovery UDDI Description WSDL Web Services Messaging SOAP Encoding XML Transport HTTP
Web Services Definition Language Web Services WSDL
What is WSDL? • Web Services Definition Language • It is equivalent of IDL for Web Services • It is in XML Schema format • It defines an EXTENSIBLE framework for specifying web services interfaces • Developed originally by Microsoft and IBM and now being put through its paces in W3C. • W3C working on Version 1.2 of WSDL right now (Fall 2003). Web Services
WSDL: What does it support? • Data type definitions • Messages supported • Operations supported • Port type (an aggregation of messages and operations) • Binding (what protocol supports the service – ala SOAP) • Port – target address where service is available • Service – aggregation of port types Web Services
Port Type Port Type Port Type Operation Operation Operation Operation Operation Operation Operation Operation Operation Binding Binding Binding Binding Binding Binding Binding Binding Binding WSDL Service Web Service • WSDL specifications are published in a URL. • Clients download this specification, pick a particular protocol to communicate with the service (binding) and use that protocol. Web Services
SOAP... Simple Object Access Protocol Web Services It is a Simple Protocol that allows you to Access an Object through the net. Courtesy: Yan Liu, my student.
SOAP Motivations • Heterogeneous systems must be able to communicate • Binary protocols don’t always work • CORBA, DCOM, etc. don’t work well through firewalls • Nobody can agree on a standard binary format (usually due to platform-related issues) • We’re dealing with many heterogeneous environments (MVS, Unix, Windows NT, Linux, PalmOS, etc.) • Component runtimes differ • Security models differ (Kerberos, NTLM, OSF-DCE) Web Services Courtesy: Yan Liu, my student.
What SOAP is... • SOAP is a specification for defining... • an encoding style that uses XML to represent information graphs • a standard way to move XML with HTTP • rules for passing messages • error (fault) definition • a medium for performing Remote Procedure Calls (RPC) • one layer in a multi-layer architecture Web Services Courtesy: Yan Liu, my student.
SOAP Contains Four Parts: • An extensible envelope expressing (mandatory) • what features and services are represented in a message; • who should deal with them, • whether they are optional or mandatory. • A set of encoding rules for data (optional) • Exchange instances of application-defined data types and directed graphs • Uniform model for serializing abstract data models that can not directly be expressed in XML schema • A Convention for representation RPC (optional) • How to make calls and responses • A protocol binding to HTTP and HTTP-EF(optional) Web Services Courtesy: Yan Liu, my student.
SOAP - Simple Example <Envelope> <Header> <transId>1234</transId> </Header> <Body> <Add> <a>3</a> <b>4</b> </Add> </Body> </Envelope> Web Services c = Add(a, b) Courtesy: Yan Liu, my student.
<Envelope> <Header> <transId>1234</transId> </Header> <Body> <Add> <a>3</a> <b>4</b> </Add> </Body> </Envelope> Request <Envelope> <Header> <transId>1234</transId> </Header> <Body> <AddResponse> <c>7</c> </AddResponse> </Body> </Envelope> Response System Flow (HTTP) Server Web Services Client Courtesy: Yan Liu, my student.
Example Request <soap:Envelope> <header> …. </header> <soap:Body> <GetName> <MR#>123456</MR#> </GetName> </soap:Body> </soap:Envelope> Example Response <soap:Envelope> <header> …. </header> <soap:Body> <GetNameResponse> <Name>John Doe</Name> </GetNameResponse> </soap:Body> </soap:Envelope> SOAP – Example from healthcare Web Services
Server Client Web Service Application Interface Semantics Interface Semantics Envelope/Header/Body Envelope/Header/Body Message Encoding Message Encoding Transport (e.g. HTTP) Transport (e.g. HTTP) TCP/IP TCP/IP SOAP Execution Web Services Courtesy: Yan Liu, my student.
SOAP – Conclusions • Basis for Web services • Significant component of Microsoft’s .NET platform • Supported by everyone • Has a strong future Web Services
Universal Description, Discovery and Integration Web Services (UDDI)
UDDI – What is it? • A vehicle to locate operational web services • Similar to Domain Name Service (DNS) lookup • Embodies the concepts of “White Pages and Yellow Pages”. Web Services
UDDI Elements • White Pages: Business Name, Contact Info, DUNS etc • Yellow Pages: Business categories, key-value pairs of relevant information • Green Pages: Technical information on how to connect to web services Web Services
UDDI Process Supported • Business registers its web service (information that put in white, yellow and green pages). • The information gets propagated to all UDDI servers (replicated) • Customers contact known registries • Locate appropriate service and invoke them. • Main protocol supported is SOAP. Web Services
Web Services Current Status • Evolving rapidly – strong support for SOAP and WSDL has decent support. • UDDI is little further away. • All vendors are incorporating various components of Web services • Web services is the future – right now people have to deal with other component technologies Web Services