Technologia ASP.NET


Z punktu widzenia przedsiębiorstw jedną z najbardziej fascynujących obietnic ery informacji jest zapowiedź możliwości zapewniania pracownikom dostępu do informacji i narzędzi niezbędnych do ich wykorzystywania w dowolnym czasie i miejscu. W pewnej mierze ta obietnica już się spełniła. Większość współczesnych ludzi biznesu używa komputerów osobistych, które zapewniają im dostęp do danych, aplikacji i zasobów znacznie wykraczający poza granice ich lokalnego urządzenia.

Punktem wyjścia do zrozumienia inteligentnego oprogramowania klienckiego są Usługi Web Services. Oparte na otwartych standardach internetowych, usługi Web Services mogą być z łatwością instalowane i wdrażane za pośrednictwem sieci. Ułatwiają one firmom rozwiązywanie wielu istotnych problemów, między innymi problemu współdziałania programów napisanych w różnych językach programowania i działających na odmiennych platformach czy też integrowania desktopów z aplikacjami spadkowymi i systemami korporacyjnymi.

Technologia ASP.net

Usługi Web Services są tajemnicą, która kryje się za inteligentnym oprogramowaniem klienckim. Umożliwiają one aplikacjom desktopowym, takim jak Microsoft Word czy Microsoft Excel, wymianę informacji z aplikacjami serwerowymi, między innymi z systemami zarządzania relacjami z klientem (CRM). Usługi Web Services mogą skracać pracochłonny i sprzyjający popełnianiu błędów proces wycinania i wklejania danych z jednej aplikacji do drugiej.

Microsoft .NET
Oprogramowanie firmy Microsoft służące do łączenia informacji, osób, systemów i urządzeń. Technologia .NET zapewnia współdziałanie oparte na XML, wykorzystywana jest w wielu produktach firmy Microsoft: w serwerach, klientach, usługach i narzędziach. Na przykład takie produkty, jak Microsoft Windows® i Microsoft Office także wykorzystują .NET do łączenia się z innymi systemami i aplikacjami. Programiści korzystają z .NET wykorzystując model programowania dostarczany przez platformę Microsoft .NET Framework.

Programy w technologii ASP.net

Na rynku dostępnych jest wiele programów w technologii Microsoft ASP.net, SoftwareStudio jest w Polsce wiodącym producentem rozwiązań w tej technologii. Oferuje rozwiązania wykorzystujące ASP.net oraz bazę danych SQL 2008 Server lub 2012 Server. Przykłady rozwiązań:

Program dla Służb Utrzymania Ruchu
CMMS.net

http://cmms.softwarestudio.com.pl/

Program rozliczania i kontroli pracy handlowców
CRM.net

http://crm.softwarestudio.com.pl/ 

Program do obsługi narzędziowni
Narzędziownia.net

http://narzedziownia.softwarestudio.com.pl/

Program do raportów i zestawień
SQL Reporting Services

http://raporty.softwarestudio.com.pl/

Program magazynowy dla firm logistycznych
Magazyn.net

http://magazyn.softwarestudio.com.pl/

Hosting aplikacji
Szybki dostęp do serwerów oraz stabilność usługi hostingu aplikacji to dwa kluczowe czynniki decydujące o wyborze dostawcy rozwiązania, dlatego SoftwareStudio oferując swoje usługi opiera się o najlepsze rozwiązania dostępne na rynku (VMware oraz Windows Azure) i wykorzystuje jedno z najlepszych dataCenter w Polsce. Bezpieczeństwo i pewność eksploatacji Trzy serwerownie – osobne komory odseparowane ogniowo i wilgotnościowo Najwyższe standardy dla ścian ognioodpornych, drzwi, itp. Wielostrefowa kontrola dostępu Biometryka Wykrywanie otwartych drzwi Monitoring CCTV, kontrola 24h/7/365 Dwa niezależne zespoły wsparcia, cały czas na miejscu (infrastruktura i technologia) Monitorowanie zasilania i parametrów środowiskowych Monitoring usług IT Całodobowy nadzór kamerą termowizyjną Chroniona strefa dostaw wraz z magazynem Bezpieczeństwo mocy Dwie całkowicie oddzielne szyny mocy 18 ton akumulatorów Dwie całkowicie oddzielone rozdzielnie elektryczne Dwutorowy system dostawy zasilania Niezależne stacje transformatorowe na każdym torze Dwie niezależne rozdzielnie z dedykowanymi systemami UPS Niezależne trasy kablowe oraz listwy zasilające Nieprzerwane, autonomiczne źródło zasilania 1,85 mva Zbiorniki paliwa na 24h Możliwość tankowania z zewnętrznych cystern Testowane i monitorowane codziennie   Ochrona przeciwpożarowa Systemy wczesnego wykrywania dymu: VESDA Centralny analizator cząstek dymu Precyzyjna lokalizacja źródła dymu. Systemy wykrywania ognia: Wewnątrz systemowa kontrola przeciwpożarowa Dozór ludzki 24h Zapobieganie pożarowi i środki ostrożności przeciwpożarowej. Automatyczne systemy tłumienia ognia: Dwustrefowo – pod i nad podłoga techniczna Gaz tłumiący ogień certyfikowany do użytku w UE Chłodzenie i kontrola środowiska Najwyższa gęstość chłodzonego powietrza do 12 KW na szafę serwerową 2-3 w pełni wyposażone kasty serwerów na szafę Precyzyjna kontrola przepływu powietrza Dwa tory wytwarzania i dystrybucji chłodu Dwa niezależne zestawy agregatów chłodniczych Zapasowe systemy chłodzące Monitoring i kontrola dystrybucji chłodu Cieple i zimne korytarze Ekologia: odzyskiwanie ciepła do ogrzewania przestrzeni biurowych Monitoring termowizyjny Monitoring temperatury i wilgotności

Maszyny Wirtualne
Usługi w chmurze systemu Windows Azure umożliwiają szybkie wdrażanie zaawansowanych aplikacji i usług oraz zarządzanie nimi. Wystarczy przekazać aplikację, a system Windows Azure obsłuży proces wdrażania, od zainicjowania obsługi i włączenia równoważenia obciążenia po monitorowanie kondycji w celu zapewnienia ciągłej dostępności. Aplikacja jest objęta najlepszą w branży umową SLA na poziomie 99,95% miesięcznie. Możesz skoncentrować się tylko na aplikacji, nie przejmując się infrastrukturą. To bardzo dobre rozwiązanie. Cloud computing, a konkretnie model IaaS (Infrastructure as a Service) to usługa polegająca na dostarczeniu infrastruktury informatycznej. Wybierasz to, czego potrzebujesz i płacisz tylko za to, co wykorzystasz. Nie musisz inwestować w sprzęt serwerowy i sieciowy. Chmura obliczeniowa jest idealnym rozwiązaniem dla systemów wymagających jednocześnie wysokiej dostępności, dużej wydajności oraz skalowalności.

Aplikacje webowe
Oprogramowanie serwera www było stosunkowo proste, wystarczyło że odbierał on żądania stron identyfikujące adres URL pliku, pobierał plik o wskazanej nazwie z dysku serwera i zwracał go do klienta. Takie rozwiązanie było wystarczające w czasach prehistorycznych, kiedy wszystkie dane na stronach www były statyczne. W celu rozwiązania problemów statycznych stron www, wymyślono że na serwerze musi pracować aplikacja, która dynamicznie generuje strony dla klienta. Serwer www musi zapewnić też metodę pobierania od użytkownika danych wejściowych na potrzeby algorytmów działających po stronie serwera wraz z metodą wysyłania wyników z powrotem do użytkownika.

Aplikacja internetowa
Sieć www była pierwotnie używana wyłącznie do dostarczania statycznych stron zawierających tekst i obrazki. Oprogramowanie serwera www było stosunkowo proste, wystarczyło że odbierał on żądania stron identyfikujące adres URL pliku, pobierał plik o wskazanej nazwie z dysku serwera i zwracał go do klienta. Takie rozwiązanie było wystarczające w czasach prehistorycznych, kiedy wszytskie dane na stronach www były statyczne (treść stron się nie zmieniała, nie było potrzeb pobierania danych wejściowych, algortymów itp. oraz strony www miały być dostępne dla wszystkich. W celu rozwiązania problemów statycznych stron www, wymyślono że na serwerze musi pracować aplikacja, która dynamicznie generuje strony dla klienta. Serwer www musi zapewnić też metodę pobierania od użytkownika danych wejściowych na potrzeby algorytmów działającyh po stronie serwera wraz z metodą wysyłania wyników z powrotem do użytkownika. Ponieważ niektóre dane (albo ogromna ich większość w przypadku aplikacji biznesowych) są prywatne – czyli dostęp musi być ograniczony, serwer www musi sprawdzić, kim jest użytkownik
żródło: David S.Platt „Podstawy Microsoft .NET”

Co to jest usługa sieciowa?

Jako że najlepiej tłumaczy się na przykładzie, dlatego ja również nim się posłużę. Wyobraźmy sobie taką sytuację, gdzie dokonujemy transakcji płatniczych przy pomocy karty kredytowej. Potrzebna jest metoda sprawdzania tej karty. Oczywiście można taką metodę umieszczać w każdej aplikacji dla każdego sklepu, stacji benzynowej czy restauracji. Jednak aplikacje te nie mają i najprawdopodobniej nigdy nie będą miały ze sobą nic wspólnego, dlatego ten sam algorytm należałoby umieścić w każdej z nich. Kolejny przykład: co jakiś czas Narodowy Bank Polski publikuje kursy walut. Jak w odpowiednim czasie powiadomić wszystkie kantory i inne banki o zmianie ceny waluty? Właśnie tutaj z pomocą przychodzą usługi sieciowe (usługi internetowe). Są to metody udostępniane w sieci, z których mogą korzystać inne aplikacje. W powyższych przykładach usługa taka umieszczona byłaby na serwerze banku. Wtedy pisząc aplikację kliencką jedyne co musimy zrobić to odwołać się do tej metody. Odwołanie następuje poprzez sieć (Internet). Takie rozwiązanie ma wiele zalet, jedną z nich jest fakt, że wszelkie zmiany (np. zmiana algorytmu walidacji karty) dokonywane będą tylko w jednym miejscu. Drugą zaletą jest to, że programiści aplikacji klienckich nie muszą znać algorytmów wykorzystanych w usłudze.

Jak korzystać z usług internetowych ?

Aby móc korzystać z usług internetowych, należy mieć odpowiednią ilość dostępnego miejsca na dysku jakiegoś serwera WWW, na którym umieścimy naszą aplikację świadczącą usługi poprzez Internet. W artykule zarówno usługa jak i aplikacja kliencka będzie umieszczona na lokalnym komputerze (localhost), na którym wcześniej uruchomiono usługę WWW. W systemie Windows można taką usługę uruchomić instalując Internet Information Services (IIS), Internetowe Usługi Informacyjne. Po skonfigurowaniu i uruchomieniu serwera WWW konieczne jest również zarejestrowanie ASP.NET w wersji 1.1 w usłudze WWW. Jednym ze sposobów jest uruchomienie instalatora znajdującego się w domyślnym katalogu instalacyjnym Microsoft .NET Framework

Technologia internetowa
Pierwszym etapem tworzenia usługi internetowej jest wybór sposobu komunikacji pomiędzy serwerem świadczącym tę usługę a klientem. Najlepszym kanałem byłby kanał bezpołączeniowy, stąd też technologie takie jak DCOM, CORBA czy JAVA RMI nie nadają się do tego. Protokołami w pełni dostosowanymi do pracy w sieci są HTTP (Hypertext Transfer Protocol) oraz SMTP (Simple Mail Transfer Protocol). Ten pierwszy działa na zasadzie żądanie/odpowiedź, natomiast drugi zapewnia rutowalny protokół wymiany informacji w ramach komunikacji asynchronicznej. Kolejnym problemem w dzisiejszym Internecie jest problem zabezpieczeń. Oba wspomniane protokoły z reguły są udostępniane w przedsiębiorstwach oraz administratorzy pozostawiają otwarte porty do pracy dla tych protokołów. HTTP zapewnia komunikację bezpołączeniową, tzn. nie korzysta z nieprzerwanego połączenia z klientem. Natomiast SMTP będąc asynchronicznym w przypadku niepowodzenia w transmisji danych dokonuje próby jej wznowienia.

Kolejnym krokiem jest wybór schematu kodowania dla przesyłanych danych. Doskonale nadaje się do tego XML (Extensible Markup Language). Jest on niezależny od platformy, oferuje obsługę wspólnego systemu typów oraz standardowych zbiorów znaków. W XML oferującym kodowanie tekstowe uniknięto problemów z konwencją kodowania liczb na różnych platformach (little endian na Intelu, czy big endian na innych). Z problemami tymi muszą borykać się wspomniane wcześniej technologie DCOM, CORBA czy JAVA RMI. Ponadto niektóre protokoły, jak np.: SMTP korzystają tylko z tekstowych schematów kodowania.

Dalej potrzebna jest jednolita konwencja formatowania. Konieczne stało się uniezależnienie treści wiadomości od zastosowanego protokołu. Jeśli bowiem wysyłając wiadomość do wielu miejsc przeznaczenia, wiadomość ta musiałaby być transportowana przez wiele różnych protokołów, to informacje o routingu, zawarte np.: w nagłówku HTTP musiały by być przetłumaczone do nagłówka SMTP etc. Aby tego uniknąć należy zawrzeć dane o wiadomości razem z jej treścią, w nagłówku wiadomości. Dlatego stworzono protokół SOAP (Simple Object Access Protocol). Wiadomość SOAP zawiera kopertę Envelope, która składa się z sekcji Head będącej nagłówkiem oraz Body zawierającej treść wiadomości.

Na potrzeby opisywania usług sieciowych stworzono specjalny język WSDL (Web Services Description Language). Dokumentacja usługi stworzona w tym języku zapewnia informacje na temat wzorców wiadomości przesyłanych od i do klienta, użytego protokołu, czy w końcu adresu usługi. Dokument WSDL jest zapisany na dysku w formacie XML.

Ostatnim problemem jest lokalizacja usługi. Jeśli jest to sieć lokalna to należy poinformować potencjalnych użytkowników o miejscu jej przechowywania, jeśli usługa ma być udostępniona w Internecie to sprawa wygląda nieco bardziej skomplikowanie. Wykorzystuje się tutaj mechanizm ogłaszania usług zawarty w specyfikacji UDDI (Universal Description, Discovery, and Integration). Tym jednak nie będziemy się tu zajmować.

Testowanie usługi
Dokumentacja WSDL udostępnia nam mechanizmy do testowania usługi. Klikając nazwę metody ValueQuery otwieramy stronę zawierająca pole na wpisanie wartości.
Aby móc korzystać z usługi udostępnianej poprzez WWW konieczne jest dodanie do niej odniesienia. W tym celu klikamy Add Web Reference z menu Project. W polu URL możemy podać adres do naszej usługi, lub jeśli go nie znamy klikamy odpowiedni link w oknie Start Browsing for Web Services. Programista jest zwolniony z konieczności studiowania specyfikacji protokołów transportowych oraz całego zaplecza implementacyjnego usługi internetowej. Jego zadaniem pozostała jedynie strona merytoryczna, czyli to co faktycznie usługa ma robić. Drugą ważną sprawą jest to, że usługi tworzone na platformie .NET, wykorzystujące protokół SOAP oparty o kodowanie w formacie XML są uniezależnione od platformy sprzętowej, działają w dowolnym systemie operacyjnym obsługującym podstawowe protokoły transportowe, takie jak HTTP czy SMTP. Z tego też względu usługi nie wymagają otwierania dodatkowych portów dla danych, lecz korzystają z tych, na których pracują wyżej wymienione protokoły. Zwyczajowo są to odpowiednio port 80 i 25. Pierwszy z nich obsługuje strony WWW, drugi pocztę elektroniczną, czyli w większości przypadków administratorzy pozostawiają je otwarte. Zagadnienie usług sieciowych jest rozległe. W artykule starałem się jedynie pokazać podstawowe pojęcia związane z ich tworzeniem.

źródło: www.codeguru.pl

SoftwareStudio Sp. z o.o.