środa, 24 listopada 2010

ASP.NET wspólnie z Windows Communication Foundation i Workflow Foundation

Wraz w wprowadzeniem .NET Framework 4 znacznie zwiększyły się możliwości integracji środowiska ASP z innymi technologiami .NET. Daje to dodatkowe możliwości programistom tworzącym strony internetowe i pozwala na tworzenie łatwo skalowalnych i modyfikowalnych aplikacji internetowych. W tym poście przyjrzymy się dwóm technologiom zawartym w .NET: WCF i WF, pod kątem ich przydatności w optymalizacji działania serwisów internetowych opartych o ASP.NET. Pierwsza z nich odpowiada za tworzenie tak zwanego oprogramowania opartego o usługi, druga odpowiedzialna jest za wsparcie aplikacji, w których istotne jest sterowanie przepływem informacji. Obie te technologie mogą przyczynić się do zwiększenie wydajności serwisów internetowych w szczególności jeżeli serwisy te zapewniają takie usługi jak handel internetowy czy systemy rezerwacji.
WCF i WF może być hostowany przez AppFabric, który może być ponadto wykorzystywany do distributed caching, dla aplikacji ASP.NET.

WCF – Windows Communication Foundation


WCF to nowe środowisko pozwalające w łatwy sposób tworzyć aplikacje, które udostępniają pewne funkcjonalności w postaci usług. Ten typ interakcji aplikacji między sobą pozwala na łatwą wymianą informacji pomiędzy częściami jednej aplikacji lub różnymi odrębnymi aplikacjami. Dzięki zunifikowanemu systemowi wymiany danych opartymi o SOAP, lub inny protokół, możliwe jest integrowanie różnych aplikacji, napisanych w różnych językach programowania i działających na różnych systemach operacyjnych. Posługiwanie się WFC może również pomóc w rozwiązywaniu problemów z wydajnością i skalowalnością aplikacji internetowych. Weźmy na przykład sklep internetowy. Dzięki WFC możliwe jest łatwe rozdzielenie warstwy aplikacji odpowiedzialnej za odbieranie żądań od użytkownika i generowanie stron HTML, od warstwy zarządzającej funkcjonowaniem sklepu (składanie zamówień, nadzorowanie stanów magazynowych, …). Ponadto łatwiejsze staje się wtedy zintegrowanie całej aplikacji z zewnętrznymi systemami np.: systemami płatności. Dzięki temu możliwe jest uproszczenie kodu i podzielenie aplikacji na kilka części. Części te nie muszą być hostowane na tej samej maszynie, a co za tym idzie możliwe jest niezależne rozszerzanie bazy sprzętowej tam gdzie jest to naprawdę potrzebne. Ponadto możliwe jest lepsze dopasowanie konfiguracji sprzętu komputerowego do potrzeb konkretnej części całego systemu. W konsekwencji zasoby sprzętowe są lepiej wykorzystane. Dużo łatwiejsze i tańsze jest również późniejsze rozbudowywanie platformy sprzętowej w miarę wzrostu ruchu internetowego.

WF – Workflow Foundation


WF pozwala na łatwiejsze tworzenie aplikacji, w których kluczową rolę odgrywa sterowanie przepływem informacji. W serwisach internetowych często spotykamy się z takimi potrzebami. Wystarczy wrócić do przykładu ze sklepem internetowym i przyjrzeć się funkcjonowaniu systemu składania zamówień. Zadania tego typu wymagają odpowiedniego reagowania na informację dostarczane przez użytkownika w zależności od tego, w jakim fragmencie workflow znajduje się aplikacja. Często zachodzi również potrzeba oczekiwania na kolejną interakcję z użytkownikiem przez stosunkowo długi okres, a co za tym idzie przechowywania informacji o stanie w jakim znajduje się workflow związany z danym użytkownikiem. Do tego typu celów idealnym rozwiązaniem jest właśnie Workflow Foundation. Automatyzuje on wiele procesów, a wyniki działania mogą być udostępniane innym aplikacją za pomocą odpowiednich usług zbudowanych w oparciu o WCF. W przypadku współpracy z serwisami internetowymi ASP.NET dodatkową możliwością jest zarządzania stanem sesji w obrębie workflow.

Funkcjonalności udostępniane przez WCF i WF mogą się okazać kluczem do rozwiązanie wielu problemów ze skalowalnością i wydajnością serwisów internetowych. Warto zatem zwrócić na nie uwagę, szczególnie podczas tworzenia nowych aplikacji.