2011-08-08 14 views
5

pytanie dla początkujących. Zrobiłem wiele programów Java (np. GAE) i urządzeń mobilnych takich jak iOS i Android. Badam system Windows Azure jako platformę dla naszych usług po stronie serwera, z którymi współpracują nasze urządzenia przenośne. Muszę przyznać, że trudno mi się z tym pogodzić. Częścią tego jest przeciążenie akronimem. Czy są jakieś dobre wskazówki, w jaki sposób poszczególne akronimy łączą się ze sobą?Azure vs WCF vs ASP.NET vs ... Jak to pasuje do siebie?

Przeanalizowałem niektóre z tutoriali, ale koncentrują się one głównie na tworzeniu stron internetowych na platformie Azure. W naszym przypadku tak naprawdę nie ma żadnych stron internetowych, ale raczej usługi (niektóre REST, niektóre z nich inaczej), do których wywołują urządzenia. Być może w związku z konkretnym pytaniem: w jaki sposób rola robotnicza lub rola internetowa pobiera treść posta http wysłanego do punktu końcowego, który dla niego stworzyłem?

+0

Moja opinia: jeśli pracujesz w Javie, prawdopodobnie powinieneś wybrać Google lub Amazon na Azure. Platforma Azure niezwykle ułatwia tworzenie aplikacji opartych na chmurze, ale tylko w ekosystemie firmy Microsoft (tj. .NET, WCF, ASP). –

+0

Nie zgadzam się, należy wybrać technologię, która najlepiej rozwiązuje dany problem. Najlepszy w tym przypadku oznacza najskuteczniej, ekonomicznie i w jak najkrótszym czasie. Biorąc pod uwagę możliwości platformy Azure (i ekosystemu MS), nieodpowiedzialne byłoby, gdybyśmy nie rzucili okiem na korzyści i potencjalne zastosowania. –

+0

Wolałbym GAE, ale firma jest sklepem MS, więc wybór jest ustawiony. – onnoweb

Odpowiedz

6

Odpowiedź na to pytanie powinna być dość łatwa. Azure, w stosunku do Ciebie, jest dostawcą hostingu . Pomaga to skalować serwery aplikacji na podstawie zapotrzebowania (np. Liczba klientów mobilnych pobierających aplikację &).

Małe przemówienie marketingowe: Azure obniża koszty posiadania własnych rozwiązań, ponieważ odbiera początkową inwestycję, najpierw wymyślając (zgadując) ilość potrzebnego sprzętu, a następnie budując/wynajmując centrum danych i/lub sprzęt komputerowy. Zapewnia także pewną formę oprogramowania pośredniego dla aplikacji, takich jak AppFabric, dzięki czemu mogą lepiej komunikować się w "chmurze". Otrzymujesz również równoważenie obciążenia na platformie Azure, hosting rozproszony (np. Centrale danych w Europie, centra danych w USA ...), mechanizm bezpieczeństwa już działający (automatyczne instancjonowanie instancji, jeśli wystąpi awaria) i oczywiście, płacą za siebie & za co płacisz korzyści.

Going stamtąd, ASP.NET to framework aplikacji, w szczególności framework aplikacji internetowych. Pomaga pisać aplikacje internetowe za pomocą ośmiu WebForms lub MVC. Z tego, co oświadczyłeś, nie powinno ci to zbytnio służyć (do uruchamiania tylko systemu zaplecza). Ale jeśli potrzebujesz aplikacji sieciowej do tego, tak, ASP.NET działa doskonale z Azure (oczywiście).

Wreszcie WCF lub Windows Communication Foundation , to kolejny ramy, tym razem na piśmie i usług zużywających. Są to usługi sieciowe lub inne, np. Usługi oparte na protokole TCP, nawet usługi oparte na MSMQ. To jest, moim zdaniem, to, na co powinieneś patrzeć, aby ujawnić swój back-end. WCF zapewnia możliwość łatwego określenia kontraktu i wdrożenia, pozostawiając hosting usługi i instancję do IIS (IIS jest serwerem Microsoftu, który również działa pod pokrywami na Azure).

Teraz, aby spróbować odpowiedzieć na twoje pytanie: Chciałbym przejść do roli internetowej, obsługującej usługę WCF, narażony na publiczny punkt końcowy. Twoja aplikacja mobilna będzie odtąd wywoływać ten publiczny punkt końcowy (zdefiniowany oczywiście przez adres i port) i korzystać z internetowych usług opartych na standardach w celu komunikacji z twoimi usługami.

Czy to ma sens?

Bezwstydny plus: Napisałem o tych modnych hasłach i czym jest on my blog, which you are welcome to check out.

+0

Dzięki! To pomaga wstawić niektóre elementy w kontekście. Drzewa i las i tak dalej. – onnoweb

4

Myślę, że większość z tego, co widzisz, to sposób działania platformy .NET. (ASP.NET i WCF są technologiami .NET). Windows Azure to platforma, która może uruchamiać najróżniejsze rzeczy (chociaż w większości ludzie używają jej do .NET). W roli sieciowej Windows Azure Twój kod działa tylko w IIS (serwer WWW) i można w nim uruchamiać ASP.NET, WCF, PHP itp.

Myślę, że najczęstszym sposobem budowania interfejsów REST API w Windows Azure jest użycie programu ASP.NET MVC 3 lub WCF w celu zbudowania usługi REST, a następnie hostowania jej w roli sieciowej. Sposób uzyskania danych opublikowanych w punkcie końcowym zależy od używanej technologii. Zgodnie z ASP.NET MVC 3, można napisać coś takiego:

[HttpPost] 
public ActionResult CreateMessage(string title, string body) 
{ 
    // use title and body here... they'll be the parameters in the HTTP post 
    return Content("Message created!"); 
} 
0

można wykorzystać Windows Communication Foundation (WCF) opublikowanie końcowego usługi. Może to być punkt końcowy SOAP lub punkt końcowy REST.

Ten punkt końcowy usługi będzie hostowany w roli internetowej. Możesz myśleć o roli internetowej jako serwera z IIS.

Rola pracownika jest trochę podobna do usługi Windows.

Weźmy na przykład scenariusz, w którym otrzymasz dane za pośrednictwem usługi internetowej, a następnie wykonaj niektóre obliczenia, a następnie zapisz wynik. W takim przypadku masz rolę w sieci z usługą sieciową, która otrzymywałaby dane. Będzie przechowywać dane w kolejce. Program w roli roboczej monitorowałby kolejkę, zbierał nowe dane, wykonywał obliczenia i zapisywał wynik w tabeli.

Powiązane problemy