ݺߣ

ݺߣShare a Scribd company logo
J2EE คือ อะไร
       ก่อนที่จะทราบถึงความหมายของ J2EE มาทำาความเข้าใจกับคำาว่า
Middleware กันก่อน Middleware คือ
ซอฟต์แวร์ประเภทหนึ่งที่ทำาหน้าที่เป็นตัวกลาง เป็นตัวประสานและบริการ
Service ต่างๆ ให้กับ Application เช่น
การทำา Load Balancing , Transaction, Resource Pooling และ
Message Oriented Service เป็นต้น ซึ่งในระบบงาน
ขนาดใหญ่ (Enterprise Application) จำาเป็นต้องใช้งาน Service เหล่า
นี้เป็นอย่างมาก ซึ่งในอดีต องค์กรต่างๆ ได้
พัฒนาซอฟต์แวร์ประเภท Middleware ขึ้นมาใช้งานเอง โดยจะมี Service
ต่างๆ แล้วแต่ละองค์กรจะพัฒนาขึ้นมา
ในปัจจุบันความต้องการ Service ของ Middleware มีมากขึ้น เพื่อรองรับ
การดำาเนินงานทางธุรกิจที่มีความ
สลับซับซ้อนมากขึ้น จึงต้องการระบบงานที่ยืดหยุ่นสามารถรองรับการ
เปลี่ยนแปลงได้อย่างรวดเร็ว เพื่อให้
สามารถแข่งขันกับคู่แข่งทางธุรกิจได้ ประกอบกับการที่จะพัฒนา
Middleware ขึ้นมาใช้เองนัน เป็นเรื่องที่ยาก มี
                               ้
โอกาสที่จะล้มเหลวสูง ด้วยสาเหตุดังกล่าว จึงได้มีผู้มีผลิต Middleware
ออกมาจำาหน่าย โดยเรียกว่า Application
Server จึงจะบรรจุ Service ต่างๆ ไว้ ทำาให้ องค์กรไม่ต้องพัฒนา Service
ขึ้นใช้เอง ซึ่งจะทำาให้องค์กรมุ่งคิด หรือ
ทำาเฉพาะที่เป็น Business Logic ใน Business Domain ของตัวเองเพียง
อย่างเดียวเท่านั้น วิธีการก็คือพัฒนา
ซอฟต์แวร์ขึ้นมา แล้วนำาไป Deploy บน Application Server ที่เตรียม
สภาวะแวดล้อมขณะ Runtime ไว้ให้โดยมี
การประกาศความต้องการ Service ให้ Application Server เตรียม
Service ต่างๆ ไว้บริการ
J2EE ก็คือ Specification ของ Application Server ซึ่งมีบริษัท Sun
Microsystem เป็นเจ้าภาพ โดยเชิญ บริษัท
ต่างๆ มากมาย มาร่วมกันจัดทำา ซึ่งจะทำาให้ Specification ที่ได้สามารถ
ตอบสนองกับความต้องการของผู้ใช้ และ
ผู้สร้างได้เป็นอย่างดีซึ่งตรงนี้เป็นจุดแข็งจุดหนึ่งของ J2EE เพราะทำาให้ไม่
เกิดการกำาหนด Specification ที่เอื้อ
ประโยชน์กับบริษัท Software บริษัทใด บริษัทหนึ่ง
       Java Enterprise Edition Platform เป็น Multi Tier Application Model นักพัฒนาแบ่ง
Application Logic เป็น Component โดยแบ่งตามหน้าที่การทำางาน       และติด แต่ละ
Component นั้นในแต่ละเครื่องซึ่งขึ้นอยู่ว่า เครื่องนั้นเป็น Tier อะไร
โดยแต่ละ Tier มีดังนี้

   1. Client อาจจะเป็นอย่างใดอย่างหนึ่งดังต่อไปนี้

       Web client

       ๐ ประกอบด้วย

               -    เซตของ Dynamic Web Page

               -    Browser ที่ใช้แสดงหน้าจอของ Page

       ๐ บางครั้งเราจะเรียกว่า Thin Client

               -    เพราะการทำางานหนักๆนั้นเราจะให้ทำาใน Business Tier
       Application Client

       ๐ รันบนระบบของ Client เอง

       ๐ มี Interface ที่มากกว่า Web Browser
               -Swing, AWT

       ๐ บางครั้งอาจจะไม่มี Interface เลย เป็น Command Line
๐ โดยทั่วไปจะเข้าใช้ Business Tier โดยตรงไม่ต้องผ่าน Web Tier

  2. Web Tier มีส่วยประกอบดังนี้

     ๐ Servlets เป็นจาวา คลาสในการที่คอยรอรับการเข้ามาของ Request และ สร้าง
     Response ตอบกลับ

     ๐ JSP มีการทำางานที่เหมือนกับ Servlet แต่จะสามารถรวม กระบวนการส่วนที่
     เป็น Dynamic เข้ากับ HTML code ที่เป็น static ไว้ในหน้าเพจเดียวกัน
  3. Business Tier

     ๐ มี EJB เป็นส่วนที่ทำาหน้าที่ในการจัดการการทำางานของ Business Logic

  4. EIS Tier เป็นส่วนของฐานข้อมูล

โดย ในเอกสารฉบับนี้เราจะสนใจกับประสิทธิภาพของระบบ ที่เกี่ยวข้องกับ Web
Application เท่านั้น
Scalability คือ ระบบของเรา วันนี้มีคนใช้ 100 คน วันหน้า ถ้าคนใช้เพิ่มเป็น 1000 คน
ระบบของเราต้องสามารถรองรับได้ ใน Distributed System ก็สามารถทำาได้โดยการ
เพิ่ม Component เข้าไป
Clustering
คือการจัดกลุ่มของคอมพิวเตอร์หลายๆตัวเพื่อให้สามารถทำางานได้เหมือนกับเป็น
คอมพิวเตอร์ตัวเดียวกัน

ดังนั้นไม่ว่า User เข้ามาใช้งานเครื่องใดภายในกลุ่มก็จะรู้สึกเหมือนใช้งาน
คอมพิวเตอร์เครื่อง เดียวกัน คุณสมบัติสำาคัญของการทำา Clustering คือการทำา
Replication โดยในแง่ของ Web Application คือการทำา Session Replication ซึ่งตามปกติแล้ว
Session ของ User จะถูกจัดเก็บใน Web Server เครื่องที่ User กำาลังใช้งานอยู่เท่านั้น แต่
การทำา Clustering จะเป็นการคัดลอก (Replicate) Session นั้นไปยัง Web Server อื่นภายใน
กลุ่มด้วย ทำาให้ไม่ว่า User เข้าไปใช้งานใน Server เครื่องใดก็จะมี Session ของ User อยู่
ด้วยเสมอ

Load balancing
คือการจัดกลุ่มของคอมพิวเตอร์หลายๆตัวเพื่อแบ่งงานกัน หรือกระจาย load การใช้
งานของ user ไปยังคอมพิวเตอร์ภายในกลุ่ม เพื่อให้สามารถรับจำานวน user ที่เข้ามา
ใช้งานได้มากขึ้น หรือสามารถรับงานที่เข้ามาได้มากขึ้น นอกจากนั้นยังมี
คุณสมบัติของ Fail Over คือหากมีคอมพิวเตอร์ภายในกลุ่มไม่สามารถทำางานได้ เช่น
Down อยู่ หรือไม่สามารถรับงานหรือ user เพิ่มได้เนื่องจาก resource ที่ใช้ทำางานไม่พอ
ตัว Load Balancer ที่เป็นตัวแจก load ให้คอมพิวเตอร์ภายในกลุ่มก็จะส่ง load ไปยัง
คอมพิวเตอร์เครื่องอื่นๆแทน จนกว่าคอมพิวเตอร์เครื่องนั้นจะกลับมาใช้งานได้
ใหม่
PreparedStatement

       ทำาไม Performance ของ prepared จึงดีกว่า เริ่มก่อนคือ db เนี่ยไม่ได้ทำางานด้วย
       ภาษา SQL ตรงๆครับ แต่จะมีการ compile ก่อนเพือเอาไปรันในตัว db engine อีก
       ที ที่นี้ถ้าเป็น statement ธรรมดาเนี่ย ทุกๆๆ exec command เนี่ยจะถูก compile ใหม่
       ถูกรอบ ถ้าเป็น prepare อะครับ เวลาใช้คือมันจะสร้างทุกอย่างไว้พร้อมแล้ว
       แล้วเราก็แค่ส่ง data เพือไป execute ซำ้าๆๆ ไปเรือยๆๆ
       ดูจากตัวอย่างละกัน
public static ResultSet find(Connection connection, int pKey)
               throws SQLException {
          PreparedStatement select_location_stmt = connection
                     .prepareStatement(SELECT_LOCATION_SQL);
          select_location_stmt.setInt(1, pKey);
          ResultSet result = select_location_stmt.executeQuery();
          return (result.next()) ? result : null;
     }


     private static final String SELECT_LOCATION_SQL = "SELECT * FROM location"
               + " WHERE id = ?";


JMeter

More Related Content

Similar to J2 ee คืออะไร (20)

การเขียนโปรแกรมด้วย Net beans
การเขียนโปรแกรมด้วย Net beansการเขียนโปรแกรมด้วย Net beans
การเขียนโปรแกรมด้วย Net beans
Apisit Song
61 sql server 2008 complete
61 sql server 2008 complete61 sql server 2008 complete
61 sql server 2008 complete
Tae Delphi
Netbeans and Android Appliation
Netbeans and Android AppliationNetbeans and Android Appliation
Netbeans and Android Appliation
Sedthawoot Pitapo
Php
PhpPhp
Php
Naresuan University Library
การเขียนโปรแกรมบȨว็บ
การเขียนโปรแกรมบȨว็บการเขียนโปรแกรมบȨว็บ
การเขียนโปรแกรมบȨว็บ
Khon Kaen University
โปรแกรมประยุกต์บȨว็บ
โปรแกรมประยุกต์บȨว็บโปรแกรมประยุกต์บȨว็บ
โปรแกรมประยุกต์บȨว็บ
anuchit025
องค์ประกอบของระบบคอมพิวเตอร์
องค์ประกอบของระบบคอมพิวเตอร์องค์ประกอบของระบบคอมพิวเตอร์
องค์ประกอบของระบบคอมพิวเตอร์
Tonkaw Napassorn
องค์ประกอบของระบบคอมพิวเตอร์
องค์ประกอบของระบบคอมพิวเตอร์องค์ประกอบของระบบคอมพิวเตอร์
องค์ประกอบของระบบคอมพิวเตอร์
Tonkaw Napassorn
การพัฒȨซอฟแวร์
การพัฒȨซอฟแวร์การพัฒȨซอฟแวร์
การพัฒȨซอฟแวร์
Watinee Poksup
การเขียนโปรแกรมด้วย Net beans
การเขียนโปรแกรมด้วย Net beansการเขียนโปรแกรมด้วย Net beans
การเขียนโปรแกรมด้วย Net beans
Apisit Song
61 sql server 2008 complete
61 sql server 2008 complete61 sql server 2008 complete
61 sql server 2008 complete
Tae Delphi
การเขียนโปรแกรมบȨว็บ
การเขียนโปรแกรมบȨว็บการเขียนโปรแกรมบȨว็บ
การเขียนโปรแกรมบȨว็บ
Khon Kaen University
โปรแกรมประยุกต์บȨว็บ
โปรแกรมประยุกต์บȨว็บโปรแกรมประยุกต์บȨว็บ
โปรแกรมประยุกต์บȨว็บ
anuchit025
องค์ประกอบของระบบคอมพิวเตอร์
องค์ประกอบของระบบคอมพิวเตอร์องค์ประกอบของระบบคอมพิวเตอร์
องค์ประกอบของระบบคอมพิวเตอร์
Tonkaw Napassorn
องค์ประกอบของระบบคอมพิวเตอร์
องค์ประกอบของระบบคอมพิวเตอร์องค์ประกอบของระบบคอมพิวเตอร์
องค์ประกอบของระบบคอมพิวเตอร์
Tonkaw Napassorn
การพัฒȨซอฟแวร์
การพัฒȨซอฟแวร์การพัฒȨซอฟแวร์
การพัฒȨซอฟแวร์
Watinee Poksup

J2 ee คืออะไร

  • 1. J2EE คือ อะไร ก่อนที่จะทราบถึงความหมายของ J2EE มาทำาความเข้าใจกับคำาว่า Middleware กันก่อน Middleware คือ ซอฟต์แวร์ประเภทหนึ่งที่ทำาหน้าที่เป็นตัวกลาง เป็นตัวประสานและบริการ Service ต่างๆ ให้กับ Application เช่น การทำา Load Balancing , Transaction, Resource Pooling และ Message Oriented Service เป็นต้น ซึ่งในระบบงาน ขนาดใหญ่ (Enterprise Application) จำาเป็นต้องใช้งาน Service เหล่า นี้เป็นอย่างมาก ซึ่งในอดีต องค์กรต่างๆ ได้ พัฒนาซอฟต์แวร์ประเภท Middleware ขึ้นมาใช้งานเอง โดยจะมี Service ต่างๆ แล้วแต่ละองค์กรจะพัฒนาขึ้นมา ในปัจจุบันความต้องการ Service ของ Middleware มีมากขึ้น เพื่อรองรับ การดำาเนินงานทางธุรกิจที่มีความ สลับซับซ้อนมากขึ้น จึงต้องการระบบงานที่ยืดหยุ่นสามารถรองรับการ เปลี่ยนแปลงได้อย่างรวดเร็ว เพื่อให้ สามารถแข่งขันกับคู่แข่งทางธุรกิจได้ ประกอบกับการที่จะพัฒนา Middleware ขึ้นมาใช้เองนัน เป็นเรื่องที่ยาก มี ้ โอกาสที่จะล้มเหลวสูง ด้วยสาเหตุดังกล่าว จึงได้มีผู้มีผลิต Middleware ออกมาจำาหน่าย โดยเรียกว่า Application Server จึงจะบรรจุ Service ต่างๆ ไว้ ทำาให้ องค์กรไม่ต้องพัฒนา Service ขึ้นใช้เอง ซึ่งจะทำาให้องค์กรมุ่งคิด หรือ ทำาเฉพาะที่เป็น Business Logic ใน Business Domain ของตัวเองเพียง อย่างเดียวเท่านั้น วิธีการก็คือพัฒนา ซอฟต์แวร์ขึ้นมา แล้วนำาไป Deploy บน Application Server ที่เตรียม สภาวะแวดล้อมขณะ Runtime ไว้ให้โดยมี การประกาศความต้องการ Service ให้ Application Server เตรียม Service ต่างๆ ไว้บริการ J2EE ก็คือ Specification ของ Application Server ซึ่งมีบริษัท Sun Microsystem เป็นเจ้าภาพ โดยเชิญ บริษัท ต่างๆ มากมาย มาร่วมกันจัดทำา ซึ่งจะทำาให้ Specification ที่ได้สามารถ ตอบสนองกับความต้องการของผู้ใช้ และ ผู้สร้างได้เป็นอย่างดีซึ่งตรงนี้เป็นจุดแข็งจุดหนึ่งของ J2EE เพราะทำาให้ไม่ เกิดการกำาหนด Specification ที่เอื้อ ประโยชน์กับบริษัท Software บริษัทใด บริษัทหนึ่ง Java Enterprise Edition Platform เป็น Multi Tier Application Model นักพัฒนาแบ่ง Application Logic เป็น Component โดยแบ่งตามหน้าที่การทำางาน และติด แต่ละ Component นั้นในแต่ละเครื่องซึ่งขึ้นอยู่ว่า เครื่องนั้นเป็น Tier อะไร
  • 2. โดยแต่ละ Tier มีดังนี้ 1. Client อาจจะเป็นอย่างใดอย่างหนึ่งดังต่อไปนี้ Web client ๐ ประกอบด้วย - เซตของ Dynamic Web Page - Browser ที่ใช้แสดงหน้าจอของ Page ๐ บางครั้งเราจะเรียกว่า Thin Client - เพราะการทำางานหนักๆนั้นเราจะให้ทำาใน Business Tier Application Client ๐ รันบนระบบของ Client เอง ๐ มี Interface ที่มากกว่า Web Browser -Swing, AWT ๐ บางครั้งอาจจะไม่มี Interface เลย เป็น Command Line
  • 3. ๐ โดยทั่วไปจะเข้าใช้ Business Tier โดยตรงไม่ต้องผ่าน Web Tier 2. Web Tier มีส่วยประกอบดังนี้ ๐ Servlets เป็นจาวา คลาสในการที่คอยรอรับการเข้ามาของ Request และ สร้าง Response ตอบกลับ ๐ JSP มีการทำางานที่เหมือนกับ Servlet แต่จะสามารถรวม กระบวนการส่วนที่ เป็น Dynamic เข้ากับ HTML code ที่เป็น static ไว้ในหน้าเพจเดียวกัน 3. Business Tier ๐ มี EJB เป็นส่วนที่ทำาหน้าที่ในการจัดการการทำางานของ Business Logic 4. EIS Tier เป็นส่วนของฐานข้อมูล โดย ในเอกสารฉบับนี้เราจะสนใจกับประสิทธิภาพของระบบ ที่เกี่ยวข้องกับ Web Application เท่านั้น
  • 4. Scalability คือ ระบบของเรา วันนี้มีคนใช้ 100 คน วันหน้า ถ้าคนใช้เพิ่มเป็น 1000 คน ระบบของเราต้องสามารถรองรับได้ ใน Distributed System ก็สามารถทำาได้โดยการ เพิ่ม Component เข้าไป Clustering คือการจัดกลุ่มของคอมพิวเตอร์หลายๆตัวเพื่อให้สามารถทำางานได้เหมือนกับเป็น คอมพิวเตอร์ตัวเดียวกัน ดังนั้นไม่ว่า User เข้ามาใช้งานเครื่องใดภายในกลุ่มก็จะรู้สึกเหมือนใช้งาน คอมพิวเตอร์เครื่อง เดียวกัน คุณสมบัติสำาคัญของการทำา Clustering คือการทำา Replication โดยในแง่ของ Web Application คือการทำา Session Replication ซึ่งตามปกติแล้ว Session ของ User จะถูกจัดเก็บใน Web Server เครื่องที่ User กำาลังใช้งานอยู่เท่านั้น แต่ การทำา Clustering จะเป็นการคัดลอก (Replicate) Session นั้นไปยัง Web Server อื่นภายใน กลุ่มด้วย ทำาให้ไม่ว่า User เข้าไปใช้งานใน Server เครื่องใดก็จะมี Session ของ User อยู่ ด้วยเสมอ Load balancing คือการจัดกลุ่มของคอมพิวเตอร์หลายๆตัวเพื่อแบ่งงานกัน หรือกระจาย load การใช้ งานของ user ไปยังคอมพิวเตอร์ภายในกลุ่ม เพื่อให้สามารถรับจำานวน user ที่เข้ามา ใช้งานได้มากขึ้น หรือสามารถรับงานที่เข้ามาได้มากขึ้น นอกจากนั้นยังมี คุณสมบัติของ Fail Over คือหากมีคอมพิวเตอร์ภายในกลุ่มไม่สามารถทำางานได้ เช่น Down อยู่ หรือไม่สามารถรับงานหรือ user เพิ่มได้เนื่องจาก resource ที่ใช้ทำางานไม่พอ ตัว Load Balancer ที่เป็นตัวแจก load ให้คอมพิวเตอร์ภายในกลุ่มก็จะส่ง load ไปยัง คอมพิวเตอร์เครื่องอื่นๆแทน จนกว่าคอมพิวเตอร์เครื่องนั้นจะกลับมาใช้งานได้ ใหม่ PreparedStatement ทำาไม Performance ของ prepared จึงดีกว่า เริ่มก่อนคือ db เนี่ยไม่ได้ทำางานด้วย ภาษา SQL ตรงๆครับ แต่จะมีการ compile ก่อนเพือเอาไปรันในตัว db engine อีก ที ที่นี้ถ้าเป็น statement ธรรมดาเนี่ย ทุกๆๆ exec command เนี่ยจะถูก compile ใหม่ ถูกรอบ ถ้าเป็น prepare อะครับ เวลาใช้คือมันจะสร้างทุกอย่างไว้พร้อมแล้ว แล้วเราก็แค่ส่ง data เพือไป execute ซำ้าๆๆ ไปเรือยๆๆ ดูจากตัวอย่างละกัน
  • 5. public static ResultSet find(Connection connection, int pKey) throws SQLException { PreparedStatement select_location_stmt = connection .prepareStatement(SELECT_LOCATION_SQL); select_location_stmt.setInt(1, pKey); ResultSet result = select_location_stmt.executeQuery(); return (result.next()) ? result : null; } private static final String SELECT_LOCATION_SQL = "SELECT * FROM location" + " WHERE id = ?"; JMeter