การใช้เทคโนโลยี Open Source...
description
Transcript of การใช้เทคโนโลยี Open Source...
การใช้�เทคโนโลยี�Open Source
ในการพั�ฒนาซอฟต์�แวร�
ขอขอบค�ณผู้��ให้�ข�อมู�ลท�!น"าสนใจ ค�ณอ%สร%ยีา ไพัร�พั"ายีฤทธิ์%)
[email protected] ส*าน�กงานส"งเสร%มูอ�ต์สาห้กรรมู
ซอฟต์�แวร�แห้"งช้าต์%(องค�การมูห้าช้น)
2005 อนุ�ญาตให้เผยแพร่�เอกสาร่นุ��ต�อด้วยส�ญญาอนุ�ญาตแบบ Creative Commons Attribution License
Open Source ค,อ อะไร ? ซอฟต์�แวร�เสร�
ผู้��ใช้�มู�ส%ทธิ์%อยี"างเสร�ก�บต์�วซอฟต์�แวร�- ใช้�งาน- ปร�บปร�งแก�ไข- พั�ฒนาต์"อ- ขายี
ป/จจ�บ�นใช้�งานอยี"างแพัร"ห้ลายี
ค�ณใช้� Open Source อยี�"ห้ร,อเปล"า ?
Google ใช้� Linux เป0นระบบปฏิ%บ�ต์%การ Hotmail ใช้� FreeBSD เป0นระบบปฏิ%บ�ต์%การ 70% ของเว2บ ใช้� Apache เป0นเว2บเซ%ร�ฟเวอร� ADSL Router ใช้� Linux เป0นระบบปฏิ%บ�ต์%การ โทรศั�พัท�มู,อถื,อของ Motorola ใช้� Linux เป0นระบบปฏิ%บ�ต์%การ Yahoo! ใช้� MySQL เป0นระบบฐานข�อมู�ล
ท*าไมูต์�องสนใจ Open Source
“Innovation Happens Elsewhere” ไมู"ว"าองค�กรจะลงท�นด้�านว%จ�ยีแค"ไห้น ปร%มูาณผู้ลงานของเคน นอกองค�กรยี"อมูมู�มูากว"า ทางออก : น*าผู้ลงานของคนนอกมูาใช้�งาน ว%ธิ์�การ : Open Source
ประว�ต์%ของ Open Source
1983 : Richard Stallman ประการค*าว"า Free Software 1991 : Linus Torvalds เร%!มูท*า Linux 1997 : Eric S. Raymond “เข�ยีน The Cathedral and the bazaar” 1998 : Netscape เป7ด้เผู้ยีซอร�สของ Mozilla 1998 : Eric S. Raymond ประกาศัค*าว"า Open Source 2004 : Firefox 1.0 ออก
ร�ปแบบการพั�ฒนา ซอฟต์�แวร�แบบ Open
Source ผู้��สร�างเป7ด้เผู้ยีซอร�สโค�ด้ ผู้��สนใจมู�ส%ทธิ์%แก�ไขซอร�สโค�ด้ ผู้��สนใจมู�ส%ทธิ์%ส"งส"วนท�!แก�ไขมูาให้�ผู้��สร�าง ผู้��สร�างมู�ส%ทธิ์%ผู้นวกส"วนแก�ไข ไปก�บโปรแกรมูต์�นฉบ�บ
ก"อให้�เก%ด้ช้�มูช้นของผู้��ใช้�-ผู้��พั�ฒนา
ข�อด้�ของการพั�ฒนาแบบOpen Source
ผู้��ใช้�มู�ส"วนร"วมูในการก*าห้นด้ท%ศัทางของโปรแกรมู ผู้��สร�างมู�โอกาสร�บฟ/งความูค%ด้เห้2นของผู้��ใช้�โด้ยีต์รง เพั%!มูปร%มูาณผู้��มู�ส"วนร"วมู (contributor) ของโปรแกรมู ลด้ระยีะเวลาในการออกโปรแกรมูร�"นให้มู" (release cycle) ลด้ค"าใช้�จ"ายีในการพั�ฒนาโปรแกรมู
โครงการ Open Source ท�!มู�ช้,!อเส�ยีง
ระบบปฏิ%บ�ต์%การ Linux, FreeBSD เว2บเซ%ร�ฟเวอร� Apache ฐานข�อมู�ล MySQL, PostgreSQL เว2บเบราว�เซอร� Mozilla Firefox อ�เมูล Mozilla Thunderbird ช้�ด้ออฟฟ7ศั OpenOffice.org โปรแกรมูต์กแต์"งภาพั Gimp ภาษาโปรแกรมู PHP, Python, Perl
การพั�ฒนาซอฟต์�แวร�ด้�วยีOpen Source
Platform ส"วนท�!รองร�บการท*างานของซอฟต์�แวร� เช้"น OS, server, library
Programmingต์�วโปรแกรมูเอง, ภาษา, compiler, interpreter
Tools เคร,!องมู,อท�!ช้"วยีให้�การพั�ฒนาโปรแกรมูสะด้วกและมู�ประส%ทธิ์%ภาพั
เช้"น debugger, version control
Platform : Normal Solutions
ใช้� Open Source ลด้ค"าใช้�จ"ายีรวมูของ Solution
Applications
10,000 B
Linux 0 B
Windows
4,900 B ร่าคาร่วมของ Solution
10,000 B 14,900 B
Platform : Web Solutions Applications
Apache IIS Web
Server
Database
MySQL Oracle
OS Linux Windows
Platform : ลด้ค"าใช้�จ"ายีรวมู
ใช้� Open Source เพั,!อลด้ค"าใช้�จ"ายีโด้ยีรวมูของ Solution ผู้��ซ,;อ : ได้� Solution ในราคาท�!ถื�กลง ผู้��ขายี : มู�โอกาสขายีได้�มูากข<;น
สามูารถืใช้� Open Source ร"วมูก�บซอฟต์�แวร�อ,!นได้� เช้"น- Windows + Apache + My SQL- Linux + Oracle
Programming C/C++
Java
.NET
PHP
Perl
Python
Programming : C/C++ C เป0นภาษาห้ล�กในการพั�ฒนาโปรแกรมูมูายีาวนาน
- ประส%ทธิ์%ภาพัส�ง- เห้มูาะก�บงานเก�!ยีวก�บระบบ
C++ เป0น superset ของ C- เพั%!มูความูสามูารถืด้�าน Object-Oriented- เข�ยีน C++ แบบ C ได้�- ป/จจ�บ�นโปรแกรมูขนาด้ให้ญ่"ส"วนมูากเข�ยีนด้�วยี C++
Programming : C/C++ : GCC
GCC (GNU Compiler Collection) เป0น compiler มูาต์รฐานในการท*า benchmark สน�บสน�นภาษา C, C++, Fortran, Obj-C, Ada เวอร�ช้�นล"าส�ด้ 4.0 มู�ใน Unix แทบท�กต์�ว ใช้�บนว%นโด้วส�ได้�ผู้"าน Cygwin (www.cygwin.com) การใช้�งานเป0น command line
Programming : C/C++ : GCC (2)
เข�ยีนโปรแกรมูภาษา C ช้,!อ main.c
gcc main.c- ได้�ผู้ลล�พัธิ์�ค,อ a.out- ทด้สอบโปรแกรมูโด้ยีส�!ง ./a.out
gcc -o program main.c- ได้�ผู้ลล�พัธิ์�ค,อ program- ทด้สอบโปรแกรมูโด้ยีส�!ง ./program
Programming : C/C++ : Editor
Text editor : vi, notepad, editplus, ultraedit IDE (Integrated Development Environment
- Windows : Dev-C++- Linux : Kdevelop, Anjunta- ห้ร,อ Eclipse ก�บ CDT (C/C++ Development Tools)
KDevelop
Programming : Java สร�างโด้ยี Sun Microsystems ป> 1990 เป0น Object-Oriented ใช้�แนวค%ด้ของ Virtual Machine ท*างานได้�ข�ามูแพัลต์ฟอร�มู Java Runtime Environment แจกฟร�โด้ยี Sun และมู�ครบคล�มู เก,อบท�กแพัลต์ฟอร�มู Java Development Kit ช้�ด้พั�ฒนาพั,;นฐาน แจกฟร�โด้ยี Sun มู� 3 edition : J2ME, J2SE, J2EE เวอร�ช้�นล"าส�ด้ : 5.0
Programming : Java : Diagram
Java Code
(.java)
Byte Code
(.class)
Binary Code
Java Class
Java Development Kit (JDK)
Java Compiler (java.exe)
Java Virtual Machine (java.exe)
Java Runtime Environment (JRE)
Programming : Java : Open Source
Open SourceimplementationsJava
Class
java.exe
javac.exe
Harmony
GCJ
GIJ, Kaffe
Library
Compiler
VM
Programming : Java : IDE
Eclipse (www.eclipse.org)- IBM/Oracle- เวอร�ช้�นล"าส�ด้ : 3.1
NetBeans (www.netbeans.org)- Sun (Forte, Sun ONE Studio, Java Studio)- เวอร�ช้�!นล"าส�ด้ : 4.1
Programming : Java : Other
Jboss (www.jboss.org)- Open Source J2EE application server
Jakarta Project (jarkata.apache.org)- Open Source software for Java Platform- ด้�แลโด้ยี Apache Foundation- ต์�วอยี"าง : Tomcat, Ant- น*าไปใช้�ใน IBM WebSphere
Programming : .NET Microsoft เข�ยีนต์ามู Java
Multi-Platform (ในทางทฤษฎี�) Multi-Language
- C#, VB.NET, Managed C++, Jscript.NET, ASP.NET- Python, Ada, Cobol, Boo, Perl, Fortran
.NET 2.0 Final : November 2005
Programming : .NET : DiagramC# VB.NET
CIL
(Common Intermediate Language)
Binary Code
.NET Class
(VB.NET)
.NET Class
(C#)
compiler
CLR (Common Language Runtime)
Programming : .NET : Mono
Mono (www.mono-project.com) เป0นการสร�าง .NET Framework แบบ Open Source บร%ษ�ท Ximian ( ป/จจ�บ�นเป0นของ Novell) ส"งเสร%มูให้� .NET สามูารถืร�นข�ามูแพัลทฟอร�มูได้�อยี"างแท�จร%ง มู�โอกาสเก%ด้ป/ญ่ห้าด้�านกฎีห้มูายีในอนาคต์ รวมูอยี�"ใน : SuSE, Ubuntu, Debian ไมู"รวมูอยี�"ใน : Red Hat, Fedora
Programming : .NET : Mono (2)
.NET compiler
.NET CLR
.NET Library
.Mono compiler
.Mono CLR
Library
Compiler
VM
.NET Library
Mono Library
Programming : .NET : IDE
SharpDevelop (www.icsharpcode.net/OpenSource/SD)
- Microsoft.NET
- Windows
MonoDevelop (http://www.monodevelop.com)
- Mono implement of Sharp Develop
- Microsoft .NET & Mono
- Linux, MacOSX
SharpDevelop
Programming : PHP เด้%มู : Personal Home Page
ป/จจ�บ�น : PHP Hypertext Processor
Scripting language, server side
เท�ยีบได้�ก�บ Microsoft ASP, Sun JSP
ได้�ร�บความูน%ยีมูส�งมูาก เช้"น Pantip, phpBB, phpMyAdmin
Programming : PHP : Solution
มู�กใช้"ร"วมูก�บ Linux, Apache, MySQL
LAMP/LAMPS- Linux, Apache, MySQL, PHP / SSL- ( อาจใช้� PostgreSQL แทน MySQL และ Perl/Python แทน PHP ได้�)
ส*าห้ร�บว%นโด้วส�แนะน*าให้�ใช้� AppServ (www.appserv.net)
Programming : Perl
เป0น scripting Language
เห้มูาะส*าห้ร�บท*างานบน Unix shell
เข�ยีนได้�ง"ายี แต์"อ"านได้�ยีาก เพัราะเป0นภาษาท�!เน�นส�ญ่ล�กษณ� แนะน*าให้�ใช้� PHP ห้ร,อ Python
Programming : Python
เป0น scripting language มู�ประส%ทธิ์%ภาพัส�ง เข�ยีนได้�ง"ายี ท*างานได้�ข�ามูแพัลทฟอร�มู มู� library ส*าค�ญ่ๆ ให้�ครบ ก*าล�งได้�ร�บความูน%ยีมูเพั%!มูข<;นเร,!อยีๆ เช้"น
- Google- Red Hat- BitTorrent
Programming : Python : Example
Python CIf (a > b) : print “A is greater”else: print “B is greater”
int a;int b;if (a>b) { printf(“A is greater”);} else printf(“B is greater”);}
Programming : Others
ภาษาโปรแกรมูมู%!งอ,!นๆ ท�!น"าสนใจ- Ruby
- Boo
- Eiffel
- Objective-C
Tools Debugger Packaging Version Control Bug Tracker GUI Designer
Tools : Debugger GDB – GNU Debugger
- เป0น command line debugger- ใช้�ค�"ก�บ GCC- สน�บสน�น C, C++, Fortran, Pascal, Obj-C- ท*างานได้�บน Unix และ Windows- มู� GUI เล,อกใช้�ได้�ห้ลายีต์�ว เช้"น DDD
ส*าห้ร�บภาษาอ,!นๆ สามูารถืใช้� debugger ของ IDE
Tools : Packaging ข�;นต์อนการต์%ด้ต์�;งโปรแกรมูบน Unix ใช้�โปรแกรมูเห้ล"าน�;เข�าช้"วยี
- autoconfig- autobuild- make
ว%ธิ์�การต์%ด้ต์�;งพั,;นฐาน- ./configure- make- make install
Tools : Packaging (2) น%ยีมูรวมูไฟล�เป0นก�อน แล�วบ�บอ�ด้แบบ tar.gz ห้ร,อ tarball เพั,!อ สะด้วกในการด้าวน�โห้ลด้ การบ�บไฟล�
- tar cxvf filename.tar.gz file1 file2 file3 การขยีายีไฟล�
- tar xvfz filename.tar.gz ไฟล�แบบ tar.gz เป7ด้ได้�ด้�วยีโปรแกรมู ZIP ท�!วไป เช้"น WinZIP, WinRAR
Tools : Packaging (3)
ต์"อมูามู�ระบบแพักเกจท�!ก�าวห้น�าข<;น สามูารถืต์%ด้ต์�;งได้�อ�ต์โนมู�ต์% Red Hat
- RPM – Red Hat Package Management Debian
- DPKG – Debian Package
Tools : Packaging (4) ระบบ RPM และ DPKG มู�ป/ญ่ห้าด้�าน dependency มู�ระบบแพักเกจอ�กช้�;นท�!คอยีแก�ป/ญ่ห้า dependency Red Hat
- YUM Debian
- APT (Advance Package Tool)
Tools : Version Control
Version Control- จ�ด้การเวอร�ช้�นของซอร�สโค�ด้- เก2บโค�ด้ไว�ท�!เซ%ร�ฟเวอร�กลาง แล�วเร�ยีกใช้�เมู,!อต์�องการ- สน�บสน�นการท*างานร"วมูก�นเป0นท�มู- สามูารถืยี�อนการแก�ไขกล�บได้�- ใช้�งานอยี"างจร%งจ�งในการพั�ฒนาระด้�บอ�ต์สาห้กรรมู
Tools : Version Control (2)
CVS – Concurrent Versions System- มู�ใน Unix เก,อบท�กร�"น- มู�ข�อจ*าก�ด้ห้ลายีอยี"าง เช้"น ไมู"สามูารถืเปล�!ยีนช้,!อไฟล�ได้�- ยี�งใช้�ก�นอยี"างแพัร"ห้ลายีในโครงการ Open Source ส*าค�ญ่ห้ลายีแห้"ง
SVN – Subversion - ปร�บปร�งจาก CVS แนวค%ด้ใกล�เค�ยีงก�น- แนะน*าให้�เร%!มูท�! SVN เลยี
Tools : Version Control (3)
ค*าส�!งพั,;นฐานของ CVS/SVN svn checkout ด้<งซอร�สส"วนท�!ต์�องการจากเซ%ร�ฟเวอร�มูาท�!เคร,!อง svn add เพั%!มูไฟล�ให้มู"ในเคร,!องไปยี�งเซ%ร�ฟเวอร� svn update ปร�บปร�งการเปล�!ยีนแปลงล"าส�ด้ก�บเวอร�ช้�นของเซ%ร�ฟเวอร� svn commit ยี,นยี�นการเปล�!ยีนแปลงไปยี�งเซ%ร�ฟเวอร� ( ส�!งห้ล�ง add/update)
Tools : Bug Tracker ระบบจ�ด้การบ�Aกผู้"านเว2บ Bugzilla ประส%ทธิ์%ภาพัส�ง ใช้�งานอยี"างแพัร"ห้ลายี ต์%ด้ต์�;งยีาก IssueZilla เป0น Bugzilla ท�!โครงการ Open Office น*ามูาปร�บแต์"ง Trac ใช้�งานและต์%ด้ต์�;งได้�ง"ายี ความูสามูารถืครบ ออกแบบมูาเพั,!อการ พั�ฒนาโปรแกรมู
Tools : GUI Designer Glade (http://glade.gnome.org/)
- เป0น user interface designer- Export เป0น XML- ใช้�ได้�ก�บภาษา C, C++, Java, Perl, Python, C#, Ruby
Stetic- เป0น user interface designer ส*าห้ร�บ Mono
ห้ร,อใช้� GUI designer ท�!มูาก�บ IDE เช้"น Eclipse, NetBeans, KDevelop
Glade
More information Open Source at SIPA
http://www.thaiopensource.org Open Source Software Project
http://www.sourceforge.net