Những hạn chế của Emulator: Mặc dù emulator mới là một bước tiến ấn tượng (dramatic) về độ trung thực và sự thuận tiện cho việc phát triển, mỗi emulator có những hạn chế của nó khi so sánh với thiết bị mà nó giả lập. Emulator được có trong Pocket PC SDK vận hành mã Pocket PC thực mà được biên dịch để nhắm tới CPU x86. Trong đa số các kịch bản (scenarios) phát triển ứng dụng, thiết lập này là đủ. Tuy nhiên, vẫn có một số hạn chế đối với loại giả lập này: Để sử dụng emulator, các ứng dụng phải được biên dịch để chạy trên CPU x86. Ứng dụng này sẽ khó tránh khỏi những khác biệt tiềm tàng trong các trình biên dịch x86, runtime và các file hỗ trợ khi được so sánh với các thiết bị dựa trên ARM. Bởi vì những khác biệt trong cấu trúc CPU (x86 CISC so với ARM RISC) và những thiết lập chỉ thị, không thể dùng emulator để trình diễn việc thực thi tuyệt đối tối tỉ mỉ và sự tối ưu memory footprint. Tuy nhiên, đối với hầu hết trình ứng dụng, mức phân tích này không thành vấn đề. Màn hình xúc cảm của thiết bị được thay thế bằng con chuột. Mặc dù con chuột về mặt chức năng tương đương với màn hình xúc cảm, nhưng những nhà phát triển ứng dụng phải xem xét thêm kinh nghiệm của người dùng chạy ứng dụng trên thiết bị mà cần có bút (stylus). Việc ghi âm không được hỗ trợ trong emulator bất chấp các khả năng ghi âm của máy tính phát triển chạy emulator. Sơ lược về mạng : Mục đích của việc xây dựng hệ thống mạng (dù nhỏ hay lớn) là để trao đổi thông tin, chia sẽ thông tin, chia sẽ thiết bị với nhau … Do đó, điều chúng ta cần quan tâm trong phần này là tìm hiểu xem thông tin được truyền như thế nào, và các máy tính trong mạng (host) gửi và nhận thông tin ra sao. Muốn thế, ta hãy tìm hiểu một số khái niệm sau đây . Nguồn , đích và các gói dữ liệu : Để cho các máy tính gửi thông tin xuyên qua một mạng, tất cả các hoạt động truyền tin trên một mạng đều xuất phát từ một nguồn, sau đó di chuyển đến một đích. Thông tin được di chuyển trên một mạng được tham chiếu đến như là dữ liệu, gói hay gói dữ liệu. Một gói dữ liệu là một đơn vị thông tin được nhóm lại theo luận lý, và di chuyển giữa các hệ thống máy tính. Bao gồm trong đó là thông tin về nguồn tìn cùng với các phần tử cần thiết khác để thực hiện một hoạt động truyền tin cậy với thiết bị đích. Địa chỉ nguồn trong một gói chỉ ra danh định của máy tính đã gửi gói này. Địa chỉ đích chỉ danh định của máy tính sau cùng tiếp nhận gói. Môi trường truyền dẫn : Môi trường truyền dẫn trong mạng là một miền vật chất mà qua đó các gói dữ liệu di chuyển . Nó có thể là bất kỳ loại nào sau đây : Các dây điện thoại . Cáp UTP loại 5 ( được dùng cho 10 BASE – T ). Các cáp đồng trục ( được dùng cho truyền hình ). Sợi quang (sợi thủy tinh mảnh truyền ánh sáng ). Có hai loại môi trường không rõ ràng cho lắm , nhưng dẫu sao nó cũng tham gia vào hoạt động thông tin trên mạng. Trước hết là không khí (hầu hết là oxy, nitơ và hơi nước) nó mang sóng radio, sóng vi ba và ánh sáng. Hoạt động thông tin không dùng dây dẫn hay cáp được gọi là thông tin không dây hay thông tin không gian tự do (wireless hay free – space communication). Đó là khả năng dùng sóng điện từ EM (electromagnetic). Các sóng điện từ lan truyền trong chân không với tốc độ ánh sáng, gồm có sóng năng lượng, sóng radio, sóng vi ba, ánh sáng hồng ngoại, ánh sáng nhìn thấy, tia cực tím, tia X, tia gamma. Các sóng điện từ lan truyền trong không khí, nhưng chúng cũng lan truyền qua khoảng chân không. Giao thức : Để các gói dữ liệu có thể di chuyển từ nguồn đến đích trên mạng, điều quan trọng là tất cả các thiết bị trên mạng phải nói cùng một ngôn ngữ hay giao thức. Một giao thức là một tập các quy định giúp thực hiện hoạt động thông tin trên mạng. Sự phát triễn của các chuẩn lập lập mạng ISO: Nhằm giải quyết vấn đề không tương thích của các mạng và không thể trao đổi thông tin với nhau giữa các mạng, tổ chức tiêu chuẩn hóa quốc tế ISO đã nghiên cứu lược đồ mạng như DECNET, SNA và TCP/IP để tìm ra một bộ luật. Kết quả của nghiên cứu này, ISO đã tạo ra được một mô hình mạng giúp cho các nhà chế tạo có thể tạo ra các mạng riêng của mình nhưng vẫn đảm bảo tương thích và liên kết hoạt động với các mạng khác. Quá trình này chia hoạt động thông tin phức tạp thành các tác vụ rời rạc nhỏ hơn. Mô hình tham chiếu OSI được công bố vào năm 1984, nó mô tả lược đồ phân lớp mà tổ chức này đã xây dựng được. Mô hình cung cấp cho các nhà chế tạo một tập các tiêu chuẩn đảm bảo tương thích và liên kết hoạt động tốt hơn giữa các kỹ thuật mạng khác nhau được tạo ra bởi nhiều công ty trên thế giới. Mô hình tham chiếu OSI : Mô hình tham chiếu OSI là mô hình chủ yếu cho các hoạt động thông tin trên mạng . Mặc dù đã có các mô hình khác, nhưng hầu hết các nhà chế tạo ngày nay đều tạo ra các sản phẩm của họ trên cơ sở tham chiếu dến mô hình OSI. Mô hình tham chiếu OSI cho phép bạn nhận ra được các chức năng mạng diễn ra tại mỗi lớp. Nó là một khuôn mẫu giúp bạn hiểu thông tin di chuyển xuyên qua một mạng như thế nào. Nó được chia thành 7 lớp: Lớp 7: Lớp ứng dụng (the application layer) Lớp ứng dụng là lớp gần gũi với người dùng hơn hết, nó cung cấp các dịch vụ mạng cho các ứng dụng của người dùng. Nó khác với các lớp khác ở chỗ không cung cấp các dịch vụ cho bất kỳ lớp nào, thay vì vậy, nó chỉ cung cấp các dịch vụ cho các ứng dụng nằm bên ngoài mô hình OSI. Các chương trình ứng dụng như chương trình xử lý bảng tính, các chương trình xử lý văn bản, các chương trình đầu cuối…. Lớp ứng dụng thiết lập tính sẵn sàng cho các đối tác thông tin, đồng bộ hóa và thiết lập tính nhất quán trên các thủ tục khắc phục lỗi và kiểm soát tính toàn vẹn dữ liệu. Nếu bạn muốn ghi nhớ lớp 7 chỉ bằng vài từ ngắn gọn, thì hãy nghĩ đến các trình duyệt web. Lớp 6: Lớp trình bày (the presentation layer) Lớp trình bày đảm bảo thông tin mà lớp ứng dụng của một hệ thống đầu cuối gởi đi lớp ứng dụng của hệ thống khác có thể đọc được. Nếu cần lớp trình bày thông dịch giữa nhiều dạng dữ liệu khác nhau thông qua một dạng chung. Nếu bạn muốn ghi nhớ lớp 6 một cách ngắn gọn thì hãy nghĩ đến dạng dữ liệu chung. Lớp 5: Lớp phiên (the session layer) Như bao hàm trong tên của lớp, lớp phiên thiết lập, quản lý và kết thúc các phiên thông tin giữa hai chủ thể truyền nhận. Nó cũng đồng bộ hội thoại giữa 2 lớp trình bày của hai host và quản lý các cuộc trao đổi dữ liệu giữa chúng. Bên cạnh sự điều khiển phiên làm việc, lớp phiên còn chuẩn bị những thứ cần thiết cho truyền dữ liệu hiệu quả, phân lớp dịch vụ, và thông báo mở rộng các sự cố của lớp phiên, lớp trình bày và lớp ứng dụng. Nếu bạn muốn ghi nhớ lớp 5 bằng vài từ thì đó là hội thoại. Lớp 4: Lớp vận chuyển (the transport layer) Lớp vận chuyển phân đọan dữ liệu từ hệ thống host truyền và tái thiết lập dữ liệu vào một luồng dữ liệu tại hệ thống host nhận. Ranh giới giữa lớp vận chuyển và lớp phiên có thể được xem như ranh giới giữa giao thức ứng dụng (application protocol) và giao thức luồng dữ liệu.Trong khi các lớp ứng dụng, lớp trình bày và lớp phiên liên quan mật thiết đến ứng dụng, thì bốn lớp dưới lại liên quan đến việc truyền dữ liệu. Lớp vận chuyển cố gắng cung cấp một dịch vụ vận chuyển dữ liệu , tạo nên một dải ngăn cách bảo vệ các lớp trên tránh các chi tiết hiện thực vận chuyển bên đưới. Đặc biệt, các vấn đề như làm thế nào vận chuyển giữa hai host thật sự tin cậy là trách nhiệm liên quan đến lớp vận chuyển. Trong việc cung cấp dịch vụ truyền tin, lớp vận chuyển thiết lập, duy trì, và kết thúc một cách tốt đẹp các mạch ảo. Trong việc cung cấp các dịch vụ tin cậy, sự phát hiện lỗi, khắc phục lỗi cũng như điều khiển luồng thông tin đều được sử dụng triệt để. Nếu bạn muốn ghi nhớ tóm tắt lớp 4 thì hãy nghĩ ngay đến chất lượng dịch vụ và độ tin cậy. Lớp 3:lớp mạng (the network layer): Lớp mạng là lớp phức tạp nó cung cấp kết nối và chọn lựa đường dẫn giữa hai hệ thống host tọa lạc trên các mạng tách biệt về mặt địa lý . Nếu bạn muốn ghi nhớ lớp 3 chỉ với một vài từ ngắn gọn hãy ngay đến sự chọn đường , định tuyến và đánh địa chỉ. Lớp 2:lớp liên kết dữ liệu (the data link layer) Lớp liên kết dữ liệu cung cấp khả năng chuyển dữ liệu tin cậy xuyên qua một liên kết vật lý. Trong khi làm công việc này, lớp liên kết dữ liệu gắn liền với lược đồ đánh địa chỉ vật lý (đối nghịch với địa chỉ luân lý), cấu hình mạng, truy xuất mạng, thông báo lỗi, thứ tự phân phối frame, và điều khiển luồng. Nếu bạn muốn ghi nhớ lớp 2 bằng vài từ ngắn gọn, bạn hãy nghĩ ngay đến các frame và điều khiển truy xuất môi trường. Lớp 1: Lớp vật lý (the physical layer): Lớp vật lý định nghĩa các qui cách về điện, cơ, thủ tục và các đặc tả chức năng để kích hoạt, duy trì và dừng một liên kết vật lý giữa các hệ thống đầu cuối. Các đặc trưng như các mức điện áp, định thời thay đổi điện áp, tốc độ chuyển dữ liệu vật lý, cự ly truyền tối đa, các đầu nối vật lý và những thuộc tính tương tự khác đều được định nghĩa bởi các đặc tả lớp vật lý. Nếu bạn muốn ghi nhớ lớp 1 bằng vài từ ngắn gọn thì hãy nghĩ ngay đến các tín hiệu và môi trường. Sự đóng gói dữ liệu : Bạn biết rằng tất cả các hoạt động truyền tin trên mạng đều bắt đầu từ một nguồn và nhắm đến một đích, thông tin được gởi lên mạng được tham khảo đến như là dữ liệu hay là các gói dữ liệu. Nếu một máy tính A (host A) muốn gởi dữ liệu đến một máy tính B (host B), trước hết dữ liệu phải được gói bởi một quá trình gọi là đóng gói (encapsulation). Hoạt động đóng gói sẽ gói dữ liệu cùng với các thông tin giao thức cần thiết trước khi chuyển đi. Do đó, khi dữ liệu chuyển xuống xuyên qua các lớp của mô hình OSI, nó tiếp nhận các header, các trailer, và các thông tin khác (lưu ý rằng: từ header có nghĩa là thông tin địa chỉ được thêm vào). Các mạng phải thực hiện theo 5 bước đàm thoại để đóng gói dữ liệu: Xây dựng dữ liệu: khi một user gởi một bức thư, các ký tự alphabet được chuyển đổi thành dạng dữ liệu có thể di chuyển xuyên qua liên mạng. Gói dữ liệu để vận chuyển đầu cuối đến đầu cuối: dữ liệu được đóng gói để vận chuyển qua liên mạng. Bằng cách dùng các phân đoạn dữ liệu (Segment), chức năng vận chuyển đảm bảo rằng các chủ các thông điệp tại cả hai đầu cuối của hệ thống e-mail có thể liên lạc một cách tin cậy. Gắn địa chỉ mạng vào header: dữ liệu được đặt trong một gói (packet) hay datagram chứa một header mạng với các địa chỉ luận lý của nguồn và đích. Các địa chỉ này giúp các thiểt bị mạng gởi các gói qua mạng dọc theo đường dẫn đã chọn. Gắn địa chỉ cục bộ vào header liên kết dữ liệu: mỗi thiết bị mạng phải đặt goi vào trong một frame. Frame cho phép kết nối với thiết bị mạng kế tiếp được nối trực tiếp trên liên kết. Mỗi thiết bị mạng trên đường dẫn mạng đã chọn yêu cầu đóng frame để nó kết nối được đến thiết bị kế tiếp. Chuyển đổi thành các bit để truyền: frame phải được chuyển đổi thành các mẫu bit 1 và 0 để truyền trên môi trường. Một chức năng đồng bộ (clocking) cho phép các thiết bị phân biệt các bit này khi chúng di chuyển xuyên qua môi trường. Môi trường trên liên mạng về mặt vật lý có thể thay đổi dọc theo đường dẫn. Ví dụ, thông điệp e-mail có thể bắt nguồn từ một LAN, xuyên qua một backbone của khuôn viên trường, đi ra một liên kết WAN cho đến khi đạt đến đích của nó trên một LAN khác ở xa. Các header và trailer được thêm vào khi dữ liệu di chuyển xuống các lớp của mô hình OSI. Lập trình mạng : Liên lạc trên Internet : Họ giao thức TCP/IP : Như trên đã nói, để hai hay nhiều máy tính nói chuyện được với nhau chúng phải dùng chung một ngôn ngữ, chẳng hạn máy này phải gửi những tín hiệu gì đến máy kia và máy kia phải gửi trả lại những tín hiệu nào để nhận biết. Trên Internet ngày nay việc hai máy có thể trao đổi được với nhau đa số đều dựa theo giao thức cốt lõi là TCP/IP (Transmission Control Protocol / Internet Protocol). Theo giao thức này mỗi máy sẽ được đặt cho một số riêng biệt gọi là địa chỉ IP (IP address ) có vai trò tương tự số điện thoại, chẳng hạn máy tính có tên www.microsoft.com thì có số IP là ……Các số IP này phải là duy nhất và không được trùng nhau (trên toàn thế giới). Khi bạn muốn có máy tính của mình có địa chỉ IP để tham gia vào hệ thống Internet toàn cầu như là một máy chủ ( host hay server ) ta phải đăng ký với tổ chức quốc tế InterNIC ( Internet Network Information Center ) để nhận được một số IP riêng biệt. Vậy tại sao vừa có địa chỉ IP lại vừa có tên riêng cho từng máy? Dùng cái nào để liên lạc với một máy chủ (như ở trên , ta nên dùng www.microsoft.com hay …… để kết nối với máy chủ). Thật ra, tên và địa chỉ IP là một, nhưng địa chỉ IP được ghi bằng số, còn tên cho máy chủ lại được biểu diễn bằng chữ có ý nghĩa và gần gũi hơn với con người. Với mỗi hệ thống đều có sự chuyển đổi trực tiếp từ tên vùng thành địa chỉ IP thích hợp trước khi dữ liệu được gửi đi. Ví dụ đối với Windows có thể tham khảo hai tập tin HOSTS và LMHOSTS, đây là hai tập tin văn bản (được coi như một cơ sở dữ liệu) để lưu trữ tập hợp các số IP cùng với tên tương ứng. Ta có thể tự thêm vào địa chỉ IP và tên máy chủ cách nhau bằng khoảng trắng. Khi có nhu cầu truy cập đến một máy ở xa qua giao thức mạng ICP/IP nếu gõ vào tên máy chủ thì hệ thống sẽ tự động tìm địa chỉ IP tương ứng trong tập tin này. Tên của máy chủ còn được gọi là tên vùng (domain name) bởi vì chúng được đặt theo thứ tự phân cấp của tên lãnh thỗ, vùng, tổ chức, hay tên cá nhân … Mỗi nhóm phân cấp cách nhau bằng một dấu chấm (.). Công việc theo dõi sự thay đổi tên được phân phối qua Internet nhờ các máy chủ lớn DNS (Domain Name System) theo dõi các máy chủ khác trong vùng con của chúng. Trước đây mỗi máy có thể tự mình lưu trữ một tập tin chứa phần lớn các tên và địa chỉ của những máy chủ thông dụng (như trong Windows là tập tin HOSTS hay LMHOSTS), nhưng ngày nay ta không làm như vậy nữa mà đa số các tên vùng cũng như địa chỉ IP được lấy xuống từ các máy chủ DNS. Khi đọc tên của một máy chủ ta đi từ trái sang phải. Nói chung là theo quy ước từ phần riêng biệt đến phần chung nhất. Tuy nhiên không bắt buộc là như vậy, ta vẫn có thể đặt tên theo cách khác không nhất thiết chỉ gồm 3 hay 4 nhóm (ví dụ: here .is.along.name.address.com.vn là hợp lệ) bởi vì cuối cùng thì tên vùng cũng được hệ thống DNS chuyển thành địa chỉ IP mà thôi. Giả sử bạn muốn trình duyệt (browser) như IE hay Netscape truy tìm một tập tin hay trang web của máy chủ Microsoft. Microft cung cấp cho bạn địa chủ của máy chủ là www.microsoft.com. Đây chỉ là một chuỗi tên bình thường, muốn kết nối được với máy chủ, trước tiên trình duyệt phải chuyển đổi được tên www.microsoft.com thành địa chỉ IP tương ứng. Quá trình truy tìm địa chỉ IP diễn ra như sau: 1-Trình duyệt yêu cầu hệ điều hành trên máy khách chuyễn chuỗi www.microsoft.com thành địa chỉ IP. 2–Máy khách truy tìm xem tên www.microsoft.com có được ánh xạ trong tập tin HOSTS hay LMHOST hay không . Nếu có máy khách sẽ đổi tên www.microsoft.com thành địa chỉ IP gửi về cho trình duyệt . Nếu không máy khách tìm cách liên lạc với máy chủ DNS . Máy DNS lưu rất nhiều địa chỉ IP của các máy chủ theo tên. 3–Nếu tìm thấy địa chỉ IP của tên www.microsoft.com , máy DNS sẽ gửi địa chỉ IP về cho máy khách. 4–Máy khách chuyển địa chỉ IP cho trình duyệt. 5–Trình duyệt sử dụng địa chỉ IP liên lạc với máy chủ của Microsoft. 6–Quá trình kết nối thành công . Máy chủ Microsoft sẽ trả thông tin yêu cầu về cho máy khách. * Lưu ý : - Một địa chỉ IP cũng có thể được đặt cho nhiều tên khác nhau . Ví dụ bạn có thể đặt trong tập tin HOSTS như sau: HOSTS : 129.74.250.103 my.server.home 129.74.250.103 my.company.net - Một máy cũng có thể có nhiều địa chỉ IP nếu có nhiều card giao tiếp mạng . Cách chuyển dữ liệu trên mạng , giao thức TCP và UDP : Quá trình chuyển dữ liệu trên mạng diễn ra khá phức tạp. Chi tiết quá trình này diễn ra tương tự như trong thực tế ta gửi thư hay bưu phẩm, trước hết phải ghi rõ địa chỉ nơi đến (trường hợp này là địa chỉ IP của máy chủ), sau đó có thể gửi thông thường hay gửi bảo đảm (tùy theo cách gửi mà thư hay bưu phẩm có chắc chắn đến được tay người nhận hay không), người nhận sau khi nhận được có thể hồi âm trả lời là đã nhận đủ hoặc bị mất mát gì đó trong quá trình chuyển tải. Người gửi có thể gửi tiếp những phần bị mất (hoặc không cần gửi nữa). Cách chuyển dữ liệu bảo đảm dựa vào giao thức TCP (Transmission Control Protocol) còn cách chuyển không bảo đảm dựa vào giao thức UDP (User Datagram Protocol). Giao thức TCP gửi từng gói dữ liệu đi, nơi nhận theo giao thức này phải có trách nhiệm thông báo và kiểm tra xem dữ liệu đã đến đủ hay chưa, có lỗi hay không có lỗi. Trước khi chuyển dữ liệu bao giờ cũng có sự kết nối giữa máy gửi và máy nhận. Do phải bảo đảm dữ liệu được truyền chính xác và luôn duy trì két nối nên sử dụng giao thức TCP cần chiếm thêm một số tài nguyên của hệ thống và cách lập trình cho giao thức này hơi khó (phải thực hiện các bước kiểm tra dữ liệu theo yêu cầu của TCP). Truyền dữ liệu theo TCP thường áp dụng cho các dịch vụ như truyền tập tin, các dịch vụ trực tuyến trên Internet đòi hỏi độ tin cậy cao…. Giao thức UDP ngược lại không đáng tin cậy lắm, không có sự kết nối trước nào giữa nơi gửi và nơi nhận, dữ liệu gửi đi mặc định rằng máy tính ở đầu nhận luôn ở trạng thái sẵn sàng để tiếp đón dữ liệu gửi đến. Nếu dữ liệu gửi đến bị lỗi trong quá trình truyền hay không nhận được đậy đủ, giao thức UDP cũng không có thông tin phản hồi gì lại cho nơi gửi. Tuy nhiên, UDP không đòi hỏi nhiều tài nguyên của hệ thống và cách lập trình lại tỏ ra đơn giản. Truyền dữ liệu theo giao thức UDP thường được dùng trong những ứng dụng không đòi hỏi sự chính xác cao như dịch vụ thông báo giờ , tỉ giá hay các dịch vụ gửi nhắn tin…. . chuẩn lập lập mạng ISO: Nhằm giải quyết vấn đề không tương thích của các mạng và không thể trao đổi thông tin với nhau giữa các mạng, tổ chức tiêu chuẩn hóa quốc tế ISO đã nghiên cứu lược đồ mạng. ngoài mô hình OSI. Các chương trình ứng dụng như chương trình xử lý bảng tính, các chương trình xử lý văn bản, các chương trình đầu cuối…. Lớp ứng dụng thiết lập tính sẵn sàng cho các đối tác. : 129.74.250.1 03 my.server.home 129.74.250.1 03 my.company.net - Một máy cũng có thể có nhiều địa chỉ IP nếu có nhiều card giao tiếp mạng . Cách chuyển dữ liệu trên mạng , giao thức TCP và UDP : Quá trình