czwartek, grudnia 07, 2006

Trzy rozwiązania

Przemyślenia
  1. MS uruchamia podbnie jak Google przeglądarkę i wyszukiwarkę książek - twierdzi, że "w dobie powszechnego bełkotu i chaosu informacyjnego w Internecie, jedynie informacja zawarta w książkach jest choć nieco przestarzała ale lepiej ocenzurowana i na wyższym poziomie merytorycznym". Tak zgadzam się z tym w pełni.
  2. Sun potwierdził słuszność mojej tezy 80% Client / 20% Server, gdzie Client - oznacza jakiś framework wspierający technologię Ajax po stronie klienta w środowisku JavaScript (np. dojo) + CSS + DOM, a Server - oznacza platformę serwer aplikacji w tym przypadku J2EE. Podobny projekt ma Microsoft (AJAX dla .NET) i Google (GWTK) [http://www.adtmag.com/article.aspx?id=18912]. Składniki:
  • Client-side JavaScript toolkits, such as Dojo, which hides the low-level processing of XMLHttpRequest;
  • DWR (Direct Web Remoting), which enables RMI-like invocation from the JavaScript client code to backend Java class;
  • AJAX-enabled JSF components which allows the building of AJAX apps by dragging-and-dropping UI components;
  • Wrapper technology such as jMaki that permits use of AJAX widgets from different sources using common interface;
  • Java to JavaScript translator technology such as Google Web Toolkit (GWT) and
    Existing Web app frameworks with AJAX extensions such as Wicket, Echo2 or Shale. These include:
    - Client-side JavaScript toolkits, such as Dojo, which hides the low-level processing of XMLHttpRequest;
    - DWR (Direct Web Remoting), which enables RMI-like invocation from the JavaScript client code to backend Java class;
    - AJAX-enabled JSF components which allows the building of AJAX apps by dragging-and-dropping UI components;
    - Wrapper technology such as jMaki that permits use of AJAX widgets from different sources using common interface;
  • Java to JavaScript translator technology such as Google Web Toolkit (GWT); and Existing Web app frameworks with AJAX extensions such as Wicket, Echo2 or Shale.
  • Do tego co napisałem powyżej jest świetna strona http://www.javapassion.com/ajaxcodecamp/#Presentations
  1. IBM nazywa to RIA rich Internet Application - oznacza wyposażenie aplikacji klienckich (napisanych jako aplikacje desktop w Javie lub applet na stronie w przeglądarce) w możliwość pobierania danych z serwera.
  2. http://www.adtmag.com/article.aspx?id=18795 - Artykuł o kolejnym produkcie typu Grid - nazywa się ActiveGrid Studio 2.0. Wnosi technologię Web 2.0 i LAMP w środowisko serwerów Java (Apache Tomcat, BEA WebLogic, IBM Websphere, Sun Java System Application Server and JBOSS). Drugim produktem jest ActiveGrid Server 2.0 - serwer aplikacji umożliwiający na instalację aplikacji Web 2.0 na "zwykłych" serwerach (posiada mechanizm cache, LDAP, load balancing i dashboard-y). Wersja open source obu produktów udostępniana jest na zasadzie licencji Apache Software License 2.0.Cena wersji komercyjnych - od $8,000 do $12,000 rocznie.

Nowe kryteria serwera aplikacyjnego

Kryteria wyboru serwera aplikacyjnego:

  1. Administracja (lokalna/zdalna, interfejs GUI/tekstowy/przeglądarka, wsparcie dla SNMP do konfigurowania/monitoringu pracy, tworzenie kopii),
  2. Skalowalność/Rozwijalność-przyszłościowość (architektura 32/64 bity, zgodność z J2EE (w jakiej wersji?), certyfikat z JSEE (wersja?), IPv6, klastry/farmy, wsparcie dla wirtualizacji, tranzakcyjność, odporność na awarie sprzętowe/bazodanowe/aplikacyjne, łagodne wychodzenie z awarii),
  3. Programowalność (języki kompilowane/skrypty interpretowane),
  4. Bezpieczeństwo (SSO, LDAP, SSL, firewall, proxy, wsparcie dla AD),
  5. Wsparcie (SLA, QLA),
  6. Architektura (C/S, cienki klient, przeglądarka internetowa)

Co z tym ciałem (Flashem)?

Komentarz na temat udostępnienia przez Adobe (po przejęciu przez niego firmy Macromedia) technologii Flash organizacji Mozilla (inaczej mówiąc wlączeniu do języka JavaScript mozliwosci ActionScript - notabene czy mogą to zrobić legalnie mijając standard języka JS zdefiniowany przez ECMA?, oraz maszyny do uruchamiania aplikacji Flash do interpretera JS w przyszłych wersjach FireFox). Ruch ten na pewno mam na celu spopularyzowanie apliakacji wykonanych we Flash-u:

  • "Chizen said that Adobe intends to work more in open source, although he said that it does poses a challenge for the company. Adobe on Tuesday announced that it will provide the ActionScript Virtual Machine--software to run JavaScript andActionScript programs--to the Mozilla Foundation for inclusion in future versions of the FireFox browser. "You'll see us participate more (in open source). We're going to have to walk this fine line between open standards and open source," he said. "Where we want to make money, it's hard to be completely open source because we do need to continue to generate revenue," he said. O'Reilly noted that Microsoft is increasingly seeking to steal away customers from Adobe, notably Web designers and graphics designers."

Własnie mam Acrobat Reader 8. Umozliwia on m.in. tworzenie z poziomu Readera plików PDF (usluga sieciowa ws -LiveCycle). Łączy się w tle z serwerem Adobe w celu aktualizacji swego kodu i propozycji reklamowych)

środa, grudnia 06, 2006

Kryteria wyboru narzędzi

Kryteria wyboru :

  • Wsparcie i rozwój (nowe wersje, aktualizacje)
  • Ergonomia
  • Skalowalność (pionowa i pozioma)
  • Wydajność
  • Wieloplatformowość
  • Obciążenie systemu operacyjnego, narzut na pamięć i CPU (i inne zasoby)
  • Narzędzia do zarządania infrastrukturą IT (zasobami sprzętem, siecią, urządzeniami, konfiguracją, wydajnością, użytkownikami)
  • Integracja z platformą mobilnych urzadzeń
  • Wsparcie komunikacji między użytkownikami
  • Wsparcie pracy grupowej programistów
  • Wsparcie pracy grupowej użytkowników (portal)
  • Zarządzanie wersjami
  • Możliwość tworzenia komunikatów i kolejkowanie
  • Narzędzia do zrównoważenia obciążenia

  • Infrastruktura serwerów
  • Integracja z platformą (system, serwer internetowy, aplikacyjny, bazodanowy, zarządzanie transformacjami na ESB, portalowy, raportowanie i inne)
  • Integracja z innymi aplikacjami
  • Przechowywanie sesji
  • Połączenie z bazami (standard ODBC/JDBC lub własne)
  • Obsługa tranzakcji
  • Wsparcie dla nowych technologii (EAI, AJAX, XML)
  • Intergracja z EAI i aplikacjami spadkowymi (legacy)
  • Wsparcie dla bezpieczeństwa
  • Zarządzanie zmianami konfiguracji
  • Konsola do zarządzia aplikacjami
  • Disgnostyka
  • Obsługa dziennika zdarzeń
  • Monitorowanie i audyt

wtorek, grudnia 05, 2006

Swietny pomysł

Wyszukiwarka Google dla Twojej firmy
Nowosc! Korporacyjna wyszukiwarka Google dostepna od teraz w Polsce!
Czy nie byloby wspaniale, gdyby wyszukiwanie w obrebie firmy bylo równie proste jak na Google.pl? Dzieki produktom korporacyjnym Google bedziesz mógl zaoferowac swoim pracownikom proste, szybkie i bezpieczne wyszukiwanie w obrebie wszystkich danych firmowych, w tym intranetów, systemów do zarzadzania dokumentami i tresciami, serwerów plików, komputerów pracowników i aplikacji biznesowych, takich jak CRM i business intelligence. Równiez na swojej publicznej stronie WWW mozesz udostepnic klientom i partnerom biznesowym wyszukiwarke o jakosci, do której przyzwyczail ich Google

Co tam nowego w Java Card 2.2?

Nowe podejście do kart kryptograficznych (od strony Java CARD)

  1. http://www.enigma.com.pl/index.php?option=com_content&task=view&id=183&Itemid=155
  2. http://security.computerworld.pl/news/79172.html
  3. http://java.sun.com/products/javacard/dev_kit.html
  4. http://home.elka.pw.edu.pl/~pnazimek/index.php?lang=pl&page=36

Wyposażenie oprogramowania w kartach w VJM (wirtulaną maszynę Java) poprzez co uzyskuje się jednakową, niezleżną od platformy sprzętowej możliwość komunikacji między kartą a np. appletem na stronie internetowej (oczywiście aplet musi być podpisany). Ostatnie łącze stanowi skarbnicę wiedzy jak samemu oprogramować karty inteligentne w tym SIM w telefonach, karty kryptograficzne, bankowe, lojalnościowe itd. Wszystko dzięki standardowi Java CARD 2.2. staje się jasne i proste. Autor udostępnił dokumentację w pdf i masę przykładów w pliku zip. Prawdziwa perełka.

Inną perełką pełną przykladów jest strona www.jensign.com. Jej autor (MVP z MS) początkowo widząc popularność jaką się ciszy ta strona chciał ją na wiosnę tego roku sprzedać (przedtem zabezpieczył informacje na niej). Ale oczywiście nikt nie chciał tego kupić. Rad nie rad ponownie ją otworzył z jeszcze większą ilością informacji (być może znalazł tajemniczego sponsora, moż to jest MS?).

Nowosci o podpisie

Świetny artykuł z MSDN - "Building Browser Helper Objects with Visual Studio 2005 Tony Schreiner, John Sudds Microsoft Corporation October 27, 2006" w C++

Frima Sputnik zajmuje się upowszechnieniem podpisu wraz z Sigillum - http://www.nowoczesnagmina.pl/About.aspx - korzysta z appletu Java. Karta jest wykonana zgodnie ze standardem - Java Card™ 2.2. tel. kontaktowy - 801 886644

Matrix - firma polska ->Technologie: Java 2 Enterprise Edition, Applety, PKI, karty kryptograficzne - PKSC#11.

Komunikat ostrzeżenie na stronę portalu AS -

  1. *) Z dniem 11.07.2006 r. firma Microsoft Corporation wstrzymała ostatecznie aktualizację zabezpieczeń dla systemów operacyjnych Microsoft Windows 98, 98 SE oraz ME. W związku z powyższym, ze względu na zachowanie najwyższego stopnia bezpieczeństwa w trakcie składania podpisu elektronicznego, zalecamy Państwu instalowanie naszego oprogramowania wyłącznie na stacjach roboczych z systemem operacyjnym Microsoft Windows NT lub Microsoft Windows XP.

Certum (Unizeto) jest na liście CA/O forum. Co nowego w podpisie u nich:

  1. 2006-10-23 -Nowe usługi kwalifikowane Powszechnego Centrum Certyfikacji CERTUM

    W dniu 17.10.2006 r. Powszechne Centrum Certyfikacji CERTUM należące do Unizeto Technologies, jako pierwsze w Polsce uzyskało zaświadczenie Narodowego Centrum Certyfikacji (NCCert) umożliwiające rozszerzenie zakresu dotychczas świadczonych usług kwalifikowanych o kolejne trzy usługi:

    • weryfikację statusu certyfikatów w trybie online (OCSP) - Kwalifikowane OCSP

      Usługa polegająca na wystawianiu elektronicznego zaświadczenia potwierdzającego, że weryfikowany certyfikat jest certyfikatem kwalifikowanym i ważnym w momencie weryfikacji. Pozwala na sprawdzenie statusu certyfikatów kwalifikowanych wszystkich wystawców w Polsce.

      Usługa realizowana według „Polityki certyfikacji” spełniającej wymagania ustawy o podpisie elektronicznym, podlegająca audytom Ministra Gospodarki i na jego wniosek wpisana do rejestru usług kwalifikowanych związanych z podpisem elektronicznym.


    • walidację danych (DVCS),


    • poświadczanie odbioru i przedłożenia (DA).
  2. Status certyfikatu - OCSP (ang. Online Certificate Status Protocol) OCSP (Online Certificate Status Protocol) jest standardem opisującym protokół komunikacyjny pomiędzy systemem informatycznym odbiorcy usług certyfikacyjnych a serwerem usługowym. Protokół ten określa format i strukturę zapytania (żądania) o status certyfikatu oraz format i strukturę odpowiedzi („tokenu”), która zawiera wynik weryfikacji w postaci statusu: „poprawny”, „unieważniony”, „nieznany”.
  3. Wydanie zaświadczenia ze statusem „poprawny” oznacza, że certyfikat jest wystawiony przez jeden z podmiotów, których certyfikaty objęte są usługą OCSP oraz, że podmiot ten na moment udzielania odpowiedzi skutecznie nie unieważnił sprawdzanego certyfikatu.

    Korzystanie z zaufanej usługi OCSP jest praktyczniejszą i bardziej „bezpieczną” formą weryfikacji ważności certyfikatu niż przeszukiwanie list unieważnionych certyfikatów (CRL). -

    Kwalifikowana usługa OCSP pozwala szybko ustalić status certyfikatu kwalifikowanego wystawionego przez każde z polskich centrów certyfikacji świadczących kwalifikowane usługi certyfikacyjne. Wynik sprawdzenia statusu certyfikatu jest wydawany w postaci zaświadczenia (dokumentu) elektronicznego poświadczonego przez urząd OCSP. Zaświadczenie to stanowi dowód wykonania weryfikacji. Elektroniczne potwierdzenie statusu każdego certyfikatu może być przesłane za pomocą poczty e-mail autorowi zapytania.

    Alternatywą do korzystania z usługi OCSP jest „samodzielne” wykonanie weryfikacji ważności certyfikatu poprzez przeglądanie list unieważnionych certyfikatów (CRL). Przeprowadzenie poprawnie takiej weryfikacji obarczone jest sporym ryzykiem związanym z zagrożeniami występującymi w sieci Internet oraz z brakiem posiadania aktualnej wiedzy na temat wszystkich wystawców i typów certyfikatów uznanych za kwalifikowane. Natomiast w przypadku korzystania z usługi OCSP mamy do czynienia z jednym tzw. punktem zaufania; po otrzymaniu odpowiedzi z urzędu OCSP wystarczy sprawdzić autentyczność poświadczenia (podpisu) urzędu za pomocą danych powszechnie znanych, zawartych w zaświadczeniu certyfikacyjnym wydanym przez Narodowe Centrum Certyfikacji na wniosek Ministra Gospodarki. -z tego wynika, ze Certum świadczy centralnie o ważności wszystkich certyfikatów w Polsce.


  4. Zakończenie budowy i organizacji Centrum Danych 30 września 2006 r. zakończył się rozpoczęty 1 lipca 2004 r. projekt "Budowa i organizacja Centrum Danych realizującego misje krytyczne" dofinansowany w ramach Sektorowego Programu Operacyjnego Wzrost Konkurencyjności Przedsiębiorstw, poddziałanie 2.2.1.


  5. Struktura cennika Certum - wszystko jest płatne - cena biblioteki API dla dewelopera wynosi około 4000 zł (nett), nawet runtime dla użytkownika końcowego (skandal - to wcale nie pomoże w upowszechnieniu podpisu w Polsce!)
  6. Sigillum też przygotowało bibliotekę API - cena około 5000 zł

Ciekawostki, zagwozdki

Witam!

Łącza na dziś (5.12.2006)

  1. Portal www.developer.com - zawiera pod portale: jars, codeguru, earthweb, jguru, gamelan
  2. http://www.developer.com/net/asp/article.php/3644731 - ASP.NET Tip: Testing Web Sites with HttpWebRequest
  3. http://www.developer.com/net/net/article.php/3643406 - .NET Tip: Testing Network Services with the TcpClient Class
  4. http://www.developer.com/net/article.php/3483116 - annual awards 2005
  5. http://www.developer.com/tech/article.php/1557921 - to samo ale dla 2003 roku, zwyciężył Microsoft Visual Studio .NET oraz C#
  6. http://www.developer.com/lang/other/article.php/3637156 - Top 10 articles za zeszły miesiąc
  7. http://www.developer.com/net/asp/article.php/981571 - Programming WebForms
  8. http://www.developer.com/tech/article.php/607001 - Building client-side

Lekkie bazy

Expresso, komu? Zacięta rywalizacja na rynku baz danych typu Express. Mamy już do wyboru:

  1. MS SQL Server 2005 Express Edition,
  2. Oracle udostępnił Oracle 10g Express Edition (Oracle Database XE),
  3. IBM wystąpil z ofertą DB2 Express-C
  4. Do tego dołączyli się MySQL z MySQL Community Server (wersja open source, wersja komercyjna nosi nazwę MySQL Enterprise).

Co wybrać? Ostatnio do parametrów doszło kryterium "bezpieczeństwo" - okazało się niedawno, że SQL Server jest bezpieczniejszy od Oracle 10g. Bazowe parametry:
  1. wydajność,
  2. intergracja z systemem operacyjnym,
  3. skalowalność,
  4. wsparcie dla dodatkowych technologii (XML, raportowanie, CLR, Java),
  5. uzbrojenie (narzędzia do rozwoju aplikacji i zarządzania bazą)
  6. wsparcie dla różnych platform (Linux, Unix, Windows)

poniedziałek, grudnia 04, 2006

ActiveX

Jajko czy kura?

Ten odwieczny problem znalazł swoje postać w pytaniu związanym z .NET:

Co lepiej wstawiać? WinForm do WebForm czy WebForm do WinForm?

Na stronach http://www.codeproject.com/cs/miscctrl/htmlwincontrol.asp?df=100&forumid=17987&exp=0&select=1461081 opublikowano sposób właczenie WinForm do WebForm. Pozwala to na włączenie bardzo zaawansowanych kontrolek w stylu ActiveX osadzonych w WinForm do stron internetowych (WebForm). Cenę za co musimy zapłacić jest oczywiście bezpieczeństwo aplikacji internetowej. "OK, let’s return to web application security 101. Web applications must NEVER trust the client (web browser). This is gospel whether the web page interfaces use JavaScript, Flash, ActiveX, Applets, AJAX or any other protocol or language. Every developer should be aware that basic HTTP proxies may alter anything about the HTTP request, even those generated by XHR. Great care should be taken to ensure that all security checks are performed on the server--no exceptions." - cytat ze świetnej pracy na temat rzekomego niebezpieczeństwa stosowania technologii AJAX, który znajduje się na stronach http://www.whitehatsec.com/home/resources/articles/files/myth_busting_ajax_insecurity.html. Nigdy nie ufaj klientowi - to stara zasada i odnosi nie nie tylko do klasycznego rozwiązania (przeglądarki internetowej), ale również i do innych form np. widgetów z Opery czy Yahoo.

Przechodzimy do tematu starego jak świat "uruchamianie ActiveX w środowisku nie IE". Na szczęście mamy parę sprawdzonych rozwiązań dostepnych dla technologii Mozilla. Na stronie http://www.iol.ie/~locka/mozilla/plugin.htm jest wtyczka (plug-in) do wersji FireFox 1.5. Do tego jest świetny artykuł na codeguru o tym jak "Kod zarządzany na stronach WWW (kontrolki .NETw IE)" - http://www.codeguru.pl/article-643.aspx a na codeproject jest inny "Simple way to expose a .NET WinForm control as an ActiveX control in any HTML page" - http://www.codeproject.com/cs/miscctrl/htmlwincontrol.asp?df=100&forumid=17987&exp=0&select=1311281#xx1311281xx (efekt wyszukania w gg 'embedding Winform in WebForm') do tego świetna recenzja ""I suppose that many people find this link like I did and think ActiveX is the only way to expose WinForms to the browser. This is not the case nor is it the best or reccomended method. Please review the following link: http://samples.gotdotnet.com/quickstart/winforms/doc/WinFormsIeSourcing.aspx This is a much simple and straight forward way of embedding .Net WinForms inside of Internet Explorer. I want to add that this is not meant as a diss on the author of this article. He has a good solution to try to expose .Net control as an ActiveX object. I just believe that is not what people are really looking for when they find this. They just require a good way of embedding WinForm inside Internet Explorer"

Jajko czy kura?

Jajko czy kura?
Ten odwieczny problem znalazł swoje postać w pytaniu związanym z .NET: Co lepiej wstawiać? WinForm do WebForm czy WebForm do WinForm?
Na stronach http://www.codeproject.com/cs/miscctrl/htmlwincontrol.asp?df=100&forumid=17987&exp=0&select=1461081 opublikowano sposób właczenie WinForm do WebForm. Pozwala to na włączenie bardzo zaawansowanych kontrolek w stylu ActiveX osadzonych w WinForm do stron internetowych (WebForm). Cenę za co musimy zapłacić jest oczywiście bezpieczeństwo aplikacji internetowej.

AJAX - brzytwa w rekach malpy?

"OK, let’s return to web application security 101. Web applications must NEVER trust the client (web browser). This is gospel whether the web page interfaces use JavaScript, Flash, ActiveX, Applets, AJAX or any other protocol or language. Every developer should be aware that basic HTTP proxies may alter anything about the HTTP request, even those generated by XHR. Great care should be taken to ensure that all security checks are performed on the server--no exceptions." - cytat ze świetnej pracy na temat rzekomego niebezpieczeństwa stosowania technologii AJAX, który znajduje się na ższych stronach . Nigdy nie ufaj klientowi - to stara zasada i odnosi nie nie tylko do klasycznego rozwiązania (przeglądarki internetowej), ale również i do innych form np. widgetów z Opery czy Yahoo.

Każda przeglądarka ma wbudowany mechanizm wspierający XMLHTTPRequest (XHR). Istotą aplikacji typu Web 2.0 jest pobieranie danych z różnych trzecich serwerów w ten sposób doprowadzając do słynnego "mesh-up" czyli misz-masz. Stwarza to określone zagrożenie dla odbiorcy aplikacji. Na szczęście XHR technologia nie zezwala bezpośrednio na tego rodzaju sztuczki. "XHR has security protections built-in, preventing a user’s browser on Website A from making connections to Website B." Ale są różne obejścia tego ograniczenia. Rozwiązanie polega na stworzenie serwera pośrednika w domenie internetowej tzw. proxy (najczęściej na serwerze internetowym witryny). Odwołanie do witryny B ma przez serwer proxy taka postać http://websiteA/proxy?url=http://websitesB/ - w ten sposób proxy przekazuje żądanie z witryny A do witryny B. Wten sposób można ominąć ograniczenia XHR i apliakcja nie przesyła cookies. Ale w ten sposób witryna A gości odwołania do witryny B. Bezpieczeństwo polega na monitorowaniu do jakich to URL chcą się odwołać strony witryny B. A więc na kontroli i samocenzurze. Odnośnie Cross-Site-Scripting (XSS) to rzeczywiście AJAX na to zezwala, ale stosując wyłącznie JavaScript możemy "osiagnąć" taki sam efekt bez uciekania się do nadmiernej komplikacji w AJAX. Autor (Jeremiah Grossman) zademonstrował to w słynnej prezentacji “Hacking Intranet Websites from the Outside” at BlackHat 2006. Z kolei inna prezentacja pt. “Cross-Site Scripting Worms and Viruses" pokazuje jak możne to osiagnąć poprzez JS.

Zasady bezpiecznej aplikacji internetowej to KROK 1 polegający na:
  1. uwzględnienie aspektów bezpieczeństwa juz na etapie projektowania aplikacji
  2. dogłębne sprawdzania danych podanych przez użytkownika
  3. stosowanie tylko sprawdzonych bibliotek komponentów (dostępnych w branży), obojętne na jakiej licencji (closed lub open source), nie wymyslać na nowo koła (i powtarzać błędy innych) szczególnie przy kryptografii i zarządzaniu sesją.
  4. bezpieczna koniguracja (separacja usług, zasada najmniejszych przywilejów, wyłączenie usług zbędnych oraz komunikatów o błędach)
  5. Stałe poszukiwanie i naprawianie ewentualnych usterek. Stały pomiar i ocena podatności na atak (vulnerability assessment)

KROK 2 polega na nieustajacym monitorowaniu i walidacji rozwiązań.