Platforma do tworzenia aplikacji w chmurach   Leave a comment

Obok produktów dwóch gigantów softwarowych Google i MS, firma Salesforce zaczyna oferować w portalu dla deweloperów (developrforce) własne, oryginalne narzędzia do tworzenia aplikacji w chmurach. Początkowo służyły one do użytku wewnętrznego, obecnie zostały udostępnione na zewnątrz i służą do tworzenia szerokiej klasy aplikacji korporacyjnych na potrzeby różnych funkcji biznesowych. Uruchamiane muszą być na platformie Force.com ale dzięki temu czerpią korzyści z jej infrastruktury jeżeli chodzi o bezpieczeństwo, skalowalność, niezawodność i łatwość w konfiguracji.

Podstawowe zasoby deweloperskie:

  • Do tworzenia aplikacji na tej platformie można podejść dwojako: korzystając z udostęnionych narzędzi deweloperskich firmy Salesforce (język Apex, środowisko Force.com IDE na bazie Eclipse oraz VisuaForce) lub poprzez API do wykorzystania w językach Java, PHP i platformie .NET.
  • Apex Code jest językiem programowania o ścisłych typach danych i wykonuje się w środowisku platformy Force.com. Stosuje się go do dopisania logiki biznesowej do aplikacji, tworzenia trygerów bazodanowych oraz do pisania kontrolerów do sterowania  interakcją  w warstwie interfejsu z użytkownikiem. Jest to język wyspecjalizowany do obsługi środowiska aplikacji Salefore ale dzięki temu jest ściśle z nim związany z tą platformą i zintegrowany z bazą danych oraz ma wbudowany język zapytań (w C# dopiero w wersji 3.5 uzyskano taką integrację poprzez LINQ). Wspiera również serwisy webowe oraz zarządzanie wieloma instancjami aplikacji (tzw. środowisko multi-tenant environment) oraz asynchronicznym (nieblokującym działania aplikacji) wykonaniem procesów tworzonych przez użytkownika. Jedyną jego wadą jest niestandardowość i ograniczenie do platformy Force.com.  To ograniczenie można łatwo obejść kosztem wygody (tworzenie aplikacji w Apex jest wyjątkowo łatwe z uwagi wykorzystanie “zanurzenia” w środowisku wirtualnym platformy) jest wykorzystanie API do Force.com w swym ulubionym, własnym języku programowania.
  • Baza danych – nie jest to klasyczna baza w rozumieniu modelu baz danych (ani sieciowa, ani hierarchiczna, ani też relacyjna) bardziej podchodzi pod kategorię baz typu NoSQL. Baza jest dla użytkownika pewną abstrakcją utrwalającą stan obiektów (a nie tablic) w aplikacji, dlatego nie wymaga mapowania ORM (między tablicami w bazie i obiektami w programie). Ale tak do końca nie jest, zamiast tablicy są obiekty, które powiązane są ze sobą relacjami. Obiekt składa się z pól, grupa obiektów zgromadzona jest w wiersze.  Każdy obiekt ma swój unikalny identyfikator (klucz) w postaci np. https://na3.salesforce.com/0015000000Gv7qJ nadawany i obsługiwany automatyczne.
  • Obsługa aplikacji odbywa się zgodnie z paradygmatem MVC przy pomocy narzędzia graficznego Visualforce.

Sprawę udostępniania swych usług firma potraktowała bardzo poważnie tworząc portal informacyjny na stronie trust.salesforce.com. Tam też można znaleźć niezbędne informacje na temat bezpieczeństwa serwerów usługowych. Podobne informacje udostępnia Google na swych dashbordzie dostępności usług aplikacji Google Apps. Widać od razu, że stosunkowo małe firmy dają dużo informacji o stanie sprzętu (z dokładnością do lokalizacji fizycznej oraz planowanych przestojach), a duże firmy o globalnym zakresie starają się ukryć je i podają jedynie ogólny stan ich infrastruktury na dany dzień. Faktem jest że bardzo trudno zapewnić sobie u dostawców CC odpowiednie SLA (parametry kształtujące jakość usług QoS), zwykle podaje się niezawodność na poziomie 99.9% co dla aplikacji strategicznych firmy jest stanowczo za mało.

Dywagacja:

Tutaj należy przyjąć starą zasadę stosowaną od podświadomie zarania dziejów jeżeli czegoś nie da się opanować to należy się nauczyć kontrolować jej zachowanie i mieć zawsze w zanadrzu plan B (kiedyś była to ucieczka). Obecnie mówi się terminie “zarządzanie”.  Tak więc skoro nie można wymusić od dostawców wysokiego poziomu usług to musimy nauczyć się zarządzać nimi, żeby przynajmniej wyjść z twarzą w oczach klienta. Może to być  ograniczenie się w instalowaniu w chmurze do ważnych, aplikacji mało wymagających i mniej krytycznych i mniej zależnych czasowo, lub do podniesienia kosztów za usługę do takiego poziomu by zniechęcić użytkownika.

Czasami warto się sprzymierzyć by odnieść sukces nad wspólnym rywalem. Taki sojusz (ponad chmurami można by tak powiedzieć podpisał Google z Salesforce. Na jego mocy powstał produkt Force.com for Google App Engine – zespół bibliotek  (na bazie interfejsu Partner WSDL of the Force.com Web Services API) dla  twórców w Javie i Pythonie pozwalający na korzystanie z Force.com API (pochodzącego od Salesforce) w środowisku aplikacji korzystających z Google Apps Engine. Dzięki temu taka aplikacja może skorzystać ze wszystkich dobrodziejstw infrastruktury paltformy Force.com (głównie chodzi o bazę). Dodatkowo jeszcze dochodzi do tego pakiet  Force.com for Google Visualization udostępniajacy zestaw komponentów do wizualizacji pochodzący od Google na bazie kontrolek z Visualforce. W zamian za to twórcy na platformie Force.com uzyskują dostęp do biblioteki  Force.com Toolkit for Google Data API (udostępnia darmową zestaw narzędzi i usług obsługujących interfejs Google Data APIs z poziomu Force.com).

Posted 24 Sierpień 2010 by marekwmsdn in Bez kategorii

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s

%d bloggers like this: