W jaki sposób rozwiązanie oparte o usługi może dostarczyć interaktywny interfejs użytkownika? Rozwiązaniem jest specjalna usługa Mediatora, która jest umieszczana pomiędzy kodem interfejsu użytkownika, a rzeczywistą usługą dostarczającą funkcjonalności biznesowej. Mediator jest odpowiedzialny za dostarczanie użytkownikowi informacji o stanie zainicjowanego przez niego procesu oraz o wszelkich zdarzeniach występujących w trakcie jego działania. Mediator może być zrealizowany na dwa sposoby: jako sp...
Programowanie rozproszone 5639 dni, 7 godzin, 13 minut temu 40 źrodło rozwiń
Natknąłem się na kolejną ciekawą parę wzorców. W odróżnieniu od poprzednio opisywanej, tym razem para ma charakter dwóch konkurencyjnych rozwiązań tego samego problemu. To dla mnie interesująca nowość: do tej pory wzorce kojarzyły mi się z podejściem: problem - rozwiązanie (+ konsekwencje). W tym wypadku problem ma dwa równorzędne rozwiązania (przynajmniej tak wynika z lektury rozdziałów). No i wydaje mi się, że z tą równorzędnością jest problem... Direct Authentication zakłada, że każda usługa przech...
Programowanie rozproszone 5640 dni, 17 godzin, 59 minut temu 29 źrodło rozwiń
W jaki sposób usługa bezstanowa może brać udział w interakcjach wymagających przechowywania stanu? Rozwiązaniem (jednym z wielu możliwych) jest przesyłanie informacji o stanie w wymienianych przez usługę komunikatach. Tradycyjne rozwiązanie problemu polega na przechowywaniu stanu w instancji usługi. Jego słabą stroną jest blokowanie zasobów serwera (głównie pamięci) przez tymczasowo nieaktywne instancji usługi czekające na dalszy ciąg interakcji. Jeśli nie możemy zrezygnować z przechowywania stanu ...
Programowanie rozproszone 5642 dni, 4 godziny, 51 minut temu 24 źrodło rozwiń
Postanowiłem robić notatki z książki. Może kogoś zachęcą lub zniechęcą do czytania. Celem wzorca Service Facade jest zmniejszenie powiązania między kontraktem usługi, a jej logiką. Oczywiście logiczne powiązanie logiki do kontraktu jest zjawiskiem jak najbardziej pozytywnym (powiązanie odwrotne jest negatywne, skutkuje zwykle wyciekiem technicznych szczegółów logiki do kontraktu i często jest wynikiem automagicznego generowania WSDL-a z kodu). Czasami jednak zmniejszenie stopnia powiązania logiki do k...
Programowanie rozproszone 5642 dni, 22 godziny, 26 minut temu 46 źrodło rozwiń
To właściwie dwa wzorce: Capability Composition oraz Capability Recomposition. Pierwszy z nich rozwiązuje problem usługi, która w celu wykonania swojego zadania potrzebueje logiki, która nie mieści się w jej zakresie odpowiedzialności. Aby problem rozwiązać, można poszerzyć zakres odpowiedzialności usługi, jednak prowadzi to do duplikacji logiki. Innym, lepszym i poprawnym, rozwiązaniem jest włączenie wywołania innej usługi jako elementu realizacji logiki tej pierwszej. Właściwie wydaje się to zup...
Programowanie rozproszone 5643 dni, 12 godzin, 8 minut temu 16 źrodło rozwiń
Artykuł opisuje zagadnienia związane z równoczesnym dostępem do wspólnych elementów przez wiele wątków oraz możliwe konflikty - w języku C#. Nie znajdziecie tu natomiast podstaw wielowątkowości w C#, zakładam iż te są już znane. Przykłady napisane jako proste aplikacje konsolowe – krótkie i zwięzłe bez nadmiaru niepotrzebnych informacji (jednak na tyle samodzielne, że można je bez problemu odpalić przez zwykłe skopiowanie).
Programowanie rozproszone 5651 dni, 59 minut temu 149 źrodło rozwiń
Simon: Bardziej uważni czytelnicy pamiętają, że od jakiegoś czasu jestem mocno zainteresowany tematem komunikacji asynchronicznej. Zupełnie ostatnio dosyć intensywnie zająłem się biblioteką NServiceBus. Swoją poprzednią notką zainteresowałem kolegę z pracy, który postanowił także wykorzystać NServiceBus (do scenariusza Publish/Subscribe). Kolega skazany jest na wykorzystanie kontenera Unity (w którego to sam go wkopałem, mea culpa).
Programowanie rozproszone 5666 dni, 12 godzin, 7 minut temu 86 źrodło rozwiń
Simon: Jak część z Was pamięta, jakiś czas temu dosyć aktywnie blogowałem na temat szyny (tu, tu oraz tu). Od tej pory upłynęło już sporo czasu. Chciałoby się powiedzieć: "dziś sam jestem dziadkiem". Ale nie, wertersów Wam nie dam. Opowiem za to o moim dojrzewaniu do komunikacji za pomocą asynchronicznej wymiany komunikatów.
Programowanie rozproszone 5669 dni, 18 godzin, 49 minut temu 113 źrodło rozwiń
Sesję pod tym kontrowersyjnym tytułem poprowadził na TechEd 200 Juval Lowy. Ponieważ była to jedna z tych sesji, które najbardziej zapadły mi w pamięć, chciałbym poświęcić jej osobną notkę. Juval, jako główny powód zmiany miłościwie nam panującego paradygmatu obiektowego, na zorientowany na usługi podaje konieczność zrównoleglania obliczeń wymuszoną przez nowe, wielordzeniowe procesory. Słusznie zauważa, że model tradycyjny, czyli programowanie w oparciu o obiekty posiadające stan, źle się skaluje. OK, ...
Programowanie rozproszone 5673 dni, 20 godzin, 43 minuty temu 74 źrodło rozwiń
Opis tworzenia klienta REST w .NET. Całość opiera się na klasie WebChannelFactory, której to dostarczamy interface mapujący restowe operacje na metody. Jest to bardziej skonkretyzowana klasa względem ChannelFactory, nastawiona na czysto webową komunikację. WebChannelFactory potrafi także mapować odpowiedź serwera na odpowiednie klasy - obsługiwany jest zarówno XML jak i JSON.
Programowanie rozproszone 5697 dni, 11 godzin, 41 minut temu 72 źrodło rozwiń
W ciągu ostatnich paru miesięcy bardzo głośno było o tak zwanych “chmurach”. Po raz pierwszy technologia zaprezentowana podczas Mix dzisiaj może być już śmiało wykorzystywana przez programistów i duże firmy do modelowania problemów biznesowych. Warto jednak zauważyć, że to wciąż wersja CTP.O co w ogóle tyle zamieszania, przecież już kilkadziesiąt lat temu powstały podwaliny pod tak zwany utility computing w systemach Unix. To co było kiedyś jednak znacząco różni się od tego co dostajemy dzisiaj. Teraz do...
Programowanie rozproszone 5701 dni, 12 godzin, 34 minuty temu 89 źrodło rozwiń
W Powershell 2.0 mamy możliwość zdalnego wykonywania poleceń. Powershell domyślnie też umożliwia odwołania z kodu C# do comandletów Powershellowych. Jednak połączenie remotingu Powershella oraz C# nie jest prostym zadaniem – brakuje po prostu przykładów. Nawet google jest w tym wypadku bezradny. Po wnikliwej lekturze SDK do Powershell-a, możemy znaleźć klasę RunspaceConnectionInfo, ale niestety ta klasa ma prywatny konstruktor. Na szczęście jest klasa WSManConnection Info.
Programowanie rozproszone 5705 dni, 21 godzin, 55 minut temu 103 źrodło rozwiń
Usługi sieciowe to obecnie dosyć popularny sposób na integracje oprogramowania opartego na różnych platformach. Aby w aplikacji napisanej w .NET skorzystać z usługi sieciowej napisanej np. w PHP musimy dodać sobie referencje do takiej usługi. Jako pole do popisu wykorzystanie zostanie usługa sieciowa udostępnioną przez Allegro.pl.
Programowanie rozproszone 5720 dni, 12 godzin, 18 minut temu 206 źrodło rozwiń
Standard i powiązane z nim specyfikacje OPC Unified Architecture (OPC UA) powstawały przez pięć lat, w lutym tego roku zostały wreszcie opublikowane. Niemal od samego początku prac nad specyfikacjami trwały prace grupy "Early Adopters", której zadaniem było zaimplementowanie OPC UA w prawdziwym oprogramowaniu. Jako platforma, wybrana została platforma .NET, a język to C#. W ten sposób powstał pakiet SDK, który w zeszłym miesiącu (2009-03-22) udostępniony został na stronach OPC Foundation. Aby ułatwić im...
Programowanie rozproszone 5730 dni, 21 godzin, 55 minut temu 65 źrodło rozwiń
Miłosz napisał swoją własną bibliotekę do komunikacji z API Blip.pl przy pomocy WCF - bardzo ciekawe
Programowanie rozproszone 5768 dni, 7 godzin, 38 minut temu 89 źrodło rozwiń