วันเสาร์ที่ 21 มิถุนายน พ.ศ. 2551

จาวา

Summary
จาวา (Java) คืออะไร ? ถ้าเราดูความหมายของคำว่า จาวา จะมีความหมายหลายอย่าง ได้แก่

  • ภาษาจาวาที่ใช้เขียนโปรแกรมจาวา
  • Java platform ที่ใช้ในการรันโปรแกรมจาวา
  • เครื่องดื่มกาแฟ (แสลงในภาษาอังกฤษ) นี่เป็นเหตุผลว่าทำไมเรามักเห็นปกหนังสือจาวามีแก้วกาแฟอยู่เสมอ
  • เกาะชวาในประเทศอินโดนิเซีย (เกาะชวา จะเขียนในภาษาอังกฤษเป็น Java)

ความหมายที่เราคุ้นเคยก็คงจะเป็นภาษาจาวาและ Java platform ที่รันโปรแกรมจาวา แต่ถ้าเรามองจาวาในมุมกว้าง จาวาจะเป็น technology ที่ใช้ในการพัฒนาโปรแกรมแบบต่าง ๆ ซึ่งได้แก่ application, applet, web application (servlet & JSP), EJB, และ midlet โดยโปรแกรมเหล่านี้จะมีลักษณะพิเศษที่ต่างจากโปรแกรมที่เขียนขึ้นในภาษาอื่น อย่าง C หรือ C++ คือสามารถทำงานได้หลาย platform* (อย่างเช่น Windows, Solaris, Linux) โดยไม่จำเป็นต้องเขียนใหม่ หรือ compile ใหม่ ทำให้เราสามารถใช้โปรแกรมเดิมที่เคยพัฒนามาแล้วบน platform หนึ่งไปใช้งานบน platform อื่น ๆ ได้โดยง่าย ซึ่งช่วยประหยัดเวลาและทรัพยากรในการที่จะทำให้โปรแกรมหนึ่งทำงานได้มากกว่าหนึ่ง platform ตัวอย่างเช่น ถ้าเราเขียนโปรแกรมจาวาขึ้นมาบน Windows โปรแกรมที่เราเขียนขึ้นนี้ก็สามารถที่จะทำงานบน Solaris, Linux หรือ Mac ได้โดยไม่ต้องแก้ไขอะไรเลย ไม่ต้อง compile ใหม่ เราสามารถนำ class files ของโปรแกรมที่เราเขียนขึ้นไปใช้งานบน platform อื่น ๆ ได้ทันที


เทคโนโลยีจาวา มีองค์ประกอบหลักที่สำคัญสองอย่าง ที่ทำให้โปรแกรมจาวาสามารถทำงานได้มากกว่าหนึ่ง platform คือ

  • ภาษาจาวา ซึ่งเป็นภาษาแบบวัตถุที่ใช้ในการเขียนและพัฒนาโปรแกรมจาวา
  • Java platform คือ platform หรือสภาพแวดล้อมที่ใช้ในการรันโปรแกรมจาวา โปรแกรมจาวาจะทำงานบน Java platform เท่านั้น Java platform จะประกอบไปด้วยสองอย่าง คือ Java VM (JVM) และ runtime library โปรแกรมจาวาที่เราเขียนขึ้นจะทำงานบน platform ใดก็ได้ที่มี Java platform ทำงานอยู่

ทำไมหลายคนถึงเลือกใช้จาวา ? จาวามีข้อดีหลัก ๆ อยู่หลายข้อ ดังนี้

  • โปรแกรมจาวาที่เขียนขึ้นสามารถทำงานได้หลาย platform โดยไม่จำเป็นต้องแก้ไขหรือ compile ใหม่ ทำให้ช่วยลดค่าใช้จ่ายและเวลาที่ต้องเสียไปในการ port หรือทำให้โปรแกรมใช้งานได้หลาย platform
  • ภาษาจาวาเป็นภาษาเชิงวัตถุ ซึ่งเหมาะสำหรับพัฒนาระบบที่มีความซับซ้อน การพัฒนาโปรแกรมแบบวัตถุจะช่วยให้เราสามารถใช้คำหรือชื่อ ต่าง ๆ ที่มีอยู่ในระบบงานนั้นมาใช้ในการออกแบบโปรแกรมได้ ทำให้เข้าใจได้ง่ายขึ้น
  • ภาษาจาวามีความซับซ้อนน้อยกว่าภาษา C++ ทำให้ใช้งานได้ง่ายกว่าและลดความผิดพลาดได้มากขึ้น
  • ภาษาจาวามีการตรวจสอบข้อผิดพลาดทั้งตอน compile time และ runtime ทำให้ลดข้อผิดพลาดที่อาจเกิดขึ้นในโปรแกรม และช่วยให้ debug โปรแกรมได้ง่าย
  • ภาษาจาวาถูกออกแบบมาให้มีความปลอดภัยสูงตั้งแต่แรก ทำให้โปรแกรมที่เขียนขึ้นด้วยจาวามีความปลอดภัยมากกว่าโปรแกรมที่เขียนขึ้นด้วยภาษาอื่น
  • มี IDE, application server, และ library ต่าง ๆ มากมายสำหรับจาวาที่เราสามารถใช้งานได้โดยไม่ต้องเสียค่าใช้จ่าย ทำให้เราสามารถลดค่าใช้จ่ายที่ต้องเสียไปกับการซื้อ tool และ s/w ต่าง ๆ


อย่างไรก็ตาม จาวาเองก็มีข้อเสียอยู่ด้วยเหมือนกัน ได้แก่

  • ทำงานได้ช้ากว่า native code (โปรแกรมที่ compile ให้อยู่ในรูปของภาษาเครื่อง) หรือโปรแกรมที่เขียนขึ้นด้วยภาษาอื่น อย่างเช่น C หรือ C++ ทั้งนี้ก็เพราะว่าโปรแกรมที่เขียนขึ้นด้วยภาษาจาวาจะถูกแปลงเป็นภาษากลางก่อน แล้วเมื่อโปรแกรมทำงานคำสั่งของภาษากลางนี้จะถูกเปลี่ยนเป็นภาษาเครื่องอีกทีหนึ่ง ทีล่ะคำสั่ง (หรือกลุ่มของคำสั่ง) ณ runtime ทำให้ทำงานช้ากว่า native code ซึ่งอยู่ในรูปของภาษาเครื่องแล้วตั้งแต่ compile โปรแกรมที่ต้องการความเร็วในการทำงานจึงไม่นิยมเขียนด้วยจาวา
  • tool ที่มีในการใช้พัฒนาโปรแกรมจาวามักไม่ค่อยเก่ง ทำให้หลายอย่างโปรแกรมเมอร์จะต้องเป็นคนทำเอง ทำให้ต้องเสียเวลาทำงานในส่วนที่ tool ทำไม่ได้ ถ้าเราดู tool ของ MS จะใช้งานได้ง่ายกว่า และพัฒนาได้เร็วกว่า (แต่เราต้องซื้อ tool ของ MS และก็ต้องรันบน platform ของ MS)

*platform คือสภาพแวดล้อมที่โปรแกรมทำงานอยู่ ส่วนมากเราจะพูดถึง platform หนึ่ง ๆ โดยอิงจากระบบปฏิบัติการที่ใช้ (operating system) และ hardware ที่ใช้ อย่างเช่น

  • Windows platform จะหมายถึงสภาพแวดล้อมที่โปรแกรมทำงานบนระบบปฏิบัติการ Windows ซึ่งทำงานโดยใช้ CPU x86 ของ Intel
  • Linux platform จะหมายถึงสภาพแวดล้อมที่โปรแกรมทำงานบนระบบปฏิบัติการ Linux ซึ่งทำงานโดยใช้ CPU ตระกูล x86 ของ Intel
  • Solaris/SPARC platform จะหมายถึงสภาพแวดล้อมที่โปรแกรมทำงานบนระบบปฏิบัติการ Solaris ซึ่งทำงานโดยใช้ CPU SPARC
  • Solaris/x86 platform จะหมายถึงสภาพแวดล้อมที่โปรแกรมทำงานบนระบบปฏิบัติการ Solaris ซึ่งทำงานโดยใช้ CPU ตระกูล x86 ของ Intel

Directory Server

Directory ServerในโปรโตคอลLDAPนี้จะมีระบบการทำงานที่เป็นการบริหารงานจากส่วนกลางในส่วนกลางนี้จะมีการแบ่งหน้าที่การทำงานอกเป็นส่วน ๆ (เปรียบเทียบได้กับสมุดหน้าเหลืองที่มีการเก็บข้อมูลไว้เป็นหมวดหมู่) เมื่อผู้ใช้ (Client หลาย ๆ เครื่อง) ต้องการเข้ามาใช้งานในส่วนที่ต้องการ LDAP Server ก็จะกระจายข้อมูลไปให้ Client ได้อย่างรวดเร็ว เมื่อClient ต้องการค้นหาข้อมูลก็สามารถทำได้อย่างสะดวกรวดเร็วได้เช่นกันจะเห็นได้ว่าDirectoryจะทำงานคล้ายกับฐานข้อมูลที่มีการจำกัดชนิดของข้อมูลที่จะทำการเก็บลงใน Directory ข้อมูลที่จะทำการเก็บลงจะต้องมีการตรวจสอบความถูกต้องด้วย แต่ความจริงแล้ว Directory มีความแตกต่างจากฐานข้อมูลตรงที่ Directory จะมีการใช้งานอย่างไม่จำกัดเตรียมรับกับสถานการณ์ที่ Client เข้ามาใช้งานมาก ๆ เครื่อง Server ที่ให้การบริการอยู่ก็สามารถรองรับการทำงานได้ จะเห็นได้ว่าในปัจจุบันนี้ในองค์กรต่าง ๆ ได้มีการนำ Directory Server มาใช้กันอย่างแพร่หลาย เพราะสามารถควบคุมการเข้าใช้งานในระบบต่าง ๆ ในการเข้าถึงข้อมูลของ Server รวมถึงการรักษาความปลอดภัย แต่ Directory Server จะเหมาะกับงานที่มีการอ่านมากกว่าการบันทึกข้อมูล Directory จึงออกแบบมาให้สามารถรองรับการทำงานจาก Client ได้หลาย ๆ แพลทฟอร์ม ได้พร้อม ๆ กัน

Mail server

คือ เครื่องบริการรับ-ส่งจดหมายสำหรับสมาชิก บริการที่มีให้ใช้เช่น ส่งจดหมาย รับจดหมาย ส่ง attach file หรือการมี address book เป็นต้น ตัวอย่าง mail server ที่เป็นที่รู้จักทั่วไป เช่น hotmail.com หรือ thaimail.com เป็นต้น

Web server

คือ บริการ HTTP(HyperText Transfer Protocol) เพื่อให้ผู้ใช้สามารถอ่านข้อมูล ทั้งภาพ และเสียง จากเครื่องบริการ ผ่าน Browser เช่นบริการ http://www.thaiall.com หรือ http://localhost เป็นต้น
เครื่องบริการ ที่รอรับคำร้องขอจาก web browser ข้อมูลที่จะส่งไปอาจเป็นเว็บเพจ ภาพ หรือเสียง เป็นต้น สำหรับโปรแกรมที่ได้รับความนิยม ให้นำมาเปิดบริการ web คือ Apache web server หรือ Microsoft web server

Application Server

Application Server คือ Server ที่รันโปรแกรมประยุกต์ได้ด้วย โดยการทำงานสอดคล้องกับ Cliente เช่น Mail Server (รัน MS Exchange Server) Proxy Server (รัน Proxy Server) หรือ Web Server (รัน Web Server Program เช่น Xitami , Apache )

File server

ในระบบเครือข่าย (network) โดยปกติจะมีคอมพิวเตอร์ เครื่องหนึ่ง เรียกว่าเครื่องบริการแฟ้ม ซึ่งจะใช้เป็นที่เก็บ ทั้งโปรแกรม และแฟ้มข้อมูลที่จะใช้ร่วมกันไว้ในฮาร์ดดิสก์ ผู้ใช้คอมพิวเตอร์ในเครือข่ายเดียวกัน สามารถเรียกใช้ โปรแกรมและแฟ้มข้อมูลเหล่านั้นพร้อมกันได้ โดยเรียกจาก เครื่องบริการแฟ้มดังกล่าว เครื่องบริการแฟ้ม นี้จะทำหน้าที่ ดูแลการใช้แฟ้มข้อมูล และการส่งข้อมูลไปให้ตามที่มีผู้ต้องการเรียกมา

Client / Server Network

เป็นระบบการทำงานแบบ Distributed Processing หรือการประมวลปลแบบกระจายโดยจะแบ่งกันประมวลผลระหว่าง เครื่องเซร์ฟเวอร์กับเครื่องเวิร์กสเตชั่น แทนที่ Applications จะวิ่งทำงานอยู่เฉพาะเครื่องเซิร์ฟเวอร์ ก็แบ่งการคำนวนของโปรแกรม Applications มาทำงานบนเครื่องเวร์กสเตชั่นด้วย และเมื่อใดที่เครื่องเวอรืกสเตชั่นต้องการผลลัพฑ์ของข้อมมูลบางส่วน จะมีการเรียกใช้ไปยังเครื่องเซิร์ฟเวอร์เพื่องให้เซิร์ฟเวอร์นำเฉพาะข้อมูลบางส่วนเท่านั้นส่งกลับมาให้เครื่องเวิร์กสเตชั้น เพื่อทำการคถำนวนข้อมูลนั้นต่อไป

Peer To Peer Network

เป็นระบบที่เครื่องเวิร์กสเตชั่นทุกเครื่องบนระบบเน็ทเวิร์กที่มีฐานะเท่าเทียมกันคือ ทุกเครื่องสามารถที่จะใช้ไฟล์ในเครื่องอื่นๆ ได้ และสามารถให้เครื่องอื่นมาใช้ไฟล์ของตนได้เช่นกัน ระบบ Peer To Peer มีการทำงานแบบ Distributed System โดยจะกระจายทรัพยากรณ์ต่างๆ ไปสู่เวิร์สเตชั้นอื่นๆ แต่จะมีปัญหาเรื่องการรักษาความปลอดภัยเพราะข้อมูลที่เป็นความลับ ถูกส่งออกไปสู่เวิร์กสแตชั่นอื่นๆ เช่นกัน โปรแกรมที่มีความสามารถทาง Peer To Peer และเป็นที่รู้จักกันคือ Windows for Workgroup และ Personal Network

Internet Network

อินเทอร์เน็ต(Internet) คือ เครือข่ายนานาชาติ ที่เกิดจากเครือข่ายขนาดเล็กมากมาย รวมเป็นเครือข่ายเดียวทั้งโลก หรือเครือข่ายสื่อสาร ซึ่งเชื่อมโยงระหว่างคอมพิวเตอร์ทั้งหมด ที่ต้องการเข้ามาในเครือข่าย สำหรับคำว่า internet หากแยกศัพท์จะได้มา 2 คำ คือ คำว่า Inter และคำว่า net ซึ่ง Inter หมายถึงระหว่าง หรือท่ามกลาง และคำว่า Net มาจากคำว่า Network หรือเครือข่าย เมื่อนำความหมายของทั้ง 2 คำมารวมกัน จึงแปลว่า การเชื่อมต่อกันระหว่างเครือข่าย

Extranet

เอ็กซ์ทราเน็ต หรือเครือข่ายภายนอกองค์กร ก็คือระบบเครือข่ายซึ่งเชื่อมเครือข่ายภายในองค์กร (INTRANET) เข้ากับระบบคอมพิวเตอร์ที่อยู่ภายนอกองค์กร เช่น ระบบคอมพิวเตอร์ของสาขาของผู้จัดจำหน่าย หรือของลูกค้า เป็นต้น โดยการเชื่อมต่อเครือข่ายอาจเป็นได้ทั้งการเชื่อมต่อโดยตรง (Direct Link) ระหว่าง 2 จุด หรือการเชื่อมต่อแบบเครือข่ายเสมือน (Virtual Network) ระหว่างระบบเครือข่าย Intranet จำนวนหลายๆ เครือข่ายผ่านอินเทอร์เน็ตก็ได้

Intranet

อินทราเน็ต(Intranet) คือ ระบบเครือข่ายภายในองค์กร เป็นบริการ และการเชื่อมต่อคอมพิวเตอร์เหมือนกันอินเทอร์เน็ต แต่จะเปิดให้ใช้เฉพาะสมาชิกในองค์กรเท่านั้น เช่น อินทราเน็ตของธนาคารแต่ละแห่ง หรือระบบเครือข่ายมหาดไทย ที่เชื่อมศาลากลางทั่วประเทศ เป็นต้น เป็นการสร้างระบบบริการข้อมูลข่าวสาร ซึ่งเปิดบริการคล้ายกับอินเทอร์เน็ตเกือบทุกอย่าง แต่ยอมให้เข้าถึงได้เฉพาะคนในองค์กรเท่านั้น เป็นการจำกัดขอบเขตการใช้งาน ดังนั้นระบบอินเทอร์เน็ตในองค์กร ก็คือ "อินทราเน็ต" นั่นเอง แต่ในช่วงที่ชื่อนี้ยังไม่เป็นที่นิยม ระบบอินทราเน็ต ถูกเรียกในหลายชื่อ เช่น Campus network, Local internet, Enterprise network เป็นต้น

ระบบเครือข่าย WAN

WAN (Wide Area Network)ระบบเครือข่ายกว้างไกล หรือเรียกได้ว่าเป็น World Wide ของระบบเน็ตเวิร์ก โดยจะเป็นการสื่อสารในระดับประเทศ ข้ามทวีปหรือทั่วโลก จะต้องใช้มีเดีย(Media) ในการสื่อสารขององค์การโทรศัพท์ หรือการสื่อสารแห่งประเทศไทย (คู่สายโทรศัพท์ dial-up / คู่สายเช่า Leased line / ISDN) (lntegrated Service Digital Network สามารถส่งได้ทั้งข้อมูล เสียง และภาพในเวลาเดียวกัน)

ระบบเครือข่ายแบบ WAN

ระบบเครือข่ายแบบ WAN

ประเภทของเครือข่ายระยะไกล

เครือข่าย สามารถแบ่งเป็น 2 ประเภทใหญ่ ๆ คือ

เครือข่ายส่วนตัว (Private Network)
เป็นการจัดตั้งระบบเครือข่ายซึ่งมีการใช้งานเฉพาะองค์การที่เป็นเจ้าของเครือข่ายอยู่ เช่น องค์การที่มีสาขาอาจทำการสร้างระบบเครือข่าย เพื่อเชื่อมต่อระหว่างสำนักงานใหญ่กับสาขาที่มีอยู่ เป็นต้น อย่างไรก็ดี ในระดับกายภาพ (Physical Layer) ของการเชื่อมต่อแบบเครือข่ายส่วนตัวจะยังคงต้องใช้ช่องทางการสื่อสารข้อมูลสาธารณะ เช่น สายโทรศัพท์ สายเช่า ดาวเทียม เป็นต้น

การจัดตั้งระบบเครือข่ายส่วนตัวมีจุดเด่นในเรื่องของการรักษาความลับของข้อมูล สามารถควบคุมดูแลเครือจ่ายและขยายเครือข่ายไปยังจุดที่ต้องการ ส่วยจ้อเสียคือในกรณีที่ได้ได้มีการส่งข้อมูลต่อเนื่องตลอดเวลา จะเสียค่าใช้จ่ายสูงมากเมื่อเทียบกับการส่งข้อมูลผ่านเครือข่ายสาธารณะและหากมีการส่งข้อมูลระหว่างสาขาต่าง ๆ จะต้องมีการจัดหาช่องทางสื่อสารเชื่อมโยงระหว่างแต่ละสาขาด้วย รวมทั้งอาจไม่สามาถจัดหาช่องทางการสื่อสารไปยังพื้นที่ที่ต้องการได้

เครือข่ายสาธารณะ (Public Data Network)
เครือข่ายสาธารณะ (PDNs) หรือที่บางครั้งเรียกว่า เครือข่ายมูลค่าเพิ่ม (Value Assed) เป็นระบบเครือข่ายระยะไกล (WAN) ซึ่งองค์กรที่ได้รับสัมปทานทำการจัดตั้งขึ้น เพื่อให้บุคคลทั่วไปหรือองค์กรอื่น ๆ ที่ไม่ต้องการวางเครือข่ายเองสามารถแบ่งกันเช่าใช้งานได้ โดยการจัดตั้งอาจทำการวางโครงข่ายช่องทางการสื่อสารเอง หรือเช่าใช้ช่องทางการสื่อสารสาธารณะก็ได้ ระบบเครือข่ายสาธารณะ จะนิยมใช้ในการเชื่อมต่อระบบเครือข่ายแบบ WAN กันมาก เนื่องจากมีค่าใช้จ่ายต่ำกว่าการจัดตั้งเครือข่ายส่วนตัว สามารถใช้งานได้ทันทีโดยไม่ต้องเสียเวลาในการจัดตั้งเครือข่ายใหม่ รวมทั้งมีบริการให้เลือกอย่างหลาย ๆ ซึ่งแตกต่างกันไปทั้งในส่วนของราคา ความเร็ว ขอบเขตพื้นที่บริการ และความเหมาะสมกับงานแบบต่าง ๆ

ความหมายของระบบ LAN

ความหมายของระบบ LAN ย่อมาจาก Local Aria Network ซึ่งแปลได้ว่า “ระบบเครือข่ายขนาดเล็ก” ที่ต้องประกอบด้วย Server และ Client โดยจะต้องมีคอมพิวเตอร์ตั้งแต่ 2 เครื่องขึ้นไป ซึ่งจะทำหน้าที่เป็นผู้ให้บริการและผู้ใช้โดยที่ผู้ให้บริการซึ่งเป็น Server นั้น จะเป็นผู้ควบคุมระบบว่าจะให้การทำให้การทำงานเป็นเช่นไร และในส่วนของ Server เองจะต้องเป็นเครื่องคอมพิวเตอร์ที่มีสถานะภาพสูง เช่นทำงานเร็ว สามารถอ้างหน่วยความจำได้มาก มีระดับการประมวลผลที่ดี และจะต้องเป็นเครื่องที่จะต้องมีระยะการทำงานที่ยาวนาน เพราะว่า Server จะถูกเปิดให้ทำงานอยู่ตลอดเวลา จึงเป็นสิ่งสำคัญอีกอย่างหนึ่ง