sobota, lipca 07, 2007

Nowe cechy Javy:
Java powinna być bezpieczna z założenia, że działa w "piaskownicy" parametry bezpieczeństwa której można definiować. Model bezpieczeństwa Java składa się z dwóch warstw Core Java 2 Security Architecture i Java Cryptography Architecture. Stanowią one podstawowy poziom bezpieczeństwa nad którym są różne rozszerzenia (extension). Od wersji 1.4 Java ma własne mechanizmy obsługi kryptografii i nie trzeba uciekać się do bibliotek firm trzecich np. Bouncy Castle.
Opis J2SA składa się z:
  1. byte code verifier - sprawdza ponownie poprawność użytych konstrukcji języka (czy klasy mają cechę public, czy klasa final ma podklasę itd)
  2. class loader - ładuje klasy do maszyny wirtualnej i sprawdza poprawność odwołań do klas w ramach języka i do zasobów lokalnych
  3. security manager - klasa stworzona przez twórcę aplikacji zezwala na dostęp do zasobów
  4. access controller - niskopoziomowe sprawdzenie wykonywania się aplikacji (zarządzanie pamięcią, typowanie danych, naruszenie konwersji danych)
Opis JCA - realizuje funkcje kryptograficzne i udostępnia API do nich.
Rozszerzenia:
  1. Java Cryptographic Extension
  2. Java Security Socket Extension
  3. Java Autentication and Authorization Extension Service

piątek, lipca 06, 2007

Klasyczne opracowania o XML-u

Ronald Bourret - http://www.rpbourret.com/xml/XMLAndDatabases.htm:

  1. XML data products
  2. XML data bindings resources
  3. XML and database
Rozważania na temat technik programowania:
  1. Nastąpiło zbliżenie, środowisko .NET i J2EE stosują technologię Hibernate do przechowywania stanu oraz mapowania obiektów z aplikacji w bazie danych.
  2. Więcej szczegółow u znanego blogisty:
    1. http://www.jonathanbruceconnects.com/jonathan_bruce/
    2. http://devhawk.net/art_sccswitch.aspx
  3. Jeżeli chodzi o Oracle to podobnie jak dla innych baz należy przejść z OLDDB do ADO.NET (mimo, że te modele różnią się istotnie architekturą). Na tym polu króluje firma DataDirect - http://www.datadirect.com/products/net/net_for_oracle/index.ssp.
  4. Przeglądarka API dla Windows - http://www.activevb.de/rubriken/apiviewer/index-apiviewereng.html
  5. Inne przydatne narzędzia programistyczne - http://www.hanselman.com/
  6. Jak to jest z połączeniem PHP-Java:
    1. Thrift - http://developers.facebook.com/thrift/
    2. Krook - http://krook.net/archives/191:
      1. The open source PHP/Java Bridge hosted at SourceForge.
      2. The commercial Zend Platform Java Bridge developed by Zend Technologies.
      3. The free PHP Integration Kit for WebSphere Application Server Community Edition.
  7. REST na podstawie pracy Fielding'a - http://searchwebservices.techtarget.com - REST vs SOAP - the rest story
  8. REST stosuje również Google - http://code.google.com/apis/gdata/overview.html
  9. Dobra kontrola danych jest podstawą bezpiecznej aplikacji webowej : Kevin Beaver- Importance of data validation
  10. A SELENIUM podstawą do testowania gotowej aplikacji w całości - http://www.openqa.org/selenium-core/usage.html
  11. Przemyśl stosowanie JSF (ciągle zbyt uboga w komponenty) - http://www.theserverside.com/tt/articles/article.tss?l=RethinkingJSF
  12. Reminiscensje z JavaONE - http://www.theserverside.com/tt/talks/library.tss#buzek
  13. AJAX i GOOGLE - http://www.softwaredeveloper.com/features/google-ajax-play-nice-061907/
  14. GlassFish - co to jest? https://glassfish.dev.java.net/
  15. Uwaga! Nadchodzi SPRING:
    1. http://blog.interface21.com/main/2007/04/21/what-spring-web-flow-offers-jsf-developers/
    2. http://www.theserverside.com/tt/articles/article.tss?l=SpringNewJavaEE
  16. VFP gości .NET - http://west-wind.com/weblog/posts/104449.aspx
  17. Nowe spojrzenia na AJAX- a http://www.xul.fr/en-xml-ajax.html
  18. Applety z JSC http://jsc.sourceforge.net/
  19. Świetna dokumentacja do bibliotek środowiska JAVA - http://www.jdocs.com/

czwartek, lipca 05, 2007

Linki ciekawe:
  1. Tworzenie aplikacji wykorzystujacej open-source: http://www.onjava.com/pub/a/onjava/2004/04/07/wiringwebapps.html
  2. jsc for C#
  3. Baldwin Java - Servlets
  4. Przeechowywanie stanu i or-mapping bez Hibernate - doskonaly przyklad - http://www.ibm.com/developerworks/java/library/j-db4o4.html?ca=drs-
  5. OnJava - Google Gears p. 1.
  6. RH i MS rozmawiają o interoperability - http://www.eweek.com/article2/0,1759,2154521,00.asp?kc=EWRSS03129TX1K0000616
  7. Jak to jest z zabezpieczeniem SSL - http://webdesign.about.com/od/ecommerce/a/aa070407.htm
  8. Blog na temat J2EE - servlet v. 3.0 - http://java.sun.com/javaee/community/blogs/?feed=JSC
  9. Wreszczcie JSF 2 - http://www.oreillynet.com/onjava/blog/2007/05/jsf_20_is_here_1.html
  10. Języki dynamiczne w srodowisku Java - http://www.oreillynet.com/onjava/blog/2007/06/scripting_language_for_the_jav.html
  11. Szpiegowanie klas - reflection- http://www.onjava.com/pub/a/onjava/2007/03/15/reflections-on-java-reflection doskonały przykład.
  12. Doskonały serwis o Javie - http://www.onjava.com/

środa, lipca 04, 2007

Środa - linki:

  1. W latach 80 najb. gorącym tematem w IT były relacyjne bazy danych. Główne skupisko naukowców zajmujących się bazami relacyjnymi było w University of California w Berkely (Mike Stonebraker, Larry Rowe and Gene Wongm Jim Gray). Ci właśnie naukowcy byli twórcami pierwszej bazy danych Ingres obik Informix, Oracle oraz obiecującej Sybase. Na początku lat 90 firmy MS, Oracle i IBM wyssały z uczelni co lepszych naukowców do swych laboratoriów. Wśród trzech modeli baz (sieciowa, relacyjna i hierarchiczna) skłaniano się do relacyjnej. Skutkiem tego wiele problemów baz relacyjnych i nie tylko (np. efektywny model przetwarzania rozproszonego) zostało nierozwiązanych. Pojawiła się walka między zwycięzcą (model relacyjny) a nową koncepcją - bazą obiektową. Pojawiły się różnorodne techniki mapowania obiektów na model relacyjny. Firmy SAP, Siebel wykorzystały w swych produktach połączony model obiektowo-relacyjny. Powstały mappery dla j. programowania takie jak TopLink czy Hibernate. W standardzie SQL-1999 powstały rozszerzenia ułatwiające budowę modelu o-r ale są przez nikogo zauważane. W aplikacjach Web 2.0 informacja jest najczęściej rozproszona po całym świecie i bez wyraźnej struktury najczęściej prezentowana w formacie XML czy JSON. Najczęściej używaną bazą jest MySQL w postaci modelu shard. Wszystkie reguły relacyjności zostały wyrzucone przez okno, robi się wszystko by zapytania były realizowane efektywnie. (Zdnet - http://m.zdnet.com/index.php?id=80921&site=11)
  2. Uwaga na horyzoncie pojawił się nowy rywal Linuxa - http://www.gnusolaris.org/gswiki - Nexenta OS - bazujący na OpenSolaris. Strona do ściągnięcia obraz dla VMWare - http://www.gnusolaris.org/gswiki/Download-form (uwaga!!! Konto: root/livecd)
  3. Dziwne stanowisko MS, niegdyś kiedy WS były tworzone firma ta była aktywnym uczetsnikiem prac w tym zakresie (była obok IBM jednym z filarów specyfikacji WS-* która znalazła się po dachem grupy OASIS. Walczyła o otwartość standardu wymiany przy pomocy usług sieciowych. Teraz kiedy stwarza się okazja do podniesienia poziomu usług sieciowych poprzez prace w OASIS w zakresie implamentacji SOA (czyli na poziomie oprogramowania aplikacyjnego zamiast jak to było w przypadku WS-* na poziomie usługi sieciowej): SCA (Service Component Architecture) oraz SDA (Service Data Architecture) MS unika uczestnictwa. Powód: firma wbudowała WS w system operacyjny jako część stosu aplikacyjnego, podczas gdy inni budują niezależne aplikacje. Dla małych organizacji takie wbudowanie jest korzystne ale dla dużych korporacji gdzie środowisko jest heterogeniczne stanowi to przeszkodę. http://m.zdnet.com/index.php?id=80886&site=11
  4. MS potrzebuje REST - aplikacje spod zanku Web 2.0 polegają na integracji i powiązaniach ze sobą (integration and mashup). Powiązanie te są zewnętrzne tj. między aplikacjami działającymi jak mashup lub wewnętrzne między róónymi źródłami danych dostawcy usług (np. Google ma wiele wewn. źródeł danych tzw. GData stosuje do komunikacji rozszerzony APP). Stosują REST (Representational State Transition) stosowany przez Google i Yahoo lub APP (Atom Publishing Protocol) de facto standard. Microsoft widząc niedoskonałości APP zamiast go udoskonalić wymyślił nowy standard - Web3S (Web Structured Schema and Searchable)
  5. Cała wrzawa wokół otwartego formatu dokumentów w stanie Mass. polega na tym, że mimo uznania OpenOffice za wpełni otwartego to nie ma on wielu funkcji dla osób niepełnosprawnych. Dlatego dopuszczono stosowanie Office Open XML pod warunkiem zainstalowania konwertera do Open Document Format (ODF). Zdnet - "Microsoft document formats gain Mass. favor"
  6. Niebezpieczeństwa stosowania Web 2.0 - Prawdzie jest równanie: te same zagrożenia jak Web 1.0 + dodatkowe wektory zagrożeń = większa złożoność
  7. Jakie to zagrożenia:
    1. web feeds - kanały informacyjne: użytkownicy sami mogą edytować te strumienie i wstrzykiwać do nich "złe" skrypty. Techniki ataku: cross-site request forgery (CSRF), cross-site scripting (XSS) and distributed denial of service (DDOS). Blacklisting i gorsze od whitelisting gdyż na białej liście są wolne od zagrożeń i dopuszczone strony. Należy również sprawdzić dokładnie dane wejściowe. Często strumienie sa konwertowane do HTML, i strony są przechowywane lokalnie w "local" zone, gdzie powinna być zawartość zaufana. Ataki w tej strefie to XMLHttpRequest i ActiveX.
    2. web services - usługi sieciowe: kradzież sesji (właściwie session ID, który jest przechowywany jako cookie lub w adresie URL.
    3. technologie AJAX - sprawdzenie dokładne danych wejściowych
  8. Testowanie aplikacji przy pomocy środowiska SELENIUM - http://www.openqa.org/selenium-core/usage.html
  9. Ataki na www - http://searchsoftwarequality.techtarget.com/tip/0,289483,sid92_gci1214373,00.html
  10. RStrahl - http://west-wind.com/weblog/posts/104449.aspx
  11. CoDe - http://code-magazine.com/article.aspx?quickid=0001061&page=4
  12. Eclipse - http://www.thescreencast.com/2007/07/tour-around-europe-eclipse-for-java-ee.html
  13. AJAX - http://www.softwaredeveloper.com/features/google-ajax-play-nice-061907/
  14. OpenID - http://www.theserverside.com/tt/articles/article.tss?l=OpenID
  15. AJAX i WS - http://www.theserverside.com/tt/articles/article.tss?l=AjaxJavaWebServices_Chapter
  16. REST vs. SOAP - http://searchwebservices.techtarget.com/tip/0,289483,sid26_gci1227190,00.html?track=NL-461&ad=595564&Offer=WStssret73rest&asrc=EM_NLN_1720960&uid=267959
  17. Podpis XML w .NET - http://www.codeguru.pl/article-702.aspx

poniedziałek, lipca 02, 2007

Nowości w poniedziałek:
  1. Paul Deitel - JSON w poczcie " Deitel Buzz Online Newsletter: JSON (JavaScript Object Notation) Resource Center 29 June"
  2. Jak wygląda porównanie Google z Microsoft - http://no2google.wordpress.com/2007/06/24/life-at-google-the-microsoftie-perspective/
  3. Różnorodne skrypty - http://www.jdhitsolutions.com/scripts
  4. Jak wystartować z XAML - http://msdn2.microsoft.com/en-us/library/ms752299.aspx
  5. Grożna ORCA mimo, że beta - http://redmondmag.com/columns/article.asp?EditorialsID=1813
  6. Linuks powoli nabiera sił - http://redmondmag.com/features/article.asp?editorialsid=742:
    1. Sprawa cała polega na wypracowaniu przez ruch wokół Linuksa tzw. stosu aplikacji (STACK). Dopóki takiego stosu się Linuks nie dorobi dopóty nie będzie traktowany poważnie w kręgach korporacyjnych. Stos stanowi platformę na której mogł wyrosnąć cały ekosystem aplikacji. Drugim ważnym celem jest integracja i współdziałanie (interoperability and integration) a funkcjonalność była na drugim planie.
      1. Myślenie twórców Linuksa polega na rozwiązywaniu problemów informatycznych bez szerszego spojrzenia na całość. Tworzyli wiele nieskoordynowanych projektów.
      2. Pierszwy stos w środowisku Linuks to LAMP.
      3. Innym podejściem są prace Linux Foundation nad projektem LSB (Linux Standard base) tak aby LSB-certyfikawana aplikacja działała na dowolnej LSB-certyfikowanej dystrybucji Liniksa.
      4. W obszarze tworzenia aplikacji jest projekt Eclipse
      5. Ciągle jednak brakuje tego, co najbardziej liczy się w rozwiązaniach korporacyjnych - interoperability. Aplikacje open-source tworzyły tzw. point solution (wyspowe rozwiązania)
      6. Obok LAMP powstaje stos WAMP
      7. Firma SpikeSource - jako pierwsza dostrzegła potrzebę wypracowania takiego stosu aplikacyjnego. W maju doszło do porozumienia m. nią a MS w sprawie kooperacji. Bill Hilf - ogłosił, że w/w firma będzie certyfikowała swoje rozwiązania na platformie Windows.
    1. Przykład takiego stosu:
    2. Open Source Stacks on Windows
      Enterprise open source isn't just for GNU/Linux anymore. The following selection of applications also runs on Windows.

      Web Server

      Database

      Middleware

      Business Intelligence

      Enterprise Content Management

      CRM

      ERP

      Porównanie stosów:

Gillmor’s Internet plate tectonics by ZDNet's Dan Farber -- Steve Gillmor riffs on my post about Yahoo’s lack of a social networking hub, where I state: “Yahoo is about making connections, but right now its more of loose federation of Web applications and services–many spokes without a strong hub to hold together a social Web. Yahoo 360 has been a failure as a social [...]

niedziela, lipca 01, 2007

Tworzenie aplikacji przy pomocy Eclipse. Mnóstwo opcji wprost poraża. Ale z tego początkowego chaosu wyłania się taki obraz, należy:
  1. Ściągnąć Eclipse IDE for Java EE Developers - http://www.eclipse.org/downloads/moreinfo/jee.php# (zawiera narzędzia do obsługi stron www, oraz dodać jakiś serwer aplikacyjny
  2. Jakiś serwer aplikacyjny, są dostępne takie:
    1. Apache Tomcat
    2. Websphere - http://www.ibm.com/websphere
    3. JBoss - http://sourceforge.net/projects/jboss/
    4. JOnAS -http://wiki.jonas.objectweb.org/xwiki/bin/view/Main/WebHome
    5. Oracle OC4J - http://www.oracle.com/technology/tech/java/oc4j/index.html
    6. Inne poprzez wizarda - opcja New server
  3. Zasoby do JBoss: This is the jboss-4.0.4.GA release for the Java EE? 1.4 codebase. For information on the APIs that make up Java EE 1.4, see Java EE v1.4 Documentation.
    For a comprehensive tutorial on Java EE 1.4, see The Java EE? 1.4 Tutorial. A jboss-4.0.x getting started guide that is based on contents from the tutorial can be found in JBoss Application Server Documentation Library
  4. Inne zasoby javy:
    1. Tworzenie + zaosby nt. nowości i WS: http://java.net/
    2. JavaPedia - http://wiki.java.net/bin/view/Javapedia
    3. JavaScripting - inne języki w implementacji Java:
      1. Rhino - http://developer.mozilla.org/en/docs/Rhino_JavaScript_Compiler
    4. WebStart - http://wiki.java.net/bin/view/Javapedia/JNLP
    5. Jak to naprawdę skorzystać z JNLP - http://java.sun.com/developer/technicalArticles/Programming/jnlp/
    6. Subskrybcja kanałów IBM - http://www.ibm.com/developerworks/library/wa-gizmos/#custom
    7. Jak pracować z OC4J - http://www.eclipse.org/webtools/community/tutorials/OracleServerAdapter/OracleServerAdapter.html
    8. Moduł do pobierania z HTTP - http://www.oracle.com/technology/tech/java/oc4j/1013/how_to/how-to-httpclient/doc/how-to-httpclient.html
    9. http://www.ibm.com/developerworks/java/library/os-jws/
    10. http://www.eclipse.org/webtools/community/tutorials/OracleServerAdapter/OracleServerAdapter.html
    11. http://www.onlamp.com/pub/a/onlamp/2007/06/28/the-power-of-google-gears-part-1.html
    12. http://spring.javabeat.net/articles/2007/06/spring-mvc-web-framework-introduction/4
  5. Artykuł IBM (stary) o servletach:
    1. Jedną z wbudowanych metod jest init. Może ona służyć do "ładowania domyslnych danych lub połączeń z bazą"
    2. Servlet jest wielowątkowy. Dla każdego żądania tworzy własny jego wątek. Patrz rys. niżej.
    3. Uwaga na ważny szczegół: żądania request/response są przetwarzane niezależnie w każdej instancji servleta.
    4. "Ręczne" uruchamianie servletów jest proste: należy sobie skompilować .java do .class i następnie "wrzucić" do katalogi servlet.