Tôi muốn hiểu rõ hơn lý do cho mô hình máy chủ ứng dụng .NET so với các máy chủ ứng dụng Java được sử dụng nhiều nhất.Sự khác biệt giữa các máy chủ ứng dụng .NET và máy chủ ứng dụng Java
Trong hầu hết các trường hợp tôi đã thấy với các ứng dụng web ASP.NET, logic nghiệp vụ được lưu trữ trong quy trình lưu trữ asp.net của máy chủ web. Một cách tiếp cận phổ biến khác là có một tầng vật lý hoặc logic khác nhau lưu trữ các đối tượng kinh doanh của bạn và sau đó được tiếp xúc dưới dạng các dịch vụ web hoặc truy cập thông qua các cơ chế như WCF. Cách tiếp cận thứ hai thường nhưng không phải lúc nào cũng được sử dụng khi yêu cầu quy mô cao hơn. Trong những ngày của đối tượng COM tôi đã thấy Microsoft Transaction Server (MTS) và sau đó COM + lưu trữ được sử dụng để lưu trữ các đối tượng COM chứa logic nghiệp vụ, với MTS (về mặt lý thuyết) quản lý thời gian tồn tại đối tượng, giao dịch, đồng thời yada yada. Mô hình này phần lớn dường như đã biến mất trong đất ASP.NET.
Trong thế giới Java, bạn có thể có Apache với Tomcat là vùng chứa servlet và các đối tượng nghiệp vụ của bạn được lưu trữ trong Tomcat. Trong trường hợp này, Tomcat cung cấp chức năng tương tự như những gì MTS cung cấp trong thế giới .NET.
Một số câu hỏi:
- Tại sao sự khác biệt cơ bản trong Microsoft vs Java phương pháp tiếp cận đến các máy chủ ứng dụng? Điều này phải là một lựa chọn kiến trúc/thiết kế khi các khung công tác này được tạo ra.
- Ưu và khuyết điểm của mỗi phương pháp tiếp cận là gì?
- Tại sao Microsoft di chuyển ra khỏi mô hình MTS-hosting (tương tự như mô hình lưu trữ Tomcast servlet) với cách tiếp cận hiện tại phổ biến hơn, chỉ để có các đối tượng nghiệp vụ như một phần của quá trình ASP.NET của máy chủ web?
- Nếu bạn muốn triển khai cách tiếp cận kiểu MTS hoặc cách tiếp cận kiểu Tomcat trong các ứng dụng ASP.NET ngày nay, tôi giả sử một mẫu chung sẽ là lưu trữ các đối tượng nghiệp vụ trong một số quy trình IIS (có thể trên một tầng vật lý hoặc logic khác). thông qua WCF (hoặc các dịch vụ web asmx tiêu chuẩn, bất cứ điều gì). Đây có phải là giả định chính xác không?
Tôi muốn chia câu trả lời của mình thành 3 nhận xét do độ dài. Tôi hoàn toàn hiểu quan điểm của bạn về việc mở/mang lại cách tiếp cận x của riêng bạn so với cách tiếp cận chồng tích hợp, nhưng điều tôi hỏi là tại sao chứ không phải vì sự khác biệt trong cách tiếp cận triết học mà là từ cấp độ kỹ thuật và kiến trúc. Tôi không hiểu tại sao mô hình của Microsoft thỏa mãn nhu cầu cho các ứng dụng của Microsoft và tại sao mô hình máy chủ ứng dụng Java thực hiện tương tự cho các ứng dụng Java. – Howiecamp
(Phần 2) - Về mặt kiến trúc (từ góc độ yêu cầu ứng dụng chung), các vấn đề/vấn đề tương tự nên có mặt trong cả hai trường hợp. Về WCF, tôi chỉ đơn giản là sử dụng nó như là một ví dụ về cách một ứng dụng web .net có thể nói chuyện với một số quy trình logic hoặc vật lý khác. Nó có thể là một can-and-string. Đó không phải là cốt lõi cho câu hỏi của tôi. – Howiecamp
(Phần 3) - Hiển nhiên lưu trữ các đối tượng bên trong quá trình asp.net của máy chủ web hoạt động nếu bạn không cần kiến trúc phân tán. Tôi chỉ nói rằng trong Microsoft đất, cách tiếp cận này là phổ biến hơn. Bạn muốn có một hệ thống phân tán nếu bạn muốn phân phối tải xử lý chẳng hạn. Điều tôi đang tự hỏi là, nếu cách tiếp cận ban đầu của Microsoft với MTS cho bạn khả năng này, tại sao họ lại tập trung vào MTS và tập trung hơn vào một cách tiếp cận toàn cục? – Howiecamp