Tải bản đầy đủ (.doc) (37 trang)

Báo cáo isas 4 quarter 4 so sánh .net và java

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (278.26 KB, 37 trang )

Shuffle IsasIV
Developed by
• Bùi Phan Anh Vũ:

• Huỳnh Thủy Ngân:
• Huỳnh Minh Tính :
NIIT
Trang1
SO SÁNH JAVA VÀ .NET
Shuffle IsasIV

Trang2
SO SÁNH JAVA VÀ .NET
Mã Số Lớp: B100052

Ngày Bắt Đầu:05/11/2010 Ngày Kết Thúc: 19/11/2010
Giảng Viên Hướng Dẫn:
Nhóm Thực Hiện: Bùi Phan Anh Vũ
Shuffle IsasIV
Trang3
NIIT
CHỨNG NHẬN
Đây là chứng nhận báo cáo về đề tài “Java và .Net” do Bùi Phan Anh Vũ,
Huỳnh Thủy Ngân và Huỳnh Minh Tính thực hiện qua các khóa học ở học
viện NIIT.
Giảng Viên Hướng Dẫn: Phạm Tiến Phúc
Shuffle IsasIV
Trang4
JAVA VÀ .NET
A. Tính Linh Hoạt Và Khả Năng Phát Triển
I. So Sánh Tính Linh Hoạt Của Java và .NET:


1. JAVA:
- Java là một mã nguồn mở do đó ta không phải lo lắng về giấy phép.
- Java là dễ sử dụng ngôn ngữ lập trình.
- Nó rất dễ dàng để viết, biên dịch và gỡ lỗi cho các ngôn ngữ lập trình
khác.
- Java là hướng đối tượng vì Java là tập trung vào việc tạo ra các đối tượng,
thao tác, và làm cho các đối tượng làm việc cùng nhau.
Nó có thể tạo ra các chương trình mô đun và sử dụng lại code.
- Một trong những lợi ích đáng kể nhất của Java là khả năng di chuyển dễ
dàng từ một trong những hệ thống khác.
- Java có khả năng chạy các chương trình tương tự trên nhiều hệ thống khác
nhau là rất quan trọng cho phần mềm World Wide Web.
- Java thành công lúc này bằng được nền độc lập ở cả hai nguồn và mức nhị
phân.
- Viết chương trình mạng trong Java này cũng dễ như việc gửi và nhận dữ
liệu đến và từ một file. JAVA là rất hữu ích cho việc tạo ứng dụng web động.
JAVA lập trình cho phép bảo mật và hiệu suất cao phát triển trên nhiều nền tảng.
- Outsource Java tại Rightway giải pháp, giám định trong JAVA/J2EE phát
triển với các lập trình viên JAVA chuyên nghiệp.
2. .NET
- Hiện giờ trên thế giới mà ta muốn thực hiện trên nền Windows, tỷ như
data access, windowing, nối mạng hay ngay cả mọi công dụng đa dạng của Win32
API (Application Programming Interface) đều có thể vận dụng dễ dàng qua kiểu
mẫu đối tượng (objects) rất đơn giản (simple object model).
- Ngôn ngữ lập trình VB.NET đã được hiện đại hóa, bao gồm nhiều classes
và mọi đặc trưng (features) của 1 ngôn ngữ lập trình kiểu OOP, không thua kém gì
C++, J++ hay C#,
Shuffle IsasIV
Trang5
JAVA VÀ .NET

- Việc quản lý memory được nâng cấp và tinh vi hơn nhằm bảo đảm các
ứng dụng bị té hay cư xử tệ bạt (badly behaved component or application) không
ảnh hưỡng gì đến các ứng dụng khác.
- ASP.NET được dùng để thay thế ASP, đồng thời cung cấp các trang Web
được biên dịch giúp tiến trình xử lý các yêu cầu từ Client browser hiệu quả hơn.
Hơn nữa, còn bao gồm nhiều thành phần soạn sẵn (pre-written components) gọi là
Server Control dùng trong các HTML Form và giao diện (user interface) làm việc
phát triển mạng thêm dễ dàng và đầy hứng thú.
- Các ngôn ngữ lập trình được phác thảo để làm việc gần nhau hơn, do đó
nguồn mã của VB.NET, C++, C#, có thể sử dụng trộn lẫn với nhau rất thoải mái,
tỷ như ta có thể viết mã cho 1 class với VB.NET rồi kế thừa 1 class khác mà mã là
C# hay C++, sau đó vẫn 'debug' ngon lành giữa các ngôn ngữ lập trình khác nhau
đó.
- Thành phần (components) được gói kỹ trong 1 đơn vị gọi là assembly có
thể tự xác minh lý lịch và công dụng làm việc bố trí hay triển khai rất dễ dàng.
II. Khả Năng Phát Triền Của Java Và .Net:
1. JAVA:
-Sự tích hợp chặt chẽ giữa các công cụ miễn phí tạo thành bộ khởi đầu các
ứng dụng Java của bạn: Eclipse, DB2 Express-C 9.5, và WebSphere Application
Server Community Edition 2.0 (gọi tắt là Máy chủ ứng dụng) đã đáp ứng tốt các
nhu cầu của các nhà phát triển ứng dụng Java EE và các dịch vụ web. Đi đôi với
hướng dẫn này là hướng dẫn, Khởi đầu các ứng dụng Java của bạn, Phần 1: Phần
mềm miễn phí, phát triển nhanh chóng, trình bày về cách các công cụ này làm việc
cùng nhau như thế nào để phát triển phần mềm Java EE.
-Ngày càng có nhiều nhà phát triển Java đang thử nghiệm các giao diện
người dùng trên nền web tương tác cao, bao gồm các lựa chọn mà không đòi hỏi
phải sử dụng một thùng chứa Java EE truyền thống. Những khám phá như vậy
thường bắt bạn phải học thêm một ngôn ngữ lập trình chưa qua kiểm chứng, phải
làm việc với công cụ có mức chất lượng beta, và đặt cược vào công nghệ triển khai
chưa qua thử thách với thời gian.

Shuffle IsasIV
Trang6
JAVA VÀ .NET
-Thật bất ngờ cho bạn khi biết được rằng bộ công cụ mạnh, làm ra sản phẩm
thực sự, do IBM hậu thuẫn miễn phí mà bạn đang dùng cho các nhiệm vụ phát triển
Java EE cũng có thể là người bạn tốt nhất của bạn trong việc khám phá lĩnh vực
phát triển giao diện người dùng thay thế. Tin tức tuyệt vời nhất là ở chỗ tất cả các
mã chương trình của bạn — gọn nhẹ hay truyền thống — có thể tận dụng ưu thế
của tập hợp đặc tính dễ sử dụng, phong phú của Eclipse, sự hoàn thiện và mạnh mẽ
của DB2 Express-C, và hỗ trợ triển khai cấp thế giới của Máy chủ ứng dụng.
-Hướng dẫn này cho bạn thấy làm thế nào để di chuyển một ứng dụng từ
một thiết kế truyền thống tới một thiết kế dựa trên công nghệ JavaScript không
đồng bộ (Asynchronous JavaScript) và XML (Ajax) — tất cả nằm trong môi
trường thân thiện và quen thuộc của bộ khởi đầu ứng dụng Java của bạn.
-Để khởi đầu các ứng dụng Java của bạn, IBM đã gộp một tổ hợp mạnh các
thành phần phần mềm có sẵn miễn phí với nhau để truy cập dữ liệu, phát triển và
triển khai ứng dụng:
• Máy chủ cơ sở dữ liệu DB2 Express-C 9.5
• Máy chủ ứng dụng WebSphere phiên bản cộng đồng 2.0
• Môi trường phát triển tích hợp Eclipse (Eclipse IDE)
-Bạn không bị buộc phải sử dụng những gói này trong tổ hợp như trên; mỗi
gói đều làm việc được với nhiều thành phần dựa trên các chuẩn mở khác nhau. Bạn
có thể sử dụng Eclipse với các máy chủ ứng dụng khác (kể cả không phải Java) và
các cơ sở dữ liệu khác. Máy chủ ứng dụng không đòi hỏi DB2 Express-C 9.5 hay
Eclipse. Và DB2 Express-C 9.5 có thể phù hợp với các môi trường phát triển và
triển khai khác với Eclipse và Máy chủ ứng dụng. Nhưng, rồi bạn sẽ hiểu đầy đủ từ
hướng dẫn này, khi sử dụng bộ tích hợp chặt chẽ như một tổng thể nói trên, bạn sẽ
có rất nhiều thuận lợi.
-Thông tin về hướng dẫn này
Shuffle IsasIV

Trang7
JAVA VÀ .NET
-Bạn sẽ bắt đầu hướng dẫn này bằng cách tạo ra một bảng thông tin nhân
viên, sử dụng công nghệ JSP và servlet tiêu chuẩn. Bạn sẽ làm tất cả các công việc
phát triển và thử nghiệm bằng cách sử dụng bộ khởi đầu các ứng dụng Java. Bạn sẽ
thiết kế các ứng dụng trong Eclipse và sau đó triển khai và thử nghiệm nó trên Máy
chủ ứng dụng. Các ứng dụng sẽ tìm về và hiển thị thông tin nhân viên, bao gồm cả
hình ảnh, từ một cơ sở dữ liệu DB2 Express-C 9.5 theo chế độ tương tác.
-Sau đó, hướng dẫn này thảo luận về một số hạn chế trong thiết kế ứng dụng
JSP và chỉ ra cách làm thế nào để một giải pháp dựa trên Ajax nhẹ có thể giúp để
vượt qua các hạn chế này. Hướng dẫn này cũng giới thiệu các khái niệm Ajax cơ
bản và một bộ dụng cụ Java phổ biến có tên là Web trực tiếp từ xa (Direct Web
Remoting - DWR) (xem Tài nguyên). Bạn sẽ chuyển đổi ứng dụng sang một thiết
kế nhẹ. Các ứng dụng được thiết kế lại nằm trong một trang HTML, lưu trú trên
Máy chủ ứng dụng hoạt động như một máy chủ Web đơn giản, truy cập trực tiếp
thông tin cơ sở dữ liệu DB2 Express C sử dụng Ajax và tuần tự hóa ký pháp đối
tượng JavaScript (JavaScript Object Notation - JSON).
2 .NET
- Cần nhắc lại là Java là một ngôn ngữ lập trình tân tiến, được thiết kế ngay
từ đầu để dùng cho Internet, hỗ trợ Unicode, với nguyên tắc "Write Once, Run
Everywhere". Java đến từ C++, nhưng đơn giản hơn, nhất là không có pointers. Nó
được compiled ra "byte code" để có thể chạy trên bất cứ computer nào hỗ trợ "Java
Virtual Machine", một dạng code intepreter. Do đó nó là platform independent, lôi
cuốn những tổ chức và cá nhân ghét Microsoft. Trên thực tế, Java không thích hợp
cho desktop application và Java Applet bị coi là quá chậm khi chạy trong
WebBrowsers. Dầu vậy, vì Microsoft không cung cấp phương tiện hoàn hảo cho
Web Development nên Java đã chiếm một vị thế vững vàng trong Enterprise/E-
Commerce WebDevelopment.
Shuffle IsasIV
Trang8

JAVA VÀ .NET

-ASP là một giải pháp tạm thời của Microsoft cho WebServer Application
nên nó có nhiều khuyết điểm.
-Dù Microsoft không nhìn nhận, nhưng C# là hậu tự của Java, tức là nó ngồi
trên vai của người khổng lồ Java, cũng giống như trước đây Java ngồi trên vai
người khổng lồ C++ . Nhớ là Java chào đời năm 1995, còn C# được thiết kế năm
1998.
-C# giữ tất cả các ưu điểm của Java và thêm nhiều sáng kiến như:
a. Dùng Common Language Runtime (CLR) để hỗ trợ nhiều ngôn ngữ lập
trình (cho phép cross-language inheritance), có Just-In-Time compiler, garbage
collector (automatic memory management) và Security check. Framework của
CLR cung cấp đầy đủ mọi Classes ta cần từ Thread, Stream, Serialization,
Remoting cho đến Encryption.
b. Trong C# mọi data đều là Object, khoảng cách giữa value type và
reference type được nối lại. Properties, Methods và Events là căn bản, tức là chúng
được Framework hỗ trợ tự nhiên. Thí dụ như ta có thể viết o.Value++ thay vì
o.SetValue(o.GetValue()+1) .
c. C# dùng "Attributes" để dặn compiler chứa các tin tức về components mà
lúc run-time CLR đọc được.
d. Webservices rất đơn giản và hiệu năng.
e. Hỗ trợ XML tuyệt đối.
Nói chung cái gì Java làm hay thì C# làm hay hơn, thí dụ như Event
Handling và Remoting.
Shuffle IsasIV
Trang9
JAVA VÀ .NET
* Chiến Lược
-Trong khi Sun phát minh ra Java vì sự tình cờ thì tạo ra .NET, trong đó có
C#, là cả một chiến lược của Microsoft. Trong tương lai tất cả applications của

Microsoft đều được ported qua .NET. Mới đây Microsoft release 6 CDs cho 6800
IT professionals ở một week-long conference. Các CDs nầy chứa Microsoft XML-
based blueprint - software for .NET Framework, VisualStudio.NET, technology
preview for .NET Alerts, .NET Speech và Commerce Server 2002, software
development kits cho .NET My Services và .NET Compact Framework. Lúc ấy,
Microsoft cũng phát hành Microsoft XML Core Services (MSXML 4.0) và
SQLXML 2.0 (một upgrade của SQL Server 2000).
-Sự lấn áp của Java đối với Microsoft VB6/VC++/ASP trong mấy năm
trước có lẽ cũng giống như Netscape đối với Internet Explorer. Theo thống kê
Microsoft chiếm 42% Server Market (và đang tăng lên) với trên 90% desktop
market. Nếu không còn nhiều Platforms trong Market thì đặc tính Platform
Independence không còn quan trọng nữa.
-Ngoài ra, .NET Framework với CLR powerful hơn JVM nhiều. Và ngay cả
đặc tính "Write Once, Run Everywhere", thật ra chỉ là lý thuyết nên nhiều khi người
ta vẫn phải test JVM mới với Java program của mình, nên có câu "Write Once,
Debug EveryWhere".
-Ta phải nhớ rằng Bill Gates xuất thân là một programmer nên ông ta hiểu
programmer hơn ai hết. Viển tượng của Bill Gates khủng khiếp và ông dám nói,
dám làm.
-Một khi đã nhất quyết rồi thì dù thất bại bao nhiêu lần, rốt cuộc ông ta cũng
phải thắng. Như MSWord thắng WordPerfect, MSWindows thắng McIntosh,
VisualStudio thắng Borland, WindowsNT thắng Unix, IE thắng Netscape, ngay cả
vụ kiện AntiTrust của 18 tiểu bang ở Mỹ rốt cuộc không ai làm gì được.
Shuffle IsasIV
Trang10
JAVA VÀ .NET
III. So sánh Java Và .Net
- Java cho ta một tầm nhìn về công nghệ, .NET chỉ đem lại cho ta một tầm
nhìn về công cụ.
- Java đại diện cho mã nguồn mở, .NET đại diện cho mã nguồn gần như

không bao giờ mở.
- Java làm viêc với nhiều framework, .NET gần như chỉ thích nghi tốt nhất
với 1 framework là chính nó.
- Cùng 1 vấn đề Java có thể lựa chọn nhiều giải pháp (từ commerce đến
opensource) WebLogic hay JBoss đều vô tư , .NET gần như chỉ có thể chọn 1
giải pháp là commerce, thậm chí giải pháp đó còn phải có cái thêm cái đóng dấu
M$ mới có thể hoạt động
- IDE cho Java có thể lựa chọn thoải mái từ opensource (eclipse,
netbean, ) đến commerce (WebSphere, IntelliJ IDEA, Jbuilder, ) , IDE cho
.NET chỉ có thể là VS.NET, hoặc Borland Developer (cũng là money nốt).
- Java run anywhere từ unix, linux, mac, windows .NET chỉ có thể làm
bạn với windows
- Java giúp người mới học IT sử dụng tốt keyboard, .NET lại giúp họ thành
thạo với mouse.
- Ở thời đại nông nghiệp "tư liệu sản xuất" là đất đai, công cụ lao động là
"cái cày, con Sửu" thời đại thông tin, Java cho ta "đất đai màu mỡ" .NET cho ta
"con Sửu khỏe, cái cày to".
- Java chú trọng tính ổn định, bảo mật .NET chú trọng sự thoải mái và
tốc độ.
Shuffle IsasIV
Trang11
- .NET ngăn cản mọi người tìm kiếm giải pháp ngoài Microsoft, Java
khuyến khích mọi người tìm kiếm giải pháp không phải của SUN để kết hợp với
chính nó.
- Người ham thích Java là người thích gỗ hơn thích nước sơn, người
thích .NET là người rất dễ bị đánh gục bởi màu sơn chứ không phải gỗ.
- Người thích .NET là người thích tất cả mọi thứ mình cần và cả không
cần đều phải nằm tại 1 nơi duy nhất, người thích Java lại thích được lựa chọn thứ
mình cần từ nhiều nơi và so sánh cũng như lắp ráp chúng lại để có được những giải
pháp của riêng mình.

- .NET là có thể là 1 framework đồ sộ, và hòan chỉnh nhất nhưng chưa
chắc là giải pháp tối ưu nhất và vấn đề đau đầu là bạn không có quyền lựa chọn thứ
nào khác ngoài nó, với Java giải pháp tối ưu nhất là giải pháp kết hợp nhiều
Framework lại với nhau và trên hết bạn hòan tòan chủ động trong việc chọn lựa thứ
mình cần.
- Java là của tất cả mọi người, .NET chỉ là của riêng Microsoft.
- Người đam mê Java là những người mong muốn làm được những việc
người khác không thể làm được hoặc khó có thể làm được, người đam mê .NET
mong muốn làm lại được những điều mà người khác đã làm.
- Java kích thích tính sáng tạo từ óc tò mò và nỗ lực, .NET ko yêu cầu
nhiều nỗ lực, và óc tò mò vẫn có thể "tái bản" tính sáng tạo.
- 90% địa bàn Châu Âu dùng Java, 90% địa bàn châu Á thích .NET còn
VN thì không cần biết gì về .NET hay Java gió theo chiều nào thì bay theo chiều
đó. ("hiệu ứng bầy đàn" là giải pháp duy nhất giải quyết những câu hỏi khi họ
không thể tự trả lời).
- Fan của .NET luôn đề cao khẩu hiệu: "mức độ tiện lợi thể hiện nét đẹp
của một ngôn ngữ lập trình". Fan của Java lại có khẩu hiệu: "nét đẹp trong ngôn
ngữ lập trình là sự kết hợp giữa mức độ tiện lợi và bản chất của sự tiện lợi".
JAVA VÀ .NET
Shuffle IsasIV
Trang12
- Người mới học Java nói: "Ặc! cái quái gì thế này? lập trình mà thế này
à ?", người mới học .NET nói: "Ôi ! Làm việc với .NET thật tuyệt vời !Thế này mới
đúng là lập trình !".
- Lập trình viên .NET: "M$ cho gì thì làm đấy, nếu không có thì đợi version
sau", Lập trình viên Java: "Sun không có hãy thử IBM, IBM không có hãy thử
Oracle, Oracle cũng không có hãy tìm hiểu Borland, Jetbrain, Weblogic, tất cả
đều không có thì hãy tìm từ cộng đồng opensource và khi không còn gì nữa thì
giải pháp cuối cùng mới là đợi version kế tiếp
JAVA VÀ .NET

Shuffle IsasIV
Trang13
JAVA VÀ .NET
B.Bảo Mật và An Ninh
I. Khái quát chung về Security ( bảo mật – an ninh):
1 Giới thiệu:

Tầm quan trong của an ninh truyen thông từ lâu đã được ghi nhận trong quân sự
và trong các lĩnh vực xã hội nơi có thể xuất hiện nhiều huy hiển an ninh quốc gia việc
làm chủ an ninh truyền thông và những con số bí mật của nó, giải mã các mật mã được
cong nhận như một tác nhân quan trong đem lại sự chiến thắng trong nhiều cuộc xung
đột quân sự từ nhiều thế kỹ qua trong đó có cả thế chiến II thế kỷ trước. Với khái niệm
bị bóp méo hay bí mật bị mất mát trong quá trính truyền tin. Việc giài mã các mật mã
là phương tiện làm vô hiệu hóa các chức năng an ninh của đối phương.
Việc giải mã các mật mã từ lâu đã được coi là các cuộc chiến phức tạp và khó
chịu cho dù giá thành của các giải pháp an ninh phức tạp cũng không nói lên điều gì.
Tuy nhiên, hiện nay có ba xu hướng phát triển chính làm cho các vấn đề an ninh truyền
thong ngày càng trở nên nghiêm trọng và buộc chúng ta cần phải đánh giá khẩn cấp
quan điểm này là:
Sự gia tăng liên kết giữa các hệ thống và các mạng làm cho một hệ thống bất
kỳ đều có thể trở thành truy cập được đối với một cộng đồng người dung hoàn toàn
không quen biết gia tăng nhanh chóng về số lượng.
Việc sử dụng ngày càng nhiều mạng máy tính để truyền đi các thông tin nhạy
cảm an ninh, ví dụ, chuyển tiền điện tử, trao đổi dữ liệu thương mại, các thong không
mật nhưng nhạy cảm của chính phủ, và các thông tin liên quan đến tài sản của các công
ty và các tập đoàn vv…
Shuffle IsasIV
Trang14
JAVA VÀ .NET
Kỹ thuật tấn công mạng máy tính ngày càng trở nên dễ dàng hơn nhờ có sẵn

các công nghệ phát triển phức tạp và giá thành của các công nghệ đó thường xuyên
giảm xuống nhanh chóng làm cho bất kỳ người nào cũng có thể trở thành kẻ tấn công
mạng. Những kẻ tấn công mạng (hacker) hiện nay là những phần tử “thâm canh cố đế”
của môi trường mạng diện rộng [STE1]. Các mạng của chính phủ, của các cơ quan tài
chính, của những công ty viễn thông và các tập đoàn tư nhân đã trở thành những nạn
nhân của các vụ đột nhập của (hacker) và trong tương lai vẫn là những mục tiêu săn
đuổi của chúng.
Các vụ đột nhập mạng thường có phạm vi tác động rất rộng như một số biểu
hiện của các trường hợp đã được ghi lại dưới đây: Một loạt các đợt tấn công của
hacker vào hàng trăm cơ sở nghiên cứu của chính phủ và quân đội Mỹ được mô tả chi
tiết bởi cơ quan Cliff Stoll [STOL1]. Đó là trường hợp của các đợt tấn công thành công
(hầu như không bị phát hiện) trong thời gian nhiều tháng trời. Thủ phạm là một cơ
quan tình báo nước ngoài. Động cơ cá nhân của hacker là cơ hội thu lợi về tài chính.
Từ câu truyện của Cliff Stoll thì thông điệp làm cho những thao tác viên mạng và
những người dùng lo lắng nhất chính là sự dễ dàng mà các hacker đã đột nhập và thiết
bị rất sơ đẳng mà chúng đã sử dụng với trình độ kỹ thuật tầm thường.
Con sâu mạng (Internet Worm) được thả lên mạng Internet vào tháng 11 năm
1988 bởi sinh viên Robert Morris Jr. của trường đại học Cornell [SPA1]. Con sâu mạng
này là một chương trình đột nhập tự nhân bản Nó tiến hành quét toàn mạng internet để
lan nhiễm và khống chế hữu hiệu tối thiểu là 1200 (có thể lên đến 6000) máy tính
mạng internet chạy trên hệ điều hành UNIX.
Có rất nhiều động cơ sâu xa để tấn công vào các mạng thương mại hoặc không
mật của chính phủ. Đó là các vụ đột nhập mạo hiểm và phiêu lưu để gian lận tài chính,
ăn cắp tài nguyên viễn thông, làm gián điệp công nghiệp, nghe lén để lấy trộm thông
tin phục vụ cho lợi ích chính trị hoặc tài chính của những nhân viên bất bình hoặc
những kẻ cố tình phá hoại.
Ngoài những kiểu tấn công cố tình thì an ninh truyền thông cũng cần phải ngăn
ngừa sự khai thác vô tình của người dùng. Việc kết nối vô tình của phiên truyền thông
nhạy cảm đến một địa chỉ sai hoặc một lỗi vô tình đối với thông tin nhạy cảm cần được
bảo vệ có thể gây ra một sự phá hoại thành công như một sự tấn công có chủ ý .

Shuffle IsasIV
Trang15
JAVA VÀ .NET
II. So sánh hai nền tảng Java và. NET:
1. Tóm lược:
Nhiều hệ thống thực thi các chương trình không đáng tin cậy trong các máy ảo
(VM) để hạn chế truy cập tài nguyên hệ thống của mình. CN giới thiệu các máy ảo
Java vào năm 1995, chủ yếu nhằm mục như là một trọng lượng nhẹ nền tảng để thực
hiện các mã không tin cậy bên trong các trang web. Gần đây, Microsoft đã phát triển
nền tảng. NET với mục tiêu tương tự. Cả hai chia sẻ nhiều thiết kế nền tảng và thực
hiện tài sản khá giống nhau, nhưng có sự khác biệt quan trọng giữa Java và. NET về
mặt an ninh.
2. Tổng quan Java and .net :
Java và. NET được cả hai nền tảng để thực hiện các chương trình không đáng
tin cậy với các giới hạn bảo mật. Mặc dù 2 nền tảng này chia sẻ những mục tiêu
tương tự và thiết kế của nó cũng tương tự như trong hầu hết các khía cạnh, có vẻ
như là đáng kể sự khác biệt trong khả năng của lỗ hổng bảo mật trong hai nền tảng.
Một tìm kiếm hiện tại cho Java lỗ hổng trên các tổn thương thường gặp và
Exposures (CVE) cơ sở dữ liệu sản lượng 82 mục [27], 30 trong đó chúng ta phân
loại như chính nền tảng Java lỗ hổng bảo mật
Các giá trị âm mưu là số tích lũy các lỗ hổng bảo mật được báo cáo trong mỗi
nền tảng từ việc phát hành chính thức đầu tiên (Java 1.0 trong Tháng 1 năm 1996
[40];). NET 1.0 trong tháng một năm 2002 [26].
Bảng 1 tóm tắt các báo cáo lỗ hổng bảo mật Java trong những năm qua. Lập
trình an toàn Internet đội [8, 49, 50] và McGraw và Felten [22] xác định một số sớm
triển khai thực hiện lỗ hổng trong Java.
Shuffle IsasIV
Trang16
JAVA VÀ .NET
Việc công bố công khai rộng rãi nhất vấn đề bảo mật trong. NET

W32.Donut, một loại virus nắm quyền kiểm soát thực thi trước khi thời gian chạy.
NET đã kiểm soát [46].

Tuy nhiên, kể từ. NET ra đời khuôn khổ hiện nay cung cấp như một bản cập
nhật Windows và sau đó Windows đã có hơn 90% thị trường máy tính để bàn với
một số lượng lớn các máy sử dụng nền tảng. NET trình bày một mục tiêu hấp dẫn.
Một khả năng khác là những lỗ hổng bảo mật hơn đã được tìm thấy trong triển khai
thực hiện Java vì có một số khác nhau trong khi triển khai máy ảo Java. NET duy
nhất của Microsoft thực hiện
.
Đầu năm1996 Tháng ba, cả hai Microsoft và Netscape đã được cấp phép
Java, hai tháng sau ngày phát hành 1,0 [40]. Khi được cấp phép Java, cả hai
Netscape và Microsoft triển khai thực hiện dựa trên việc thực hiện Sun [39] rất
nhiều mã và thiết kế được chia sẻ qua ba triển khai thực hiện. Các báo cáo đầu tiên
chín lỗ hổng Java đã làm ảnh hưởng đến cả ba triển khai thực hiện, bao gồm cả
người đầu tiên 5 / 12 tổng số lỗ hổng xác minh.

Mặc dù phổ biến mã nguồn mở,. nền tảng NET hiện thực tồn tại như là Mono [30]
và dotGNU [7]
Một khả năng khác chỉ là .NET tránh lỗ hổng bảo mật cụ thể đã được biết
đến bởi vì kinh nghiệm trước đó với Java. Điều này có thể đúng trong một vài
trường hợp ,c ó sự khác biệt giữa các nền tảng mà hầu hết các lỗ hổng bảo mật sẽ
không có trực tiếp tương tự. Hơn nữa, các lỗ hổng tiếp tục được tìm thấy trong các
phiên bản mới của Java ngay cả sau khi. NET phát hành.
3. Tính ưu điểm và nhược điểm giữa Java và .Net :
*Ưu điểm:
a - .NET:
- Dễ phát triển, tools hỗ trợ cực tốt (Visual Studio)
- Phát triển giao diện rất dễ dàng trên Windows.
- Làm việc tốt với tất cả các công nghệ khác của Microsoft (COM, DCOM)

b - JAVA:
- Kiến trúc thiết kế rất tốt.
- Cộng đồng mạnh, do là công nghệ mở -> nhiều công nghệ hay ho xuất hiện từ
cộng đồng (Vd: Hibernate, Spring…)
- Chạy tốt trên nhiều platform khác nhau (nhất là trên linux).
Shuffle IsasIV
Trang17
JAVA VÀ .NET
*Nhược điểm:
a - .NET:
- Chỉ chơi tốt với “hàng” của Microsoft.
- Mã nguồn đóng, tuy các thiết kế, specification là mở (nên mới có cái Mono)
- “Làm giùm” người lập trình quá nhiều -> tạo ra những lập trình viên theo đúng
“chuẩn” của Microsoft (thông thường sẽ khác chỗ này, chỗ kia so với chuẩn còn lại
của thế giới).
- Muốn can thiệp sâu vào kiến trúc bên dưới hơi bị khó.
- Tuy đã có Mono Project cho Linux, nhưng các application viết bằng .NET hầu như
chỉ chạy tốt trên hệ điều hành của Microsoft.
b - JAVA:
- Khó phát triển hơn, nhất là việc debug.
- Tools hỗ trợ không mạnh bằng, đơn giản, miễn phí thì chẳng ai lo chăm chút tất cả
cho bạn được.
- Có vẻ như tốc độ chậm hơn các chương trình .NET
- Bảo mật source code không tốt bằng .NET.
Shuffle IsasIV
Trang18
JAVA VÀ .NET
4 Kết luận:
Java và. NET có những mục tiêu an ninh và các cơ chế tương tự. được
hưởng lợi. NET của thiết kế từ quá khứ kinh nghiệm hơn so với Java. Ví dụ về các

thiết kế này sạch hơn bao gồm các tập lệnh MSIL, mã truy cập bảo đảm chứng cứ,
và chính sách cấu hình. .NET có thể che chắn nhà phát triển từ một số của sự phức
tạp nằm bên dưới thông qua kiến trúc mới của họ.
Trường hợp Java phát triển từ một nền tảng ban đầu với khả năng bảo mật
hạn chế, kết hợp. NET hơn bảo đảm khả năng thành thiết kế ban đầu của nó. Với
tính năng mới và tuổi tác, nhiều mã di sản của Java vẫn còn cho tương thích bao
gồm cả khả năng của một null SecurityManager , Và tuyệt đối tin tưởng của các
tầng lớp trên bootclasspath
.
Do đó, trong một số lĩnh vực có. NET lợi thế an toàn hơn Java vì thiết kế
của nó đơn giản hơn. Hầu hết các bài học để học hỏi từ các lỗ hổng Java của
Schroeder nguyên tắc cổ điển và Saltzer, đặc biệt là nền kinh tế của các cơ chế, đặc
quyền nhất và mặc định an toàn.
III. Công tác bảo mật hệ thống:
1. Truy cập vật lý ( Physical access):
Việc đầu tiên mà các quản trị hệ thống cần xem xét là việc bố trí hệ thống
hợp lý. Đối với crack máy chủ (server machine) và máy trạm (workstation
machine) quan trọng cần phải được đặt trong 1 khu vực an toàn. Chỉ cần một sự
tiếp cận trực tiếp đến các máy chủ, bất cứ ai cũng có thể gây nguy hại cho hệ
thống.
a/ Các nguy cơ đối với việc tiếp cận trực tiếp:
−Kẻ xâm nhập (intruder) có thể kết liễu hệ thống của bạn bằng cách tắt hệ
thống cung cấp điện dẫn đến việc sự hoạt động của hệ thống bị gián đoạn. Các dữ
liệu quan trọng sẽ bị hư hoặc mất vĩnh viễn, các giao dịch với khách hàng sẽ bị
đình trệ dẫn đến việc mất uy tín và sự uỷ nhiệm giữa các bên là điều không tránh
khỏi.

Shuffle IsasIV
Trang19
JAVA VÀ .NET

− Bằng cách sử dụng backdoor ( phương pháp sử dụng các phần mềm hay
thiết bị đặc biệt để vượt qua sự chứng thực bình thường của hệ thống trong quá
trình khởi động nhằm chiếm quyền kiểm soát) hay các mật khẩu mặc định kẻ tấn
công có thể dễ dàng phá vỡ bức tường chứng thực của hệ thống. Kẻ ác ý có thể sẽ
không thực hiện các việc phá hoại ngay lập tức mà sẽ để lại các chương trình theo
dõi, dò mật khẩu, các trojan và virus để phục vụ các ý đồ không tốt về sau.
b/ Phương pháp khắc phục:
− Đặt các máy chủ quan trọng trong các phòng chứa đặc biệt.
− Thiết lập các ổ khoá cho các cửa ra vào. Nếu cần thiết có thể lắp đặt các camera
quan sát ở các vị trí chủ chốt.
− Sử dụng các phương pháp chứng thực thông qua mật khẩu, thẻ thông minh, quét
mống mắt, dấu vân tay đối với cửa ra vào.
− Hạn chế sử dụng các thiết bị gắn ngoài như USB, CD/DVD-ROM, Floopy Disk,
External Disk, Thiết lập các tập tin cấu hình nhằm hạn chế việc sử dụng các cổng
USB, CD-ROM
− Nếu có sử dụng màn hình chờ, phải đặt mật khẩu bảo vệ.
− Phải logout khỏi hệ thống khi một tác vụ hệ thống đã hoàn thành.
− - Lựa chọn các thiết bị lưu trữ có độ tin cậy cao để đảm bảo an toàn cho dữ liệu.
Phân loại dữ liệu theo các mức độ quan trọng khác nhau để có chiến lược mua sắm
thiết bị hoặc xây dựng kế hoạch sao lưu dữ liệu hợp lý.
- Sử dụng các hệ thống cung cấp, phân phối và bảo vệ nguồn điện một cách hợp lý.
- Tuân thủ chế độ bảo trì định kỳ đối với các thiết bị.
2. Dịch vụ và gói (Service and package):
Cài đặt hệ thống với các dịch vụ và gói cài đặt vừa đủ để sử dụng. Nguy cơ
càng tăng cao khi hệ thống được cài đặt với quá nhiều dịch vụ và phần mềm không
cần thiết.
Trong quá trình cài đặt hệ thống, không nên chọn phương pháp cài tất cả
trong một ( Full installation ). Chỉ nên cài đặt các thành phần quan trọng mà hệ
thống cần. Việc thêm vào các gói dịch vụ hoặc các phần mềm chuyên dụng có thể
được cài đặt sau. Việc xoá bỏ các gói phần mềm phải chú ý xoá luôn các thành

phần đi kèm ( nếu các ứng dụng khác không dùng đến các thành phần này).
Shuffle IsasIV
Trang20
JAVA VÀ .NET
Chúng ta cần phải có kế hoạch triển khai hợp lý. Vai trò của các máy chủ
(server role) cần phải được xem xét cụ thể và đúng mức. Ví dụ: ta có thể cài đặt một
hệ thống các các dịch vụ DNS, DHCP, Proxy, Firewall, Mail, Webdav trên các máy
chủ riêng biệt nhằm tránh nguy cơ bị tấn công từ xa thông qua các lỗ hổng bảo mật
mà mỗi dịch vụ có thể tiềm ẩn. Tuy nhiên, ta có thể chọn phương án cài đặt kết hợp
một số các dịch vụ đan xen nhằm tăng hiệu năng hoạt động của hệ thống như : cài
đặt DNS trên Domain Controller, kết hợp FTP vơi Web (Webdav)
Tắt các cổng TCP/UDP không dùng tới. Bất cứ một cổng mở nào cũng sẽ là
cơ hội tốt cho kẻ tấn công tìm kẻ hở để xâm nhập vào hệ thống của bạn.
3. Mật khẩu:
Người quản trị hệ thống cần phải có sự quan tâm đặc biệt đối với mật khẩu
người dùng ( user password) và mật khẩu quản trị ( root password hay
Administrator password). Một chính sách quản lý mật khẩu tốt sẽ góp phần giúp
hạn chế việc truy cập bất hợp pháp.
Không báo giờ được lưu trữ các mật khẩu trên các giấy tờ hay trên các tập
tin không mã hoá (plain-text). Có thể sử dụng các công cụ mã hoá để mã hoá các
tập tin quan trọng này nếu cần.
Tận dụng các thuật toán mã hoá mật khẩu mà hệ thống cung cấp (MD4,
MD5). Tắt chức năng password cache (Windows), sử dụng GRUB password hoặc
khoá single-user mode (Unix/linux), sử dụng tính năng shadow thay cho tập tin
etc/passwd thông thường ( Unix/Linux).
Thay đổi mật khẩu theo một kế hoạch định trước. Thiết lập các chính sách
(policies) liên quan đến mật khẩu như: thay đổi mật khẩu định kỳ, chiều dài mật
khẩu, độ phức tạp
4- Giữ hệ thống luôn được cập nhật (System update):
Các gói vá lỗi ( security patch hay service patch) từ các nhà cung cấp sẽ giúp

hệ thống tránh khỏi các lỗ hổng bảo mật nguy hiểm.
Nên thường xuyên theo dõi các trang tin tức về bảo mật, khi một lỗi bảo mật
được phát hiện, hãy nhanh chóng cập nhật các gói vá lỗi ngay khi nó được phát
hành.
Shuffle IsasIV
Trang21
5. Kiểm tra hệ thống định kỳ (system scanning):
Trong tất cả các trường hợp thì việc đề phòng (preventtion) bao giờ cũng tỏ
ra hiệu quả hơn việc phòng chống (cure). Việc kiểm tra các lỗ hổng bảo mật sẽ giúp
quản trị viên phát hiện sớm và có sự sửa lỗi kịp thời trước khi hệ thống bị kẻ tấn
công khai thác các lỗi bảo mật này.
Dù hệ thống triển khai chạy trên nền Unix, Linux hay Windows vẫn luôn có
các công cụ giúp quản trị viên quét hệ thống (security scan) nhằm phát hiện các vấn
đề về bảo mật. MBSA (Microsoft), tiger(Unix) là các ví dụ về các ứng dụng kiểm
tra và phát hiện các vấn đề về bảo mật.
Cần phải kiểm tra hệ thống trước và sau khi các bản vá bảo mật được phát
hiện và thực thi.
6. Sao lưu và phục hồi hệ thống:
Một hệ thống với các thành phần cứng tốt và phần mềm ổn định cũng sẽ
không thể tránh khỏi các trường hợp hư hỏng do thiên tai hay các cuộc tấn công của
hacker.
Các hệ thống Unix và Windows đều có các công cụ miễn phí đi kèm (built-
in) sẽ hỗ trợ các quản trị viên trong việc sao lưu và phục hồi hệ thống dễ dàng. Nếu
nguồn ngân sách tốt, chúng ta có thể sử dụng các phần mềm và phần cứng sao lưu
chuyên dụng với hiệu quả cao và tính sẵn sàng tốt như: Norton Ghost, Symantec
Netbackup, UltraBac Software …
Khi tiến hành sao lưu hệ thống cần phải chuẩn bị các vấn đề liên quan như:
bao lâu bạn sẽ phải sao lưu hệ thống một lần? Bao nhiêu dữ liệu quan trọng cần
chúng ta sao lưu? Thiết bị sao lưu là ổ đĩa cứng hay băng từ? Các chính sách bảo
mật thiết bị và dữ liệu sao lưu như thế nào?

Luôn phải ghi báo cáo mỗi khi sao lưu và phục hồi hệ thống.
smile
Xây dựng bức tường lửa, tức là tạo một hệ thống bao gồm phần cứng và
phần mềm đặt giữa hệ thống và môi trường bên ngoài như Internet chẳng hạn.
Thông thường, tường lửa có chức năng ngăn chặn những thâm nhập trái phép
(không nằm trong danh mục được phép truy nhập) hoặc lọc bỏ, cho phép gửi hay
không gửi các gói tin.Các phương thức chứng thực điện tử (digital signatures),
chứng thực thông qua CA, các phương thức mã hoá như SSL, IPSec,VPN sẽ giúp
dữ liệu trên mạng trở nên khó khăn trong việc bị khai thác hơn.
JAVA VÀ .NET
Shuffle IsasIV
Trang22
JAVA VÀ .NET
Các hệ thống dự phòng như Additional DCs, Cluster,Load Balancing, công
nghệ RAID sẽ giúp hệ thống trở nên sẵn sàng (availability) và an toàn hơn trong các
cuộc tấn công của hacker như DOS, DDOS,
Các chương trình chống virus (anti-virus) và phần mềm gián điệp (spyware)
phải được đưa vào sử dụng nhằm tránh các cuộc tấn công từ bên trong.
IV.[Security] Security Watch Subjects và nguyên tắc bảo mật :
Ở mức cơ bản nhất, mọi thứ trong bảo mật có thể qui về chủ thể và khách
thể. Khách thể là những thứ bạn bảo vệ và chủ thể là những thứ bạn cần bảo vệ
chúng.
Hai đối tượng này được dùng trong chứng nhận (cho biết bạn là ai), cấp phép (cho
truy cập đến một cái gì đó), và kiểm tra (theo dấu ai đã truy cập cái gì). Về cơ bản
thì những khái niệm này cũng đơn giản, như hình 1.
Hình 1 một người dùng đang cố gắng đọc 1 file.
Shuffle IsasIV
Trang23
JAVA VÀ .NET
Chủ thể là những gì làm việc, còn khách thể là những thứ mà chủ thể làm

việc. Ngoài ra, thỉnh thoảng những khách thể này là chủ thể của những khách thể
khác.
Windows hỗ trợ những ngữ nghĩa học vô cùng phong phú khi nói về bảo mật và đã
mở rộng rất nhiều những định nghĩa về khách thể và chủ thể. Một chủ thể có thể
không chỉ là một người dùng, và mô tả còn phức tạp hơn là nhận diện người dùng
cơ bản.
Trong cách nói của Windows, một nguyên tắc bảo mật không chỉ bao quanh
những chủ thể điển hình (mà thường nghĩa là một người dùng) mà còn cả các nhóm
và các máy tính. Một nguyên tắc bảo mật là bất cứ thứ gì có thể được gán một nhận
diện bảo mật (SID) và được cho quyền truy cập một số thứ.
1. Nguyên tắc bảo mật:
Chủ thể - hay các nguyên tắc bảo mật, trong một hệ thống dựa trên
Windows, và bởi một phần mở rộng mạng dựa trên Windows, có thể không chỉ là
một người dùng. Tuy nhiên, người dùng vẫn còn là một khái niệm cơ bản nhất.
Người dùng: là một thực thể log on vào một máy tính. Về cơ bản, tất cả các
nguyên tắc bảo mật ít nhất đều có liên quan đến người dùng.
V.Kết luận:
Mỗi một phương pháp bảo mật có những điểm mạnh và điểm yếu riêng. Mỗi
một phương pháp đều có thể cho các kết quả không mong muốn hoặc mong muốn.
Nhiều phương pháp khác nhau làm việc tốt trong những tình huống khác
nhau.
Nói tóm lại qua bài này điều chúng ta cần quan tâm và chú ý đến vần đề bảo
mật hệ thống toàn phần trong máy tính như các file, tập tin, dữ liệu, thông tin cá
nhân vv… sau cho an toàn tuyệt đối và ngăn chặn những hacker cũng như tội phạm
xâm nhập hệ thống một cách triệt để.
Shuffle IsasIV
Trang24
JAVA VÀ .NET
C. So Sánh IDE
I.Sơ lược về IDE:

Môi trường phát triển tích hợp (Integrated Development Environment, viết
tắt: IDE) còn được gọi là "Môi trường thiết kế hợp nhất" (Integrated Design
Environment) hay "Môi trường gỡ lỗi hợp nhất" ( Integrated Debugging
Environment) là một loại phần mềm máy tính có công dụng giúp đỡ các lập trình
viên trong việc phát triển phần mềm.
Các môi trường phát triển hợp nhất thường bao gồm:
• Một trình soạn thảo mã (source code editor): dùng để viết mã.
• Trình biên dịch (compiler) và/hoặc trình thông dịch (interpreter).
• Công cụ xây dựng tự động: khi sử dụng sẽ biên dịch (hoặc thông dịch) mã
nguồn, thực hiện liên kết (linking), và có thể chạy chương trình một cách tự
động.
• Trình gỡ lỗi (debugger): hỗ trợ dò tìm lỗi.
• Ngoài ra, còn có thể bao gồm hệ thống quản lí phiên bản và các công cụ
nhằm đơn giản hóa công việc xây dựng giao diện người dùng đồ họa (GUI).
• Nhiều môi trường phát triển hợp nhất hiện đại còn tích hợp trình duyệt lớp
(class browser), trình quản lí đối tượng (object inspector), lược đồ phân cấp
lớp (class hierarchy diagram), để sử dụng trong việc phát triển phần mềm
theo hướng đối tượng.
• Phân theo số lượng các ngôn ngữ được hỗ trợ, ta có thể chia các môi trường
phát triển hợp nhất được sử dụng rộng rãi ngày nay thành hai loại:
• Môi trường phát triển hợp nhất một ngôn ngữ: làm việc với một ngôn ngữ
cụ thể, ví dụ: Microsoft Visual Basic 6.0 IDE.
• Môi trường phát triển hợp nhất nhiều ngôn ngữ: có thể làm việc với nhiều
ngôn ngữ lập trình, ví dụ: Eclipse IDE, NetBeans, Microsoft Visual Studio.
IDE cho Java có thể lựa chọn thoải mái từ opensource (Eclipse, Netbean, )
đến commerce (WebSphere, IntelliJ IDEA, Jbuilder, ) , IDE cho .NET chỉ có
thể là VS.NET, hoặc Borland Developer
Shuffle IsasIV
Trang25
JAVA VÀ .NET

II. IDE cho java:
Có rất nhiều môi trường phát triển cho Java: Đơn giản nhất là dùng NotePad,
hay bạn có thể dùng những sản phẩm thương mại đắt tiền như WebSphere,
JBuilder Tuy nhiên trong thời gian gần đây người ta nói nhiều tới hai môi trường
phát triển miễn phí nhưng rất mạnh mẽ của Sun và IBM là NetBean và Eclipse.
+ NetBean: là môi trường phát triển của SUN, công ty tạo ra và phát triển
Java. Trên thực tế NetBean rất tốt khi dùng để phát triển những ứng dụng Web nhỏ
trên nền Java SE.Trong phiên bản gần đây nhất (4.xx), NetBean đã có những cải
tiến mạnh mẽ cả về giao diện và các tiện ích dùng cho phát triển ứng dụng Java
desktop trên Swing. Ưu điểm của NetBean là nhỏ gọn và nhanh, tài liệu đầy đủ, chi
tiết. Nhược điểm là intelli (những trợ giúp cảnh ứng khi viết code) kém linh họat và
ít chức năng hơn so với Eclipse.
+ Eclipse: là môi trường IDE của IBM. Đây là một môi trường mã nguồn mở
rất mạnh (trị giá 40 triệu USD!), IBM có tham vọng đưa môi trường này thành
chuẩn cho việc phát triển các ứng dụng trên nhiều ngôn ngữ khác nhau chứ không
riêng cho Java. Nó cũng là phần lõi của WebSphere. Bản thân Eclipse không phải là
môi trường phát triển sẵn có của Java, nó cần có những plug-in để thực hiện điều
này. Ưu điểm của Eclipse là môi trường làm việc rất tốt (có một số tiện ích hơn hẳn
với Visual Studio của MS như refactor, code generation ), có hàng trăm plug-in
cho nhiều việc khác nhau. Nhược điểm là cài đặt khó khăn, do phải tìm và cài đặt
các plug-in riêng lẻ và chậm chạp (đặc biệt với những ai quen làm trên các IDE của
Microsoft).
Hai môi trường phát triển này mỗi người một vẻ đều có cái hay riêng của
mình. Trong bài báo cáo này chúng tôi sẽ nói về Netbean.
NetBean IDE là một “môi trường phát triển tích hợp” (Integrated
Development Environment) kiểu như Visual Studio của Microsoft và được xem là
một một bộ ứng dụng "must-download" dành cho các nhà phát triển phần mềm.
NetBean IDE hỗ trợ nhiều hệ điều hành khác nhau như Windows, Mac,
Linux, và Solaris. NetBean bao gồm một IDE mã nguồn mở và một nền tảng ứng
dụng cho phép nhà phát triển nhanh chóng tạo nên các ứng dụng dành cho web,

doanh nghiệp, desktop và thiết bị di động bằng các ngôn ngữ lập trình Java, C/C++,
JavaScript, Ruby, Groovy, và PHP.

×