Transcript 電腦網路實驗
WEB SERVICES Lab 223 潘建廷 [email protected] 何偉聖 [email protected] OUTLINE 6/1 Web service HTTP Apache (server) MySQL (database) 6/8 HTML5 PHP WHY WEB SERVICES? Interoperability has Highest Priority Web Services take Web-applications to the Next Level Web Services have Two Types of Uses Reusable application-components Connect existing software WHAT ARE WEB SERVICES? Web services are application components Web services communicate using open protocols Web services are self-contained and selfdescribing Web services can be discovered using UDDI Web services can be used by other applications XML+HTTP is the basis for Web services THE DIFFERENCE BETWEEN XML AND HTML XML is not a replacement for HTML. XML and HTML were designed with different goals: XML was designed to transport and store data, with focus on what data is HTML was designed to display data, with focus on how data looks HTML is about displaying information, while XML is about carrying information. WHAT IS XML ? XML stands for EXtensible Markup Language XML is a markup language much like HTML XML was designed to carry data, not to display data XML tags are not predefined. You must define your own tags XML is designed to be self-descriptive XML is a W3C Recommendation WEB SERVICES ARCHITECTURE (1) WEB SERVICES ARCHITECTURE (2) Web Services have three basic platform elements: SOAP WSDL UDDI SOAP TOOLS : Microsoft soaptoolkit30 SOAP (SIMPLE OBJECT ACCESS PROTOCOL) WHAT IS SOAP(SIMPLE OBJECT ACCESS PROTOCOL)? SOAP is an XML-based protocol to let applications exchange information over HTTP. Or more simple: SOAP is a protocol for accessing a Web Service. SOAP stands for Simple Object Access Protocol SOAP is a communication protocol SOAP is a format for sending messages SOAP is designed to communicate via Internet SOAP is platform independent SOAP is language independent SOAP is based on XML SOAP is simple and extensible SOAP allows you to get around firewalls SOAP is a W3C standard WSDL (WEB SERVICES DESCRIPTION LANGUAGE) • 附檔名為.WSDL,主要的用途是”描述Web Service” • 使用共同的標準,以便和各種用戶端應用程式相互整合,由IBM和Microsoft共同 研擬 ●(Type): 定義各Element實際對應之資料型態。 ●(Message): 定義各輸入、輸出Message由哪些參數Element所組成。 ●(PortType): 此Service所有Ports提供之全部Operations的集合。 ●(Binding): 定義Binding所使用的通訊協定,以及提供之Operations。 ●<service>: 此WSDL文件所要描述的Web Service集合。 ●<port>: 每一個Port代表外界Client可以和此Service溝通的一個進入點,一個Port會指定一個 Binding的方式。 WHAT IS WSDL(WEB SERVICES DESCRIPTION LANGUAGE)? WSDL is an XML-based language for locating and describing Web services. WSDL stands for Web Services Description Language WSDL is based on XML WSDL is used to describe Web services WSDL is used to locate Web services WSDL is a W3C standard UDDI (UNIVERSAL DESCRIPTION, DISCOVERY, AND INTEGRATION) WHAT IS UDDI(UNIVERSAL DESCRIPTION, DISCOVERY, AND INTEGRATION)? UDDI is a directory service where companies can register and search for Web services. UDDI stands for Universal Description, Discovery and Integration UDDI is a directory for storing information about web services UDDI is a directory of web service interfaces described by WSDL UDDI communicates via SOAP UDDI is built into the Microsoft .NET platform DISCOVER SERVICE (1) --- WEBSERVICE EXPLORER DISCOVER SERVICE (2) ---FROM INTERNET http://www.xmethods.net/ve2/index.po EX.1-1 Goal : query the price of products the product ID EX.1-2 Client 端程式 EX.1-3 回傳結果 EX.2-1 Goal: find the web services by web service EX.2-2 EX.3 一:公司或個人的資訊查詢提供 Zip Code Information 查詢美國的郵遞區號 Delayed Stock Quote 查詢延遲20秒的即時股價 Barnes and Noble Price Quote 書本的ISBN跟價格查詢 California Traffic Conditions 即時的美國高速公路交通狀況 二:資料檔案的分散存取及服務 XMethods Filesystem 提供1M的檔案自由存取空間 FTP Service FTP服務 SMTP Server Mail的SMTP服務 三:數據遠端分散運算 Currency Exchange Rate 兩種匯率的換算 MillionaireQuiz 心理測驗 –你是百萬富翁嗎? (支援行動電話) LogFileParser 遠端分析你的IIS伺服器的log檔 CREATING A NETWORK APP Write programs that Run on (different) end systems Communicate over network e.g., web server software communicates with browser software No need to write software for networkcore devices Network-core devices do not run user applications Applications on end systems allows for rapid app development, propagation CLIENT-SERVER ARCHITECTURE server Always-on host Permanent IP address Server farms for scaling clients Communicate with server May be intermittently connected May have dynamic IP addresses Do not communicate directly with each other NETWORK APPLICATION Some network apps E-mail Web Instant messaging Remote login P2P file sharing Multi-user network games Streaming stored video clips Voice over IP Real-time video conferencing Grid computing Cloud computing APP-LAYER PROTOCOL DEFINES Types of messages exchanged, what fields in messages & how fields are delineated Message semantics e.g., request, response meaning of information in fields Rules for when and how processes send & respond to messages Public-domain protocols defined in RFCs allows for interoperability e.g., HTTP, SMTP Message syntax Proprietary protocols e.g., Skype WHAT TRANSPORT SERVICE DOES AN APP NEED? Data loss some apps (e.g., audio) can tolerate some loss other apps (e.g., file transfer, telnet) require 100% reliable data transfer some apps (e.g., multimedia) require minimum amount of throughput to be “effective” other apps (“elastic apps”) make use of whatever throughput they get Timing some apps (e.g., Internet telephony, interactive games) require low delay to be “effective” Throughput Security Encryption, data integrity, … WEB AND HTTP Web page consists of objects Object can be HTML file, JPEG image, Java applet, audio file,… Web page consists of base HTML-file which includes several referenced objects Each object is addressable by a URL Example URL: http://www.ccu.edu.tw/layer2/user_current_student.p hp HTTP OVERVIEW HTTP: hypertext transfer protocol Web’s application layer protocol client/server model Client browser that requests, receives, “displays” Web objects Server Web server sends objects in response to requests HTTP OVERVIEW (CONTINUED) Uses TCP client initiates TCP connection (creates socket) to server, port 80 server accepts TCP connection from client HTTP messages (application-layer protocol messages) exchanged between browser (HTTP client) and Web server (HTTP server) TCP connection closed HTTP is “stateless” server maintains no information about past client requests HTTP REQUEST MESSAGE Two types of HTTP messages: request, response HTTP request message: ASCII (human-readable format) HTTP REQUEST MESSAGE: GENERAL FORMAT UPLOADING FORM INPUT URL method Uses GET method Input is uploaded in URL field of request line: http://translate.google.com.tw/?hl=zh-TW&tab=wT# Post method Web page often includes form input Input is uploaded to server in entity body METHOD TYPES HTTP/1.0 GET POST HEAD asks server to leave requested object out of response HTTP/1.1 GET, POST, HEAD PUT uploads file in entity body to path specified in URL field DELETE deletes file specified in the URLfield TRACE CONNECT OPTIONS HTTP RESPONSE MESSAGE HTTP RESPONSE STATUS CODES In first line in server->client response message. A few sample codes: 200 OK 301 Moved Permanently request message not understood by server 404 Not Found requested object moved, new location specified later in this message (Location:) 400 Bad Request request succeeded, requested object later in this message requested document not found on this server 505 HTTP Version Not Supported 實驗 實驗步驟50% 問題討論40% 心得感想10% HTML What is HTML? HTML is a language for describing web pages. HTML stands for Hyper Text Markup Language HTML is not a programming language, it is a markup language A markup language is a set of markup tags HTML uses markup tags to describe web pages HTML Tags HTML tags are keywords surrounded by angle brackets like <html> HTML tags normally come in pairs like <b> and </b> The first tag in a pair is the start tag, the second tag is the end tag HTML Documents = Web Pages HTML documents describe web pages HTML documents contain HTML tags and plain text HTML documents are also called web pages JAVASCRIPT What is JavaScript? JavaScript was designed to add interactivity to HTML pages JavaScript is a scripting language A scripting language is a lightweight programming language JavaScript is usually embedded directly into HTML pages JavaScript is an interpreted language (means that scripts execute without preliminary compilation) Everyone can use JavaScript without purchasing a license PHP What is PHP? PHP stands for PHP: Hypertext Preprocessor PHP is a server-side scripting language, like ASP PHP scripts are executed on the server PHP supports many databases PHP is an open source software PHP is free to download and use What is a PHP File? PHP files can contain text, HTML tags and scripts PHP files are returned to the browser as plain HTML PHP files have a file extension of ".php", ".php3", or ".phtml" REFERENCE HTML/CSS/JavaScript http://www.w3schools.com/ PHP http://www.wasite.com/php0/ SQL http://www.1keydata.com/tw/sql/sql.html