งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

Session2 : SOA-Related Technology

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "Session2 : SOA-Related Technology"— ใบสำเนางานนำเสนอ:

1 Session2 : SOA-Related Technology
Dr. Nipat Jongsawat

2 หัวข้อนำเสนอ Remote Procedure Call XML และ XML Schema SOAP Message
SOAP with Attachment Web Services Enterprise Service Bus บทสรุป Dr. Nipat Jongsawat

3 Remote Procedure Call Dr. Nipat Jongsawat

4 Remote Procedure Call คืออะไร
RPC เป็นการเรียกใช้บริการจาก Entity ที่อยู่นอกขอบเขตระบบ หรือห่างกันออกไปผ่านเครือข่าย นิยมใช้ Proxy Pattern ในการ Implement เทคโนโลยีปัจจุบัน Java RMI Microsoft COM (Component Object Model) Technology เช่น การใช้ COM+, DCOM (Distributed COM), ActiveX Controls เป็นต้น Middleware เช่น CORBA Middleware Dr. Nipat Jongsawat

5 Java RMI (1) JVM#1 Entity 1 Entity 2
กรณี Entity 1 เรียกใช้บริการของ Entity 2 โดยทั้ง Entity 1 และ Entity 2 อยู่ใน JVM เดียวกัน Dr. Nipat Jongsawat

6 Java RMI (2) JVM#1 Entity 2 Entity 1 Proxy JVM#2 Entity 1 Entity 2
Stub JVM#2 Entity 1 Proxy Entity 2 การติดต่อข้ามเครื่องทำผ่าน Proxy ซึ่งจัดการเรื่องการ serialized ข้อมูลให้เป็น sequence of bit string ทั้งที่เป็นข้อมูลพื้นฐานและเป็น object Skeleton กรณี Entity 1 เรียกใช้บริการของ Entity2 โดยทั้ง Entity1 และ Entity 2 อยู่ต่าง JVM กัน Dr. Nipat Jongsawat

7 CORBA Platform#1 Platform#2 Entity 1 Entity 2 Proxy Entity 1 Proxy
Stub Skeleton CORBA Middleware การสื่อสารข้าม Heterogeneous Platform ทั้งในแง่ hardware, OS และ language โดย proxy ทำการ marshal และ unmarshal ข้อมูลเป็น sequence of bit string Dr. Nipat Jongsawat

8 XML และ XML Schema Dr. Nipat Jongsawat

9 XML คืออะไร ย่อมาจาก eXtensible Markup Language
เป็นภาษา Markup Language ที่มี Tag คล้ายกับภาษา HTML ได้รับการออกแบบมาให้ใช้อธิบายข้อมูลต่าง ๆ ได้ โดยผู้ใช้สามารถกำหนด Tag ที่ใช้ได้เอง ประกอบด้วย XML Document และ XML Schema ใช้ไฟล์ Document Type Definition (DTD) หรือไฟล์ XML Schema ในการอธิบายโครงสร้าง Tag ที่ใช้ใน XML Document ได้รับการดูแลโดย W3C Dr. Nipat Jongsawat

10 ตัวอย่าง XML Document inventory.xml <inventory> <drink>
<lemonade> <price>$2.50</price> <amount>20</amount> </lemonade> <drink> <pop> <price>$1.50</price> <amount>10</amount> </pop> </drink> <snack> <chips> <price>$4.50</price> <amount>60</amount> </chips> </snack> </inventory> inventory drink snack lemonade pop chips price amount XML มีโครงสร้างเป็น tree Dr. Nipat Jongsawat

11 XML Schema คืออะไร ไฟล์ที่ใช้อธิบาย Tag หรือโครงสร้างของ XML Document
เป็นทางเลือกหนึ่งกรณีที่ไม่ใช้ไฟล์ DTD เป็นไฟล์โครงสร้างแบบ XML เช่นกัน ได้รับการดูแลโดย W3C DTD มีข้อจำกัดคือ ไม่ใช่ XML document จึงเหมือนต้องเรียนอีกภาษาหนึ่ง 2. ไม่ support data type และผู้ใช้สร้าง data type เองไม่ได้ ไม่สามารถบังคับ format ของ data ได้ 3. XML document ไม่สามารถ reference DTD ได้มากกว่า 1 อัน 4. ไม่รองรับ namespace ทำให้เกิด name collision Dr. Nipat Jongsawat

12 ตัวอย่าง XML Schema XML Schema XML Document Dr. Nipat Jongsawat

13 SOAP Dr. Nipat Jongsawat

14 SOAP คืออะไร เป็น Protocol ในการสื่อสารกันระหว่าง Application
กำหนดรูปแบบในการส่งผ่านข้อความโดยผ่านเครือข่ายอินเทอร์เน็ต ไม่ขึ้นกับ Platform และภาษาคอมพิวเตอร์ที่พัฒนา มีโครงสร้างแบบ XML เช่นกัน SOAP Message เป็นข้อความที่ใช้ส่งผ่านเครือข่ายอินเทอร์เน็ต และเมื่อใช้ร่วมกับเว็บ สามารถส่งผ่าน Firewall ได้ไม่ยาก ได้รับการดูแลโดย W3C *** - เดิมย่อมาจาก Simple Object Access Protocol แต่ถูก drop ไป เพราะไม่เกี่ยวกับ OO บางคนก็ไม่ถือว่าเป็นชื่อย่อ บางคนเรียกว่าเป็น Service-Oriented Access Protocol เพราะนำมาใช้ในโลกของ Web Services - SOAP เป็น XML messaging protocol ที่ lightweight เพราะ เมื่อเทียบกับพวก CORBA, DCOM, RMI จะเบากว่าเพราะไม่มีองค์ประกอบ เช่น การ register และ locate service แต่อาศัยว่าไปพึ่งมาตรฐานอื่น เช่น UDDI (register) และ WSDL (locate) - SOAP ทำ type mapping จาก native language object โดยการ marshall ไปเป็น XML เพื่อจะใส่ใน SOAP message ได้ ปกติ SOAP toolkit จะมี predefined translator สำหรับ primitive types, collections, MIME attachment แต่ถ้าเป็น custom (class) object ก็ต้องสร้าง (class ที่เป็น) serializer และ deserializer เองและไป register ไว้ทั้งฝั่ง client และ server - สามารถใช้ติดต่อระหว่างโปรแกรมคนละภาษาคนละ OS ได้ เช่น Perl บน Solaris คุยกับ Java บน Windows 2000 ได้ และมี SOAP toolkit สำหรับพัฒนา SOAP message ออกมาโดยหลาย vendor เช่น Apache, IBM, Microsoft, BEA, Sun (SAAJ) ภาษาที่ใช้พัฒนาเช่น Java, C++, C#, VB, Perl - SOAP สามารถใช้ได้กับหลาย transport protocol เช่น HTTP, SMTP, FTP, JMS แต่ที่นิยมคือ HTTP - SOAP สามารถผ่าน firewall ได้ ไม่ต้องทำอะไรเพิ่ม ถ้าเป็น protocol เช่น CORBA, DCOM ต้องไปเปิด port บน firewall ดังนั้นในแง่ของ distributed system ซึ่งต้องติดต่อกับ external system นอก firewall จึงสะดวกขึ้น - SOAP ยังมีปัญหาเรื่อง interoperability ระหว่าง SOAP toolkit อยู่ อันเนื่องมาจาก SOAP spec ยังไม่ mature เต็มที่ และก็มีปัญหาเกี่ยวกับพวก guaranteed messaging และ security policy Dr. Nipat Jongsawat

15 โครงสร้าง SOAP Message
SOAP Envelope SOAP Message SOAP Header SOAP Body XML Message XML Message (RPC or Doc) SOAP สามารถ extend ได้โดยเพิ่มข้อมูลในส่วน Header เช่น ข้อมูลเพื่อทำ authentication ข้อมูลบัญชีเพื่อให้หักเงิน pay-per-use ข้อมูล context สำหรับใช้ปรับการให้บริการ etc. SOAP Message ≠ XML Message Dr. Nipat Jongsawat

16 การส่ง SOAP Message Service Application Client Application Internet
HTTP SOAP Message Client Application Internet Dr. Nipat Jongsawat

17 SOAP with Attachment (SwA)
SOAP มักจะมี XML Message อยู่ในส่วน Body SwA เป็นทางเลือกในการส่ง XML Message ขนาดใหญ่มาก ๆ หรือ Message ที่ไม่ได้เป็น XML-based เช่น รูปภาพ Binary ขนาดใหญ่ หรือแฟ้มเสียง MP3 ขนาดใหญ่ เป็นต้น ใช้ MIME multipart/related media type และการอ้างอิงโดยURI ในส่วนต่าง ๆ ของ MIME ถึง Attachment ที่ต้องการ ได้รับการดูแลโดย W3C ถ้าต้องการส่งนอกเหนือจาก text message คือ ส่ง custom data type เช่น array of data structures หรือ binary file, complex data file บาง SOAP toolkit ไม่ support attachment (SAAJ มี ส่วน Microsoft ใช้แบบ based on DIME) Dr. Nipat Jongsawat

18 โครงสร้าง SwA Part 1 SOAP Message Part 2 Attachment Image
MIME-Version:1.0 Content-Type:Multipart/Related;boundary=MIME_boundary;type=text/xml; start=“ --MIME boundary Part 1 Content-Type:text/xml;charset=utf-8 Content-Transfer-Encoding:8bit Content-ID:<data061400a.xml.apache-soap.joshyjjp”/> <?xml version=“1.0”?> <SOAP:Envelope> <theSignedForm href=“cid:gif061400a.xml.apache-soap.joshyjjp”/> </SOAP:Envelope> SOAP Message **** - ข้อมูลที่เกี่ยวข้องที่อยู่นอก SOAP Envelope เป็น format อะไรก็ได้ - MIME คือ Multipurpose Internet Mail Extension เป็น Internet standard สำหรับส่งข้อมูลไปใน นอกเหนือจาก US-ASCII (ภาษาอังกฤษ) เช่น text ในภาษาอื่น และ binary content ได้แก่ image, sound, movie, computer program หรือ multi-part message MIME เป็น component พื้นฐานใน HTTP ด้วย คือใช้แม้ว่าจะไม่ได้เป็นการส่ง - จากรูป ทั้งหมดนี้เป็น SOAP message package ที่สร้างโดยใช้ MIME Multipart/Related media type แต่ละส่วนของ message จะอยู่ใน MIME boundary คืออยู่ภายใต้ Content-Type header ซึ่งบอกถึงชนิดข้อมูลที่อยู่ในส่วนนี้ ส่วน Content-Transfer-Encoding บอกถึงการ encoding สำหรับส่วนนี้ ส่วน Content-ID จะบอก ID สำหรับใช้อ้างถึงข้อมูลส่วนนี้จากส่วนอื่นใน MIME package - ส่วน root ของ MIME message (สีชมพู) จะห่อ SOAP Envelope และมี Content-Type เป็น text/xml - ส่วนของ SOAP Header และ SOAP Body จะอ้างอิง attachment โดยใช้ attribute href จากรูปแสดงถึงข้อมูล theSignedForm ที่ส่งใน SOAP message จะอ้างถึง URI ของ ส่วน attachment - ถ้าใช้ HTTP binding ส่วน MIME parts ทั้งหมดจะเป็น HTTP body Part 2 Content-Type:image/gif Content-Transfer-Encoding:binary Content-ID:<gif061400a.xml.apache-soap.joshyjjp> …gif image Attachment Image Dr. Nipat Jongsawat

19 Web Services Dr. Nipat Jongsawat

20 Web Services คืออะไร เป็นทางเลือกหนึ่งของ Connection Technology ในการ Implement SOA ใช้มาตรฐานและเทคโนโลยีร่วมสมัยเป็นพื้นฐาน XML XML Schema SOAP WSDL UDDI HTTP Transport (Default) มีการกำหนด Web Services Architecture และ Web Services Stack เพื่อขยายขีดความสามารถในอนาคต Dr. Nipat Jongsawat

21 Web Services Architecture
Directory (UDDI) Consumer SOAP Finds Publishes Binds Service Contract (WSDL) - สอดคล้องกับ SOA architecture - จากรูป มองในลักษณะโปรแกรมติดต่อกัน UDDI ก็เป็น Web Service ตัวหนึ่งที่มีส่วนของ Service Contract บันทึกอยู่ Dr. Nipat Jongsawat

22 Web Services Stack (IBM)
*** - มีหลายหน่วยงานที่เสนอ Web Service Stack ที่แตกต่างกัน เช่น webservices.org, Stencil group, IBM, W3C มีทั้งแบบง่าย ๆ และแบบซับซ้อน จากรูปเป็น Web Service Stack ของ IBM ที่ค่อนข้างเป็นที่ยอมรับในอุตสาหกรรม คือไม่ง่ายไปและไม่ซับซ้อนไป (Web Service Stack ของ W3C ซับซ้อนที่สุด) - แต่ละ layer จะ built on top layer ล่าง - MQ คือ MQ series เป็น messaging system ตอนนี้คือ WebSphere MQ (อยู่ในตัว WebSphere Business Process Integrator) - WSEL คือ Web Service Endpoint Language อธิบาย non-operational characteristics ของ service endpoint เช่น QoS properties - WSFL คือ Web Service Flow Language เป็นภาษาที่ใช้กับ MQ series workflow ตอนนี้ merge กับ Microsoft XLANG ซึ่งเป็น workflow ของ BizTalk กลายเป็น BPEL ซึ่งเป็นที่ยอมรับในอุตสาหกรรม - TPA เป็นการตกลงระหว่าง 2 partners เกี่ยวกับ protocol ที่ใช้ และการ aggregate service กัน คือเป็นการกำหนด process definition ว่าจะแลกเปลี่ยนอะไรกัน ส่งต่ออะไรกันอย่างไร เมื่อไร - QoS, Management, Security จะ apply กับทุก layer Dr. Nipat Jongsawat

23 Enterprise Service Bus
Dr. Nipat Jongsawat

24 Enterprise Service Bus คืออะไร
ESB เป็นตัวสนับสนุนการ Implement SOA มี Architecture ที่เอื้อให้ Application และ Resource ต่าง ๆ ที่มีอยู่ในเครือข่ายทำงานร่วมกันแบบองค์รวม (Integration and Reuse) ในระดับองค์กรธุรกิจ มีช่องทางให้ระบบต่าง ๆ เชื่อมต่อกันได้แบบ Integrated Bus ทั้งที่เป็น SOA และ Non-SOA Applications (Legacy System) โดยใช้มาตรฐานกลางร่วมกัน มีระบบการจัดการส่วนกลางให้ เช่น Security, QoS, Services Discovery, Addressing เป็นต้น มี ESB Basic Architecture เพื่อให้ผู้พัฒนาสามารถใช้อ้างอิงได้ อย่างไรก็ตามแต่ละบริษัทมีวิธีจัดทำ ESB แตกต่างกันออกไป *** - เป็น software infrastructure สำหรับทำ enterprise-wide SOA โดยมี standard-based messaging engine (bus) สำหรับเชื่อมต่อระบบ และมี standard เกี่ยวกับ service interface ข้อมูลส่งผ่านเป็น XML และสามารถติดต่อด้วย transport medium ใดก็ได้ service ติดต่อกันได้ทั้งแบบ synchronous, asynchronous, point-to-point, publish-subscribe - อาจมองเป็น component ที่ช่วยให้ SOA implementation สำหรับ large-scale application บริหารจัดการได้ในเทคโนโลยีที่หลากหลายในองค์กร มี development tool ให้ ดูแลเรื่องการ validate และ transform message, content-based routing (pub-sub), security, load balancing etc. สามารถเชื่อมต่อหลากหลายเทคโนโลยี เช่น Java, .NET, mainframes, databases - อาจจะดูคล้าย EAI ที่มี bus นำส่งข้อมูลให้ แต่ application ใน EAI ยังเป็น monolithic ยังไม่พูดถึง service - เป็น abstraction ที่ครอบบน enterprise messaging system อีกที ไม่จำเป็นต้องเป็น Web-Service-based (อาจ adopt WSDL เป็นภาษามาตรฐานที่ใช้อธิบาย contract แต่ไม่ได้เป็น web service ก็ได้) หรืออาจจะเป็นโดยรองรับ SOAP, WSDL, UDDI, WS-Security, WS-Reliable Messaging ก็ได้ พวก vendor ก็เริ่มมาอิง Web Service standard มากขึ้น เพื่อให้ขายของได้ เช่น support BPEL - การ deploy service เพื่อใช้งาน ถ้าเป็น Web service และใช้ HTTP จะต้องไปฝากไว้กับ Web server แต่ถ้าเป็น ESB จะสามารถ deploy service กับตัว bus เองได้เลย (ในรูปจึงตัดส่วน connect ผ่านก้อนเมฆออกเพราะไม่ต้องพึ่ง Web server ก็ได้ หากระบบข้างนอกจะติดต่อเข้ามาใน ESB ขององค์กร ก็ต้องทำอะไรบางอย่างให้สามารถเชื่อมต่อเข้ามา) Dr. Nipat Jongsawat

25 ESB Basic Architecture
New CRM Application Partner Application ESB Infrastructure Discovery Security Dev Tools Standards Post GL Check Out Get Product Info Reverse GL GL Legacy System Inventory Legacy System Dr. Nipat Jongsawat

26 บทสรุป Web Services และ ESB เป็นเทคโนโลยีที่ได้รับความนิยมในการ Implement หลักการของ SOA ในองค์กร มาตรฐานและเทคโนโลยีที่เกี่ยวข้องในการพัฒนาแบบ SOA มีมากมาย และเพิ่มขึ้นเรื่อย ๆ Dr. Nipat Jongsawat


ดาวน์โหลด ppt Session2 : SOA-Related Technology

งานนำเสนอที่คล้ายกัน


Ads by Google