Top Banner
Hypertext transfer family of protocols (HTTP, HTTPS, SOAP) CSE 870 Miniproject on Frameworks Advanced Software Engineering Contact: Dr. B. Cheng, chengb at cse dot msu dot edu Matt Gerber Adithya Krishnamurthy
32

Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

Nov 15, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

Hypertext transfer family of protocols (HTTP, HTTPS, SOAP)

CSE 870 Miniproject on FrameworksAdvanced Software Engineering

Contact: Dr. B. Cheng, chengb at cse dot msu dot eduMatt Gerber

Adithya Krishnamurthy

Page 2: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

Agenda

• Overview of Protocols• Overview of Frameworks• Class diagrams• Design pattern used• State diagrams• Demo• Conclusions

Page 3: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

Overview of Protocols - HTTP• Request/Response protocol: Client or User Agent (UA) initiates a

request and a server responds.• HTTP Message elements

– Message Types: Request or Response– Message Headers: field-name ":" [ field-value ]

Example: Content-Type: text/html– Message Body: payload associated with request or response.– Message Length: Length of the message body.– General Header Fields: Cache-Control, Date, Pragma, Transfer-Encoding

• Request– Request Line: Method Request-URI HTTP-Version CRLF

Example: GET http://www.msu.edu/index.html HTTP/1.1

• Response– Status Line: HTTP-Version Status-Code Reason-Phrase CRLF

Example: HTTP/1.1 206 Partial content

Page 4: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

Overview of Protocols - HTTPS• Secure message-oriented protocol that works in conjunction with HTTP• Secure wrapper around unsecure HTTP message - HTTP over SSL• HTTPS Message elements

– Same as those of HTTP except the range of headers is different and the bodies are cryptographically enhanced.

• Request– Request Line: Secure * Secure-HTTP/1.4

• Response– Status Line: HTTPS-Version Status-Code Reason-Phrase CRLF

Example: Secure-HTTP/1.4 200 OK

• Message Authenticity Code (MAC)– Used to verify message integrity and sender authenticity– MAC = hex(H(Message||[<time>]||<shared key>))

Page 5: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

Overview of Protocols - SOAP• SOAP stands for Simple Object Access Protocol• XML based protocol to let applications exchange

information over HTTP• SOAP is platform and language independent• SOAP Message elements:

– Envelope element: <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope">

– Header (Optional): <soap:Header>… </soap:Header>

– Body:<soap:Body>

<x>5</x>

</soap:Body>

Page 6: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

Agenda

• Overview of Protocols• Overview of Frameworks• Class diagrams• Design pattern used• State diagrams• Demo• Conclusions

Page 7: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

Overview of Frameworks• Inheritance

class Fruit { //...

} class Apple extends Fruit {

//... }

• Compositionclass Fruit {

//... } class Apple {

private Fruit fruit = new Fruit(); //...

}

Page 8: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

Overview of Frameworks

• Whitebox Framework– Only abstract classes in framework with no implementation– Lays down the control flow and structure of the system (Lowest

Common Denominator approach)– Implementation of framework based on inheritance– Most flexible but hardest to understand and implement

Framework

Implementation

Page 9: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

Overview of Frameworks

• Graybox Framework– Combination of abstract and concrete classes in framework– Some common implementation moved back to framework classes– Implementation of framework based on inheritance and composition– Less flexible but easier to understand and implement than Whitebox

Framework

Implementation

FrameworkImplementation

Page 10: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

Overview of Frameworks

• Blackbox Framework– Mostly concrete classes in Framework– Most of common implementation moved back to

framework classes– Implementation of framework based on composition– Least flexible but easiest for clients to understand and

implement.FrameworkImplementation

Page 11: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

Agenda

• Overview of Protocols• Overview of Frameworks• Class diagrams• Design pattern used• State diagrams• Demo• Conclusions

Page 12: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

Whitebox Class diagram -Framework

Page 13: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

Whitebox Class diagram -Implementation

Page 14: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

Whitebox Class diagram -Implementation

Page 15: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

Graybox Class diagram -Framework

Page 16: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

Graybox Class diagram -Implementation

Page 17: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

Blackbox Class diagram -Framework

Page 18: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

Blackbox Class diagram -Framework

Page 19: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

Blackbox Class diagram -Implementation

Page 20: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

Agenda

• Overview of Protocols• Overview of Frameworks• Class diagrams• Design pattern used• State diagrams• Demo• Conclusions

Page 21: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

Design pattern used• Template Method

– Design pattern that defines the program skeleton of an algorithm.

– Algorithm itself is concrete but the methods that are called from it need not be.

– Subclasses can override the methods called from the algorithm but not the algorithm itself.

– Therefore the subclasses provide the concrete behavior that can vary and the general flow is determined by the template method.

Page 22: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

Design pattern used• Template Method

* HW5 HVSRQVH%XLOG5 HTXHVW* HW5 HVSRQVH7\ SH

5 HTXHVW

%XLOG5 HTXHVW* HW5 HVSRQVH7\ SH

+7735 HTXHVW

RSHQ�FRQQHFWLRQ&RQQHFWLRQ2 SHQ

VHQG�UHTXHVWUHTXHVW� �%XLOG5 HTXHVW&RQQHFWLRQ: ULWH UHTXHVW

UHDG�UHVSRQVHUHVSRQVH� �&RQQHFWLRQ5 HDG7R( QG

JHW�WKH�W\ SH�RI�UHVSRQVH�G\ QDP LFDOO\UHVSRQVH7\ SH� �* HW5 HVSRQVH7\ SHUHVSRQVH7\ SHQHZ UHVSRQVH

) UDP HZRUN

,P SOHP HQWDWLRQ

Page 23: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

Agenda

• Overview of Protocols• Overview of Frameworks• Class diagrams• Design pattern used• State diagrams• Demo• Conclusions

Page 24: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

State Diagrams

Page 25: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

State Diagrams

Page 26: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

State Diagrams

Page 27: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

State Diagrams

Page 28: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

State Diagrams

Page 29: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

Agenda

• Overview of Protocols• Overview of Frameworks• Class diagrams• Design pattern used• State diagrams• Demo• Conclusions

Page 30: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

Agenda

• Overview of Protocols• Overview of Frameworks• Class diagrams• Design pattern used• State diagrams• Demo• Conclusions

Page 31: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

Conclusions

• There are 3 different kinds of frameworks!• Client perspective must be considered while

designing frameworks.• Tradeoff is between ease of use and flexibility.• Using design patterns in frameworks is a good

thing!

Page 32: Hypertext transfer family of protocols (HTTP, HTTPS, SOAP ...

Thank You!

Questions?