1. Nhìn lại lịch sử một chút chúng ta có thể thấy rõ ràng rằng: Từ application sử dụng flat data để store thông tin -> Chuyển sang sử dụng Database server.
Bước chuyển này rất là ngoạn mục lắm, hầu như performance application được nâng cấp, dữ liệu data có lớn cũng không còn là vấn đề đáng ngại nữa... Các kỹ thuật để thiết lập cấu trúc cho DB đã được khai thác và phát triển liên tục đến giờ có thể nói là đã hoàn chỉnh lắm.
Tuy nhiên vấn đề có vẻ không chỉ dừng lại, bản thân DB cũng nằm trên Harddisk, và mỗi lần muốn có dữ liệu phải dùng SQL để lấy, điều này đến lúc sẽ đạt đến sự giới hạn của nó mà không thể thoã mãn được thời đại sau này.
Chính vì vậy mà: Từ application sử dụng flat data để store thông tin -> Chuyển sang sử dụng Database server -> Tất cả cho vào memory
Tức là khi application khởi động tất cả dữ liệu sẽ được cho tất vào memory, điều đó sẽ: + Tốc độ access cực nhanh + Có thể không phải qua trung gian tái tạo, kết hợp để tạo dữ liệu cuối cùng. Ví dụ: Thường thì một class Student, có tên, tuổi, môn học, lớp trường, trước đến giờ học ở đâu, thành tích thế nào, con ai ông bà nào, quê quán ở đâu... Để lấy thông tin của object Student này, thường phải SQL hằng loạt tables trong DB, sau đó tái tạo, kết hợp, khi cần phải chạy một số logic khác nhau mới có thể cho ra Object Student được... Tuy nhiên cả cái Object này nếu được nằm luôn trên memory thì lần sau chỉ cần get data trên memory là xong. Điều này sẽ nhanh không thể tưởng tượng được...
Thời đại bây giờ, khi các hardware dùng cho máy tính ngày càng rẽ, dung lượng memory không khác gì Hardware cả thì việc nói ở trên đã không còn là điều khó thực hiện.
2. Về kỹ thuật cho phần này thì bây giờ đã như thế nào nhỉ? Theo như hiểu biết của mình thì như sau: + Các application có riêng architecture riêng để store data trên memory... Các ngôn ngữ đều có chức năng này, tuy nhiên để làm được điều này cần phải đòi hỏi trình độ của người thiết lập cấu trúc cho chương trình, và tránh sự xung khắc với các application khác của system... + Sử dụng các soft thirdparty về cache data lên memory. Những cái này có nhiều, ví dụ memcached + Thiết lập filesystem tren memory luôn. Ví dụ FreeBSD Memory Filesystem + Các application server như Jboss, WebSphere có riêng chức năng cache của mình
+++ Và quan trọng nhất là gần đây, bản thân các DB software đã được chức năng này vào DB của mình. Ví dụ: Mysql http://opentechpress.jp/article.pl?sid=06/09/04/0227228&from=rss http://tangent.org/index.pl?lastnode_id=478&node_id=506
Phải công nhận nếu như trong bản thân các DB có sẵn chức năng này thì phía application dev sẽ rất là tiện lợi lắm. Vì không còn phải nghĩ ngợi hay viết code để thực hiện động tác này nữa.
VMware Server support BSDs http://opentechpress.jp/article.pl?sid=06/09/11/0153254&from=rss
Như vậy là VMware đã có thể support được cho hệ BSDs. Hệ Linux thì tất nhiên đã support từ lâu... Bây giờ chỉ cần có máy xịn là có thể chạy được nhiều OS một lúc nhỉ...
Sun mở kế hoạch support các ngôn ngữ khác trên nền JVM. Kế hoạch đầu tiên nhắm ngay vào Ruby, thiệt là nhanh thật... Có lẽ chiến lược của Sun sẽ biến JVM thành plathome có thể support cho tất cả OS, ngôn ngữ lập trình... Hay tối thiểu sẽ đạt được sự liên kết rất chặt chẽ giữa java với tất cả các ngôn ngữ lập trình khác... Cộng với sức mạnh "Write once run anywhere" thì java sẽ trở thành plathome không thể thiếu... Java cũng chuẩn bị open source luôn đấy http://news.com.com/2100-7252_3-6105601.html Thật là kế hoạch rất lớn.
Anh Chung thông tin nhanh thật. Lâu nay vẫn nghe người ta nói chữ OPEN SOURCE nhưng không hiểu về chữ này mấy. Ai có thể giảng giải về hai chữ OPEN SOURCE này một cách dễ hiểu được không?
Open source có thể hiểu đơn giản là Mã nguồn mở. Tức là source nguồn của chương trình được công bố công khai và rộng rãi để mọi người có thể xem, học hỏi và sửa chữa để chương trình hoàn thiện hơn, tốt hơn.
Về nội dung của từ Open Source thì như anh Việt đã nói. Khi ra open source, tuỳ theo license có thể hơi khác một chút, tuy nhiên đại khái là như vậy. Tức là tài sản (software) của mình đem cống hiến cho thiên hạ cùng xài, cùng nhau phát triển, tài sản của mình trở thành free.
Nói đến đây có lẽ chắc anh em không thể không đặt nghi vấn rằng vậy tại sao bây giờ các software hầu như trở thành opensource hết trơn vậy nhỉ? Lợi nhuận của công ty sẽ tiêu tan với sự opensource đó.
Tuy nhiên đó là cách nghĩ trước đây, với thời đại web2.0 bây giờ, opensource chính là chìa khoá rất lớn để phát triển và cạnh tranh đấy. Một vài lý do theo sự hiểu biết của mình là: - Một software đóng kín sẽ chỉ có một bộ phận sử dụng nhỏ. Cộng với bây giờ sự phát triển của opensource hàng loạt, không khéo bản thân software đó sẽ bị vượt mất vị trí đứng. Điều này cũng hợp lý cho middle ware, hay plathome, ví dụ có java nhưng sau này lại ra ruby chẳng hạn. Không tự mình vận động sẽ bị tụt lùi ngay. - Open source tất cả mọi người đều sử dụng được thì user sẽ tăng lên, sự hiểu biết về software sẽ tăng. -> Vị trí đứng của software sẽ tốt hơn - Open source sẽ thu hút developer trên toàn thế giới. Đây là điều cực kỳ quan trọng. Có một điều rất thú vị là ngày nay người ta đã nhận ra một điều là với một software nào thú vị open ra trên thế giới thì tự động các developer sẽ tập hợp lại. Và đương nhiên rằng sẽ không có một bộ phận phát triển nào của một công ty nào trên thế giới lại mạnh bằng chính lực lượng developer trên toàn thế giới cả. Thì lúc đó các công ty này làm nhiệm vụ điều tiết sự phát triển của chính software mà họ open ra. Thường chia làm 2 mảng: Mảng an toàn và mảng không an toàn. Mảng không an toàn tức là mảng đang được phát triển ở mức độ cao nhất, phát huy tận dụng tất cả kỹ thuật mới v.v... Và tất cả các thành quả của mảng này sau khi được kiểm nghiệm xong sẽ được merge vào mảng an toàn. Khi đó lợi nhuận của công ty sẽ phát sinh bằng chính những business xung quanh soft ware đó, chứ không phải bằng chính việc bán cái soft đó như trước đây. Một khi cái soft đó trở thành cái không thể thiếu được trên toàn thế giới thì coi như là thành công. Đi đầu trong việc sử dụng model này có lẽ là Redhat, phải nói là cực kỳ lợi hại. Bỏ Linux RedHat phiên bản free, chia ra làm 2 mảng: Enterprise Redhat(mảng an toàn) + Fedora(mảng không an toàn). Cho nên bây giờ không có nền Linux nào mà phát triển nhanh, kỹ thuật mới nhất bằng Fedora, và cũng không có nền Linux nào ổn định, đảm bảo được tính enterprise như Enterprise Redhat. Tuy nhiên như vậy chưa phải là xong. Redhat còn chơi chiêu độc là cho phép user sử dụng ngay cả source của Redhat enterprise chỉ cần tháo gỡ thương hiệu của redhat ra là được. Và cái thành quả này sinh ra Centos, đang ngày được sử dụng và biết tiếng trên thế giới. Chính vì vậy mà Oracle khi tuyên bố tham chiến vào nền Linux phải tìm mọi cách đánh gục cho được RedHat. Vừa qua xảy ra vụ việc lộn xộn mà suýt nữa Oracle mua sạch cổ phiếu của redhat v.v...
Vài dòng suy nghĩ như trên, mong được thảo luận cùng anh em. Văn viết hơi tản mạn, mong anh em thông cảm.
RedHat chuyển cổ phần sang NYSE. http://opentechpress.jp/news/article.pl?sid=06/11/20/093251&from=rss Bây giờ thế giới Linux business đã có nhiều đối thủ nên RedHat phải phấn đấu cố gắng vươn lên hơn nữa nhỉ!!!
Linux phát triển thì chắc sẽ bớt đi sự độc quyền và đắt đỏ của Win nhỉ.