Đề tài Nghiên cứu công nghệ phân tán trên nền .NET Framework áp dụng cho việc phát triển và tích hợp các hệ thống phần mềm

1. Nghiên cứu tổng quan công nghệ nền .NET Framework.  Môi trường runtime của .NET Framework.  Các thành phần của ứng dụng .NET: Tìm hiểu các thành phần cấu thành nên một ứng dụng .NET (assembly), việc phân miền ứng dụng (application domains)

doc115 trang | Chia sẻ: vietpd | Lượt xem: 1437 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Đề tài Nghiên cứu công nghệ phân tán trên nền .NET Framework áp dụng cho việc phát triển và tích hợp các hệ thống phần mềm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
MỤC LỤC Danh mục các hình vẽ Hình 11 : Cấu trúc ứng dụng chạy trên Java platform 19 Hình 12 : Sơ đồ kiến trúc J2EE 21 Hình 13 : Cấu trúc ứng dụng chạy trên Java platform 23 Hình 14 : Các ngôn ngữ lập trình trên môi trường .NET 24 Hình 15 : Cấu trúc ứng dụng chạy trên .NET platform 25 Hình 16 : Cấu trúc ứng dụng phân tán (nhiều lớp) trên .NET 26 Hình 17 : Đồ thị thể hiện mức đỉnh của tải đạt được 29 Hình 18 : Đường cong tải khi máy chủ ứng dụng sử dụng 2 CPU 30 Hình 19: Đường cong tải khi máy chủ sử dụng 4 CPU 30 Hình 110: Đường cong tải khi máy chủ sử dụng 8 CPU 31 Hình 21 : .NET Framework 34 Hình 22 : Tập hợp thành phần cấu tử trong một file 41 Hình 23 : Tập hợp thành phần cấu tử trong nhiều file 41 Hình 24 : Phân loại kiểu 46 Hình 31 : Mô hình 1 lớp – toàn bộ chương trình chạy trên 1 máy tính 48 Hình 32 : Mô hình 2 lớp 50 Hình 33 : Kiến trúc nhiều lớp 54 Hình 34 : Cấu trúc ứng dụng phân tán trên môi trường .NET 57 Hình 35: Cấu trúc giao tiếp giữa tiến trình khách và tiến trình chủ trong .NET Remoting 67 Hình 36 : Kiến trúc hạ tầng của Webservice 70 Hình 37 : Một chu trình hoạt động của Webservice 72 Hình 38 : Kênh truyền an toàn cho .NET Remoting 78 Hình 41 : Kiến trúc hệ thống Quản lý yêu cầu khách hàng 84 Hình 42 : Mô hình báo cáo truyền thống 86 Hình 43 : Mô hình báo cáo từ xa sử dụng Webservice 87 Hình 01 : Kênh truyền an toàn 90 Hình 02: Vị trí của lớp đồng bộ thông tin người dùng trong Cấu trúc giao tiếp khách - chủ của .NET Remoting 92 Hình 03: Vị trí của lớp bảo mật trong Cấu trúc giao tiếp khách - chủ của .NET Remoting 95 Hình 04 : Quá trình mã hóa và giải mã 96 Danh mục các bảng Bảng 31 : So sánh .NET Remoting và Webservice 64 Bảng 32 : So sánh kênh TCP và kênh HTTP 78 Bảng 01: Quá trình kiểm tra quyền trong hệ thống khách – chủ 91 Bảng 02: Một phiên giao dịch giữa máy trạm và máy chủ có mã hóa bảo mật 98 Các thuật ngữ và từ viết tắt API Viết tắt của Application Programming Interface : Giao diện lập trình. Một modul chương trình được viết độc lập và muốn "nhúng" vào một ứng dụng cụ thể, nó phải cung cấp một giao diện để người lập trình sử dụng các dịch vụ mà modul này cung cấp. Giao diện này được gọi là giao diện lập trình. Một giao diện lập trình là tập hợp các phương thức để chương trình sử dụng và modul viết sẵn tương tác với nhau. ASP.NET Là phiên bản tiếp theo của ASP (Active Server Page). ASP.NET cung cấp một mô hình phát triển thống nhất, cùng với các dịch vụ hỗ trợ phát triển các ứng dụng web. Khác với ASP, ASP.NET có thể hỗ trợ bất cứ ngôn ngữ lập trình .NET nào. Thêm vào đó, ứng dụng ASP.NET cũng có thể sử dụng toàn bộ các tính năng hỗ trợ của môi trường .NET Framework. Byte code Mã trung gian của platform Java. Cấu tử (Assembly) Là đơn vị tạo nên chương trình .NET. Mỗi cấu tử là một tập các mã thực hiện một phần nào đó của ứng dụng, được dịch, đánh phiên bản và triển khai trong một đơn vị logic, dưới dạng 1 hay nhiều file. Các cấu tử lưu trữ mã của chương trình và được lưu dưới dạng các file dll hoặc exe. CdiT Viết tắt của tên tiếng Anh của Trung tâm công nghệ Thông tin (Center for Development of Information Technology). CORBA Common Object Request Broker Architecture. Cấu trúc trung gian yêu cầu đối tượng chung CRM Customer Relationship Management. Hệ thống quản lý quan hệ khách hàng. DBMS Viết tắt của Database Management System: Hệ quản trị cơ sở dữ liệu. Designtime Thời điểm thiết kế chương trình. Dial-up Đường kết nối (Internet hoặc tới một máy tính khác) sử dụng đường điện thoại thường (64k). Tốc độ kết nối của phương thức này thương thấp so với các phương thức khác như ADSL, ISDN. end – user Người sử dụng cuối cùng. Đối với một chương trình, người sử dụng cuối cùng là người đơn thuần chỉ sử dụng các chức năng mà chương trình cung cấp, không làm thay đổi đi các tính năng cơ bản của chương trình. ERP Enterprise Resource Planning. Hệ thống quản trị tài nguyên doanh nghiệp. HTTP (Hypertext Transfer Protocol) Giao thức truyền siêu văn bản World Wide Web được xây dựng dựa trên môi trường Internet và sử dụng TCP/IP để truyền tải thông tin giữa Web Client và Web Server. IPSec IP Security. Kênh truyền an toàn Khái niệm chỉ kênh truyền trên đó dữ liệu được áp dụng các biện pháp chống lại các tấn công như chữ ký điện tử, mã hóa bảo mật… Khả năng giao tiếp Interoperability. Chỉ mức độ sẵn sàng giao tiếp của một ứng dụng hay một thành phần ứng dụng với các ứng dụng hay thành phần ứng dụng trên các nền công nghệ khác. Khách/Chủ Trong mạng máy tính, máy khách là một trạm công tác có khả năng xử lý (ví dụ như một máy tính cá nhân). Nó có thể yêu cầu lấy thông tin hoặc các chương trình ứng dụng từ máy chủ. Trong các ứng dụng, tiến trình khách là một tiến trình sử dụng các đối tượng và/hoặc dữ liệu của tiến trình khác gọi là tiến trình chủ. Không gian tên Namespace. Một không gian tên là một cơ chế đánh tên logic cho các kiểu, trong đó một tên kiểu được dẫn trước bằng một cấu trúc tên ngăn cách bởi dấu chấm (.). Cơ chế đánh tên này chỉ có ý nghĩa đối với người lập trình tại thời điểm thiết kế (design time). Chú ý rằng không gian tên không liên quan tới tên của cấu tử. Một cấu tử có thể chứa các kiểu thuộc nhiều không gian tên gốc, và tập hợp các kiểu của một không gian tên có thể nằm trong hơn 1 cấu tử. Kiểm tra quyền (Authorization) Một ứng dụng có thể có rất nhiều người sử dụng với các quyền truy cập khác nhau. Sau khi đăng nhập, chương trình xác định được các quyền mà người sử dụng sở hữu, từ đó thực hiện việc kiểm tra quyền trong mỗi thao tác mà người dùng thực hiện. Lớp Khái niệm lớp thường được dùng để chỉ 2 khái niệm trong tiếng Anh là layer (lớp) và tier (còn gọi là tầng). Layer là khái niệm chỉ một lớp OSI, trong khi đó tier thường được sử dụng để chỉ các thành phần ứng dụng thực hiện các công việc khác nhau và được triển khai tại các máy khác nhau. Mã có kiểm soát / không kiểm soát Managed code/ unmanaged code. Có kiểm soát là khái niệm chỉ mã chương trình hoàn toàn sử dụng các dịch vụ của môi trường chạy thực để truy xuất các dịch vụ của hệ điều hành. Nếu không sử dụng các dịch vụ của môi trường chạy thực, chẳng hạn truy xuất trực tiếp vào các địa chỉ vùng nhớ sử dụng con trỏ, mã chương trình được gọi là mã không kiểm soát. Miền ứng dụng (Application domain). Khái niệm chỉ các vùng tài nguyên mà một ứng dụng sử dụng khi chạy. Các miền ứng dụng tạo nên các vùng tách biệt để chứa các ứng dụng, trong đó ứng dụng này lỗi sẽ không ảnh hưởng tới ứng dụng khác. Môi trường chạy thực Là môi trường hỗ trợ chạy chương trình. Môi trường chạy thực cung cấp các dịch vụ cơ bản cho các mã chương trình để truy cập tới hệ điều hành như quản lý bộ nhớ, kiểm soát lỗi. Tên của môi trường chạy thực trong .NET platform là Common Language Runtime (CLR). Ngôn ngữ trung gian Intermediate Language(IL). Là kết quả của quá trình dịch mã nguồn ứng dụng trong môi trường .NET. Thay vì dịch thẳng ra mã máy, việc dịch ra mã theo ngôn ngữ trung gian cho phép chương trình có thể chạy trên các phần cứng khác nhau. Trước khi một ứng dụng được chạy, các đoạn mã dưới dạng ngôn ngữ trung gian được dịch thành mã máy. Đây không phải là quá trình thông dịch. Ngữ cảnh an ninh Trên môi trường Windows, mỗi ứng dụng đều được kích hoạt nhân danh một người sử dụng nào đó. Tập hợp các tham số về quyền truy cập của người sử dụng sẽ tạo nên ngữ cảnh an ninh mà trong đó chương trình chạy. Nhận thực (Authentication) Là quá trình một người dùng nhập vào các thông tin xác nhận về cá nhân (thường bao gồm một tên người dùng và mật khẩu) cho chương trình phần mềm thực hiện kiểm tra quyền được sử dụng chương trình. OSI Open Systems Interconnection. Mô hình OSI hay mô hình liên kết các hệ thống mở định nghĩa kiến trúc nhiều lớp, trong đó các lớp sẽ trao đổi thông tin với lớp ngang hàng ở đầu bên kia và cung cấp các dịch vụ cho các tầng bên trên nó. Platform Công nghệ nền. Proxy Đối tượng đại diện. Đối tượng này thường không trực tiếp công việc, mà chỉ nhận các yêu cầu đầu vào, sau đó chuyển tiếp cho một đối tượng khác (thường là ở xa) thực hiện công việc. Kỹ thuật này được sử dụng phổ biến trong các môi trường phân tán, trong đó trình khách chỉ cần gọi đối tượng đại diện mà không cần quan tâm tới vị trí thực tế của đối tượng thực hiện công việc mà mình yêu cầu. Remoting Xử lý từ xa. Trong môi trường .NET, .NET Remoting là cơ chế cho phép máy khách có thể kích hoạt các hàm chạy trên tiến trình chủ. RPC Remote Procedure Call. Gọi thủ tục từ xa. Runtime Thời điểm một chương trình đang chạy. Phân biệt với designtime là thời điểm thiết kế chương trình (ví dụ khi viết mã, thiết kế giao diện người dùng...) SOAP (Simple Object Access Protocol) Giao thức truy xuất dữ liệu giản đơn. Giao thức này cho phép các ứng dụng có thể giao tiếp với nhau sử dụng XML qua giao thức HTTP. Giao thức này khá đơn giản, không phụ thuộc nền cũng như không phụ thuộc vào một ngôn ngữ lập trình cụ thể nào. Đây là giao thức sử dụng để truy cập Web service. SSL Secure Sockets Layer. Đây là giao thức Web dùng để thiết lập bảo mật giữa máy chủ và khách. Tất cả dữ liệu truyền đều được mã hóa. S-HTTP (Secure HTTP) là một giao thức tương tự chỉ thực hiện mã hóa ở mức HTTP, trong khi SSL mã hóa tất cả dữ liệu truyền qua lại giữa chủ và khách ở mức IP. TCP Transmisssion Control Protocol. Đây là một giao thức nằm trong của tầng chuyển tải (transport layer) trong bộ giao thức TCP/IP của Internet. Tính khả chuyển Portability. Chỉ mức độ sẵn sàng triển khai của một ứng dụng hay thành phần ứng dụng trên các nền phần cứng khác nhau. Tuyến đoạn Thread. Các tuyến đoạn là những quá trình riêng lẻ thực hiện đồng thời trong các hệ điều hành đa nhiệm. Những người phát triển chương trình cho hệ điều hành đa nhiệm có thể thiết kế các quá trình sao cho chúng được tách ra thành nhiều luồng và được xử lý cùng một lúc. Unicode Bộ mã tiêu chuẩn quốc tế hỗ trợ đa ngôn ngữ. Khác với các bộ mã đầu tiên, bộ mã Unicode sử dụng nhiều byte hơn (có thể là 2 byte hoặc 4 byte hoặc số byte thay đổi) để lưu trữ ký tự, và cho phép thể hiện hầu hết mọi ngôn ngữ viết trên thế giới bằng một tập ký tự đơn nhất. Webservice Là một dịch vụ ứng dụng được cung cấp thông qua các giao diện chuẩn của Internet, cho phép các lập trình viên có thể sử dụng trong chương trình của mình thông qua việc thực hiện kết nối tới máy chủ chứa Webservice và thực hiện kích hoạt. Webservice được sử dụng rất phổ biến trong các giải pháp thương mại điện tử. WSDL (Web Service Description Language) Ngôn ngữ mô tả Web service. WSDL thực chất là một tài liệu mô tả Web service, được viết sử dụng XML. Nó chỉ ra vị trí của Web service và các dịch vụ (hàm) mà Web service đó thực hiện. XML Extensible Markup Language. Đây là một ngôn ngữ đánh dấu sử dụng trong các tài liệu, cho phép chứa các thông tin có cấu trúc. Không giống như HTML, các tag của XML có thể được quy định và thay đổi tùy ý. Nội dung đề tài Tên đề tài : "Nghiên cứu công nghệ phân tán trên nền .NET Framework áp dụng cho việc phát triển và tích hợp các hệ thống phần mềm". Nội dung : Nghiên cứu tổng quan công nghệ nền .NET Framework. Môi trường runtime của .NET Framework. Các thành phần của ứng dụng .NET: Tìm hiểu các thành phần cấu thành nên một ứng dụng .NET (assembly), việc phân miền ứng dụng (application domains)… Phát triển ứng dụng trên .NET Framework: Tìm hiểu các vấn đề cơ bản khi phát triển ứng dụng trên .NET Framework: cơ chế truy xuất đối tượng giữa các miền ứng dụng, vấn đề xử lý lỗi, quản lý bộ nhớ… Các vấn đề về an toàn ứng dụng trên .NET Framework: Các hình thức tấn công phổ biến và cách thức kiềm chế chúng trên trong môi trường .NET Framework. So sánh công nghệ nền .NET Framework với công nghệ nền Java: Thực hiện so sánh hai công nghệ nền hiện được sử dụng rộng rãi nhất này trên các mặt kiến trúc ứng dụng, tính khả chuyển (portability), khả năng giao tiếp (interoperablity) và hiệu suất (performance). Nghiên cứu các giải pháp phát triển ứng dụng phân tán trên môi trường .NET: Cấu trúc ứng dụng phân tán trên môi trường .NET: nghiên cứu và đưa ra các khuyến nghị về cách thức thực hiện và phạm vi ứng dụng của các cấu trúc ứng dụng phân tán trên môi trường .NET. Giải pháp tích hợp giữa các ứng dụng trên môi trường .NET và giữa các ứng dụng .NET với ứng dụng trên platform khác: nghiên cứu và đưa ra các khuyến nghị về phạm vi ứng dụng của mỗi phương pháp. Các vấn đề về bảo mật trên môi trường .NET khi thực hiện ứng dụng phân tán. Xử lý lỗi trong các thành phần ứng dụng phân tán. Áp dụng các kết quả nghiên cứu trong việc phát triển hệ thống thử nghiệm Hệ thống Tiếp nhận và xử lý yêu cầu dịch vụ: kiểm nghiệm các kết quả nghiên cứu về tích hợp giữa các thành phần .NET với nhau sử dụng .NET Remoting trong môi trường mạng LAN. Hệ thống Báo cáo từ xa: kiểm nghiệm các kết quả nghiên cứu về tích hợp giữa các thành phần ứng dụng trên các platform khác nhau sử dụng .NET Webservice, trong môi trường mạng LAN và Internet. Đánh giá các kết quả nghiên cứu thông qua hệ thống thử nghiệm. Tổng quan Giới thiệu chung Công nghệ .NET đã được Microsoft đưa ra lần đầu tiên vào tháng 7 năm 2000. Kể từ đó, .NET đã chứng tỏ được ưu thế của mình trong việc hỗ trợ phát triển các ứng dụng trên môi trường Windows. Các hãng sản xuất phần mềm lớn như IBM (với bộ công cụ phân tích thiết kế hệ thống Rational Rose), BusinessObjects (với bộ công cụ báo cáo Crystal Reports) và nhiều hãng khác đều có các giải pháp tích hợp sản phẩm của mình vào môi trường phát triển .NET. Microsoft đã cam kết .NET sẽ là môi trường phát triển ứng dụng trong mọi hệ điều hành Windows tiếp theo. Nhu cầu phát triển ứng dụng trên nền .NET Một trong các nhiệm vụ quan trọng mà Trung tâm công nghệ thông tin được giao là nghiên cứu phát triển hệ thống ERP/CRM với đặc thù của ngành Viễn thông, trước mắt áp dụng cho các Bưu điện Tỉnh/Thành phố. Các hệ thống ERP/CRM là các hệ thống quy mô lớn, gồm nhiều thành phần xây dựng trên nhiều platform tích hợp với nhau. Trong đó, các thành phần trên Windows là không thể thiếu được do hiện nay, môi trường Windows là môi trường được sử dụng rộng rãi bởi các người dùng cuối tại các Bưu điện Tỉnh thành. Cùng với sự ra đời của các công nghệ mới như .NET platform, cần có một nghiên cứu về lựa chọn công nghệ và các phương thức phát triển ứng dụng phù hợp cho các thành phần ứng dụng kể trên. Hệ thống BCSS của Trung tâm Công nghệ thông tin đã được triển khai rộng rãi tại nhiều Bưu điện Tỉnh/Thành. Đáp ứng tốt cho việc điều hành sản xuất kinh doanh, các chương trình trong hệ thống này sẽ là cơ sở vững chắc cho hệ thống CRM. Tuy nhiên, do công nghệ sử dụng, các chương trình BCSS có một số khó khăn trong việc tích hợp phát triển với hệ thống CRM. Xác định được vấn đề này, một số ứng dụng trong hệ thống BCSS đã được xác định nâng cấp lên phiên bản .NET. Công nghệ .NET cũng đã được lựa chọn để phát triển mới một số module trong hệ thống CRM. Ngoài ra, còn có một nhu cầu không thể không kể đến trong việc chuẩn hóa sử dụng Unicode. Bộ mã các ký tự chữ Việt theo tiêu chuẩn Unicode TCVN 6909:2001 đã được Thủ tướng chính phủ quyết định thống nhất sử dụng trong trao đổi thông tin điện tử từ ngày 10/06/2002. Mặc dù đã được sử dụng phổ biến trong các văn bản điện tử, TCVN 6909:2001 vẫn chưa được sử dụng nhiều trong các ứng dụng công nghệ thông tin, trong đó có nhiều ứng dụng hỗ trợ điều hành sản xuất kinh doanh đang được sử dụng tại Tổng Công ty Bưu chính Viến thông. Như vậy, có thể thấy rõ các nhu cầu thực tế cho việc nghiên cứu công nghệ .NET Framework áp dụng cho việc phát triển và tích hợp các hệ thống phần mềm là cần thiết. Một số nhu cầu tiêu biểu bao gồm: Hỗ trợ TCVN 6909:2001: Nhiều chương trình hiện tại trong hệ thống BCSS được phát triển sử dụng các bộ công cụ cũ như VS6, Delphi. Vì vậy các ứng dụng này đều không hỗ trợ hoàn toàn Unicode. Việc nâng cấp lên phiên bản .NET sẽ giúp giải quyết vấn đề này. Tích hợp hệ thống ở mức ứng dụng: Mức độ tích hợp của các ứng dụng hiện tại thấp, chủ yếu dừng lại ở mức CSDL. Môi trường .NET sẽ xóa nhòa ranh giới giữa các ứng dụng, mở ra khả năng tích hợp hệ thống ở mức ứng dụng. Đây là điều kiện tiên quyết để có thể xây dựng được các ứng dụng theo mô hình CRM. Cấu trúc ứng dụng phân tán trên môi trường Windows: Cấu trúc ứng dụng phân tán đã chứng minh được tính hiệu quả của nó qua nhiều đề tài và sản phẩm của CDiT. Tuy nhiên, hiện tại, cấu trúc này mới được nghiên cứu áp dụng trên Java. Trong khi đó, nhu cầu phát triển các ứng dụng trên môi trường Windows cũng rất lớn, đòi hỏi một nghiên cứu về cách thực hiện ứng dụng phân tán sử dụng .NET Framework. .NET và Java Hiện nay có rất nhiều công nghệ nền để xây dựng ứng dụng theo kiến trúc phân tán. Đứng đầu trong danh sách này có thể kể đến 2 công nghệ nền: Java của Sun Microsystems và Windows của Microsoft. Java Java được giới thiệu đầu tiên vào năm 1995 bởi James Gosling và Henry McGilton và được xem là một kết quả tất yếu do phát triển mạnh mẽ của Internet. Java thường hay nhắc tới với tư cách là một ngôn ngữ lập trình. Tuy nhiên, đầy đủ hơn, nó cần phải được hiểu là một hệ thống các công nghệ nền hỗ trợ phát triển ứng dụng. Java với tư cách là một ngôn ngữ lập trình Java là một ngôn ngữ bậc cao với nhiều ưu điểm: Đơn giản, hướng đối tượng và thân thiện: Một trong những mục tiêu chính của Java là cung cấp 1 ngôn ngữ đơn giản dễ sử dụng và phát triển. Do sự phức tạp ngày càng cao của môi trường tính toán và xử lý trên mạng, Java cung cấp mô hình phát triển hướng đối tượng với các đặc điểm như: đa hình, có tính kế thừa, cơ chế trao đổi qua message và có khả năng tái sử dụng. Java được cài đặt với các thư viện gồm nhiều đối tượng đã được kiểm tra cung cấp đầy đủ các chức năng cho người phát triển ví dụ như: vào ra, giao tiếp mạng, quản lý bảo mật, giao diện người dùng,.... các đối tượng này có thể sử dụng trực tiếp đồng thời cũng có thể mở rộng theo nhu cầu riêng của người phát triển. Với cú pháp giống C++ nhưng một số điểm phức tạp dễ mắc lỗi đã được loại bỏ đã giúp cho java thân thiện với người dùng hơn. An toàn: các đặc điểm của java định hướng và giúp người lập trình có một thói quen lập trình có độ tin cậy cao. Mô hình quản lý bộ nhớ đã được đơn giản hóa, không có các kiểu dữ liệu con trỏ và các phép tính số học trên con trỏ như trong C++. Việc loại bỏ con trỏ đã tạo ra cho Java một số ưu điểm : cơ chế tự động giải phóng bộ nhớ, loại bỏ được các lỗi gây treo hệ thống như khi làm việc với C và C++. Tuy nhiên, điều này cũng đồng nghĩa với việc giảm khả năng tác động sâu vào hệ thống của người lập trình, do đó ít nhiều làm giảm sức mạnh của Java. Kiến trúc dung hòa và có tính khả chuyển: môi trường mạng hiện nay rất đa dạng về các chủng loại thiết bị phần cứng cũng như hệ điều hành. Để hỗ trợ khả năng chạy trên các nền tảng và hệ điều hành khác nhau, bộ biên dịch java tạo ra các mã bytecode một dạng mã trung gian dung hòa về mặt cấu trúc để chuyển mã sang các phần cứng và các hệ hiều hành khác nhau một cách có hiệu quả. Đặc điểm thông dịch của java giải quyết được các vấn đề liên quan tới việc: phân phối mã lệnh nhị phân và quản lý phiên bản, điều này giúp cho java có thể chạy trên mọi nền tảng khác nhau. Có thể nói đây là một trong những ưu điểm lớn nhất của Java. Java với tư cách là một công nghệ nền (platform) Một công nghệ nền là môi trường phần cứng hoặc phần mềm để các ứng dụng có thể chạy trên đó, ví dụ như các hệ điều hành: Windows 2000, Linux, Solaris, and MacOS. Phần lớn các công nghệ nền đều là sự kết hợp giữa hệ điều hành và phần cứng. Java platform thuần tuý là phần mềm, chạy ở lớp trên của các hệ điều hành khác nhau. Có 2 thành phần tạo nên Java platform: Máy ảo Java (Java Virtual Machine -JVM) Thư viện Java lập trình Java API: Hình 11 : Cấu trúc ứng dụng chạy trên Java platform Ứng dụng nhiều lớp trên Java Có 3 thư viện lập trình với Java J2SE (Java Standard Second Edition) : là thư viện lập trình cho các ứng dụng Java cơ bản, chạy trên 1 máy. Thư viện này chứa các giao diện tới máy ảo Java và là nền cho các ứng dụng Java cũng n