Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSCI 599: Beyond Web Browsers Professor Shahram Ghandeharizadeh Computer Science Department Los Angeles, CA 90089.

Similar presentations


Presentation on theme: "CSCI 599: Beyond Web Browsers Professor Shahram Ghandeharizadeh Computer Science Department Los Angeles, CA 90089."— Presentation transcript:

1 CSCI 599: Beyond Web Browsers Professor Shahram Ghandeharizadeh Computer Science Department Los Angeles, CA 90089

2 A Shift in Computing 1985-2000+ 1999+ Server-centricDistributed Dumb clientsSmart clients Hardware-drivenSoftware-driven User to appUser to app; app to app Information accessInformation action One-wayTwo-way Monolithic islandspeer-to-peer Integration an afterthoughtIntegration by design Worry: scaleWorry: value Internet

3 Future Vision In the future, any two IT components will automatically integrate and “communicate” with one another, even though they were not specifically designed to interoperate In the future, any two IT components will automatically integrate and “communicate” with one another, even though they were not specifically designed to interoperate How? How?  Semantics  Standards  Concept of “software and data” as a service, web services, e.g.,  Google web service tool set  Microsoft Teraserver web service tool set  Experian (TRW) credit report web service tool set  Etc.

4 XML A standard for data interoperability among web services A standard for data interoperability among web services  Programming language neutral  Sun’s Java, Microsoft’s C#  Device and software platform independent Motorola i85s Motorola i85s J2ME J2ME Compaq iPAQ Compaq iPAQ Windows CE Windows CE StrongARM StrongARM PERL PERL Apache 2.0 Apache 2.0 MySQL MySQL Linux Linux.NET.NET SQL 2000 SQL 2000 Commerce server Commerce server Windows 2000 Windows 2000

5 TERMINOLOGY XML: eXtended Markup Language XML: eXtended Markup Language Web service: software & data as service Web service: software & data as service  a remote program intended for use by computer programs. SOAP: Simple Object Access Protocol SOAP: Simple Object Access Protocol  Provides plumbing to enable two programs to interoperate WSDL: Web Service Definition Language WSDL: Web Service Definition Language  Specifies a web service’s request/response interface. UDDI: Uniform Description, Discovery, and Integration UDDI: Uniform Description, Discovery, and Integration  A “passive” yellow page

6 SOAP Envelope defines what is in a message, who should consume it, whether it is optional or mandatory, and how to signal errors Envelope defines what is in a message, who should consume it, whether it is optional or mandatory, and how to signal errors Binding framework: an abstract framework to exchange SOAP envelopes between peers using a transport protocol, e.g., http. Binding framework: an abstract framework to exchange SOAP envelopes between peers using a transport protocol, e.g., http. Encoding rules define serialization of data. Encoding rules define serialization of data. RPC to define remote procedure calls and responses. RPC to define remote procedure calls and responses.

7 How & What How to author & publish a web service? How to author & publish a web service? What happens when a client invokes a web service? What happens when a client invokes a web service?

8 How to author a WS? To sidestep details of XML & SOAP use an integrated software development environment, e.g., MS.NET To sidestep details of XML & SOAP use an integrated software development environment, e.g., MS.NET  Implement a class with public methods & declared as “Web Method”, .NET generates the WSDL and installs the programs on a web server,  A consumer references the methods of the web service as they would a local or system class,  Programming environment uses the SOAP system to perform all the RPC and data encoding/decoding operations.

9 How to author a WS? 1. A simple example, 2. Review previous slide.

10 What happens underneath? When a Client (C1) invokes a remote web service (W1): When a Client (C1) invokes a remote web service (W1):  C1 downloads W1’s WSDL, translates it into a programming language, build the C1 proxy and W1 stub code  This proxy code enables C1 to communicate with W1  When C1 invokes method W1.M1:  C1 calls a.NET method that handles SOAP/XML encoding/decoding and transmission to W1  C1’s runtime environment builds a SOAP request, transmits to W1 via http (or native SOAP), waits for a response, decodes the returned SOAP/XML document, formats the result in binary for C1 C1 may invoke W1.M1 asynchronously!

11 What happens underneath? When a web server, e.g., IIS, receives a SOAP request on port 80 When a web server, e.g., IIS, receives a SOAP request on port 80  Web server converts SOAP request into a local invokation; invoked method is unaware that SOAP is involved.  IIS routes W1.M1 invocation to ASP.NET  File extension “.asmx” identifies the request as a web service; the.NET class typically has the same name as the referenced file (but with.DLL extension)  Parameter values in the SOAP message tagged by XML parameter tags.  HTTP GET style invocation.

12 One important detail: In a vendor-neutral framework, C1 and W1 may exchange any object type that has a standardized serializer, only atomic-data and SOAP-specified constructors like arrays and struct (unless W3C standardizes additional constructors, e.g., dataset). In a vendor-neutral framework, C1 and W1 may exchange any object type that has a standardized serializer, only atomic-data and SOAP-specified constructors like arrays and struct (unless W3C standardizes additional constructors, e.g., dataset). If all clients are restricted to.NET then one may specify serialize/deserialize interface for each class to facilitate its transmission. If all clients are restricted to.NET then one may specify serialize/deserialize interface for each class to facilitate its transmission.

13 Questions & Answers

14 DeW: A Dependable Web Service Framework An organization may maintain many web services on a cluster of PCs, e.g., NLM with Neuroscience experiments: An organization may maintain many web services on a cluster of PCs, e.g., NLM with Neuroscience experiments:  A web service may consist of:  Raw experimental data,  Techniques to summarize data,  Simulation models that describe observations,  Text, audio, and video clips,  etc.  One service might depend on several others.

15 A Scientific Workbench Application proxy Exp 1 2 Invoke method A 3 Invoke remote method A 1 Result of method A Internet Server 1 Server 2

16 Objective A middleware that controls the placement of different web services to: A middleware that controls the placement of different web services to:  Balance system load, no bottlenecks!  No data loss in the presence of failures.  Minimize the overhead of distributed processing. The middleware should be general purpose enough to support update- intensive environments. The middleware should be general purpose enough to support update- intensive environments.

17 DeW Application proxy Exp 1 2 Invoke method A 3 Invoke remote method A 1 Result of method A Internet DeW Registry Server 1 Server 2

18 Object Migration Application proxy Server 1 Server 2 Internet DeW Registry 1 Migration Exp 1

19 Object Migration (Cont…) Application proxy Internet DeW Registry Exp 1 Server 1 Server 2

20 Register handler Application proxy Internet DeW Registry Exp 1 Exception Handler 2 Register Exception handler Server 1 Server 2

21 A DeW Exception Raised Application proxy 2 Invoke method A 3 Invoke remote method A 1 DeW_Missing_WS Internet DeW Registry Exp 1 Server 1 Server 2

22 Contact DeW Application proxy Internet DeW Registry Exp 1 4 (Service ID, Web service ID, Exception ID) Server 1 Server 2

23 Download Handler Application proxy Internet DeW Registry Exp 1 5 Download Exception handler Exception Handler Server 1 Server 2

24 Re-invoke Remote Method Application proxy Internet DeW Registry Exp 1 7 6 Invoke method A Result of method A Server 1 Server 2

25 DeW Framework On-demand propagation of updates to proxies On-demand propagation of updates to proxies A global DeW framework can provide service to a variety of applications A global DeW framework can provide service to a variety of applications The DeW framework can take an active role in monitoring traffic to a web service in order to detect and prevent Denial of Service (DoS) and DDoS. The DeW framework can take an active role in monitoring traffic to a web service in order to detect and prevent Denial of Service (DoS) and DDoS.

26 Current Status An implementation of the DeW framework using Java & Jini An implementation of the DeW framework using Java & Jini Research objective: Research objective:  Design a DeW framework using a peer-to- peer network  Implement the DeW framework in C#  GXA specification in synergy with DeW  Demonstrate the DeW framework in the context of publishing papers

27 THOUGHTS History of DeW & 911 (nine11); 911 was changed to DeW because it reminded people of September 11 th History of DeW & 911 (nine11); 911 was changed to DeW because it reminded people of September 11 th Cluster computing versus peer-to-peer networks Cluster computing versus peer-to-peer networks  Key difference: with cluster computing, participating nodes are fixed  Both must address load balancing! GXA specification GXA specification

28 Questions & Answers

29 Grading Homework assignments Homework assignments  Grades are issued based on a quiz (true/false) answers at the beginning of the lecture when the homework is due  Project  Class participation Constructive, thought provoking discussions Constructive, thought provoking discussions  No religious battles!

30 Announcements Workstudy positions available to act as lab monitors for SAL 200C, positions filled using a FCFS policy Workstudy positions available to act as lab monitors for SAL 200C, positions filled using a FCFS policy Homework due next week, Monday, September 16 th Homework due next week, Monday, September 16 th  Check to see if the web service can be invoked from an ASP page

31 Questions & Answers

32 DeW Framework When a client’s proxy object references a DeW exception name, DeW must locate & provide its handler. When a client’s proxy object references a DeW exception name, DeW must locate & provide its handler. This is similar to an exact match query This is similar to an exact match query Hashing: Hashing:  K = salary of employees  V = 5 buckets addressed from 0 to 4  h(K) = K mod 5

33 Hashing B0B0B0B0 B1B1B1B1 B2B2B2B2 B3B3B3B3 B4B4B4B4 h(K) = K mod 5 K

34 Construct buckets B0B0B0B0 B1B1B1B1 B2B2B2B2 B3B3B3B3 B4B4B4B4 h(50000) = 50000 mod 5 K=50,000 50000

35 Construct buckets B0B0B0B0 B1B1B1B1 B2B2B2B2 B3B3B3B3 B4B4B4B4 h(53333) = 53333 mod 5 K=53,333 50000 53333

36 Construct buckets B0B0B0B0 B1B1B1B1 B2B2B2B2 B3B3B3B3 B4B4B4B4 h(60012) = 60012 mod 5 K=60,012 50000 53333 60012

37 Query using hashing B0B0B0B0 B1B1B1B1 B2B2B2B2 B3B3B3B3 B4B4B4B4 h(60000) = 60000 mod 5 Q: Who earns salary equal to 60,000? 50000 53333 60012

38 Hashing A hash function disperses records into a deterministic random space. A hash function disperses records into a deterministic random space. This “deterministic” property enables the system to process queries (by mapping the exact match predicate into the same random space). This “deterministic” property enables the system to process queries (by mapping the exact match predicate into the same random space). Hashing = “divide & conquer” Hashing = “divide & conquer” Exception name look ups with DeW are exact-match queries. Exception name look ups with DeW are exact-match queries.

39 Questions & Answers


Download ppt "CSCI 599: Beyond Web Browsers Professor Shahram Ghandeharizadeh Computer Science Department Los Angeles, CA 90089."

Similar presentations


Ads by Google