Niezalogowany [ logowanie ]
Subskrybuj kanał ATOM Kanał ATOM

Autor wpisu: stormfly, dodany: 30.06.2008 12:21, tagi: php

Niedawno na forum PiO zdeklarowałem się, że napiszę skrypt, które podaje liczbę stron i linków wybranych stron w wyszukiwarkach. Sprawa prosta, ale trzeba było znaleźć trochę czasu. Drugi skrypt, który był w planach to sprawdzanie czy na wybranej stronie istnieje link do naszej strony....

Autor wpisu: Athlan, dodany: 25.06.2008 11:18, tagi: internet

Wszyscy cieszą się z Firefoxa 3, a deweloperzy ciągną się za włosy… dlaczego plugin Firebug nie jest kompatybilny z trójką. FF3 nie znajduje aktualizacji dla firebuga, a ten znajduje się na oficjalnej stronie dodatków. Co więcej… nie ma jej nawet na oficjalnej stronie wtyczki (beta? jakoś 1.1 beta jest, dlaczego nie ma 1.2). Dziwne. Dla tych, którzy jeszcze nie mają:

https://addons.mozilla.org/en-US/firefox/addon/1843

Dodatek oznaczony numerkiem 1.2.0b3

Stan na dziś: 6 milionów pobrań dodatków. Patrzcie ilu mamy deweloperów :)

Autor wpisu: nospor, dodany: 23.06.2008 19:53, tagi: php

Często piszemy wyszukiwarki. Jaka ich rola? Banalnie prosta - na podstawie zadanych kryteriów znaleźć żądane informacje. W tym celu tworzymy zapytanie, które zawiera nasze kryteria wyszukiwania. Zadanie wydaje się proste, jednak wielu początkujących programistów ma z tym problem. Bo o ile potrafią napisać zapytanie, które składa się ze stałej liczby warunków, o tyle z zapytaniem ze zmienną liczbą warunków, uzależnioną od wpisanych wartości w formularzu, mają już problem. W artykule tym postaram się Wam pomóc w oswojeniu tego zagadnienia.

Autor wpisu: Splatch, dodany: 22.06.2008 20:23, tagi:

Jakiś czas temu, jeszcze podczas pracy w poprzedniej firmie przypadło mi zadanie podpięcia się pod magistralę usług opartą o Apache Service Mix (SMX). Był to wówczas dla mnie temat zupełnie nowy, ba nawet nie wiedziałem z czym to się je. :) Koniec końców jednak podpięcie pod ESB (Enterprises Service Bus) nie było w ogóle trudne. Po jakimś czasie i drobnych przetasowaniach na płaszczyźnie zawodowej zająłem się SMX-em nie jako klient magistrali a osoba implementująca usługi na szynie a ten wpis jest drobną przeróbką prezentacji, którą przygotowałem w pracy.

Czym jest ESB

Jednoznaczne określenie terminu ESB nie jest łatwe, ponieważ wokół tego tematu rozpętana została burza marketingowa. Jedni uważają je za oś SOA (Service Oriented Architecture) inni jako zło konieczne w dużych instytucjach.

Dlatego pomijając teorię przejdźmy do najistotniejszych cech, jakie oferuje ESB, niezależnie od producenta oraz osoby definiującej pojęcie. Sam nie chciałbym wdawać się w dyskusję na temat postrzegania i ESB i SOA.

Źródło - CodePlex

Na załączonym wyżej obrazku widać typową strukturę logiczną w oparciu o ESB. Z lewej strony mamy komercyjne rozwiązanie – MQ Series firmy IBM, dalej idąc dołem, widzimy bazę danych, serwer pocztowy a na końcu mainframe. U góry natomiast pojawiają się klienci.

Ciąg dalszy

Na bazie tego obrazku można powiedzieć co nieco o tym, czym owa niebieska rurka symbolizująca ESB jest:

  • Jest to z pewnością centralny rejestr usług firmy, dzięki któremu nie jest konieczne wiązanie aplikacji między sobą. Wiąże się je tylko i wyłącznie z jednym elementem – z magistralą.
  • Kolejny ważny punkt, to most pomiędzy protokołami. W dobie, gdy wszyscy żyją już Web Services nie można zapomnieć o innych sposobach komunikacji – poczynając od poczciwej Corby po kolejki JMS czy też odczyt zasobów z FTP.
  • Transformacja komunikatów to opcjonalna czynność, której nie widać na wyżej wymienionym obrazku. Jest ona wykonywana pod maską, wewnątrz magistrali, w zależności od potrzeb. W chwili gdy mamy komunikaty z systemu A do systemu B możemy wszystko sprowadzić do jednego uniwersalnego API danych.
  • Inteligentny router informacji. Większość magistral ma coś wspólnego z pojęciem EIP, czyli Enterprise Integration Patterns. Jednym z tych wzorców jest Content Based Router, to znaczy w zależności od kształtu, zawartości komunikatu, nagłówka, fragmentu, czegokolwiek możemy odbijać komunikat w różnych kierunkach. Dalej z wzorców można wymienić Message Filter, Recipient List, Routing Slip, Wire Tap, Splitter, Resequencer itd.
  • Integrator procesów biznesowych (bardziej marketingowo) – po pierwsze odwzorowanie usług magistrali do czynności biznesowych w organizacji a po drugie wsparcie dla procesorów reguł biznesowych (WS-BPEL).

Service Mix jako ESB

Mając zestaw wyżej wymienionych cech możemy przejść do omówienia projektu Apache Service Mix. Może na początku kilka słów o tym, czym jest JBI, ponieważ pojawia się sam skrót, ale nie ma jego omówienia. Otóż, JBI w rozwinięciu oznacza Java Business Integration. Jest to standard przyjęty w ramach Java Community Process w celu określenia norm budowania rozwiązań SOA (znów buzzworld). Pomijając politykę wielkich korporacji oraz marketing przejdźmy do elementów, które standard ten określa: Źródło: Java.net Źródło Open ESB Starter Kit

  • Typy komponentów:
    1. Service Engine (SE) – backend do obsługi zapytań.
    2. Binding Components (BC) – frontend, do nasłuchiwania w danym standardzie.
    3. Shared Libraries (SL) – kod współdzielony przez w/w komponenty.
    4. Service Assembly (SA) – zbiór usług rozumianych jako jedność przez magistralę (zwykle para BC+SE).
  • Normalized Message Router – jest to serce rozwiązania opartego o JBI, ponieważ w nim są transportowane komunikaty. To on zapewnia przepływ informacji z komponentów bindujących do silników.
  • Message Exchange Patterns – w oparciu o definicję dla SOAP JBI przewiduje następujące typy komunikatów:
    1. In-Only – tylko wejście, usługa nie zwraca żadnej odpowiedzi
    2. Rebust In-Only – zwrócony zostanie status po obsłudze zapytania bądź wyjątek.
    3. In-Out – standardowa obsługa wejście-wyjście.
    4. In Optional-Out – wejście z niewiążącą (nieobowiązkową) odpowiedzią.

Dostępnych jest kilka implementacji JBI:

Service Mix od środka

Wewnątrz Service Mix jest spięciem kilku potężnych projektów, rozwijanych od dłuższego czasu, które zdobyły już renomę i popularność. Między innymi można wyróżnić:

  • Pierwszy z tych projektów to Spring Framework, rozwijany od bodajże 2000 roku, z powodzeniem rywalizujący z architekturami opartymi o EJB. Spring jest nie tylko mechanizmem konfiguracyjnym ale również zbiorem bardzo dobrych komponentów umożliwiających szereg operacji (bazy danych, JMS, przetwarzanie wsadowe, Web Services etc).
  • Drugi, bardzo ważny projekt to Active MQ. Największa i najpopularniejsza otwarta implementacja standardu JMS. Jest on używany wewnątrz Service Mix-a jako transporter komunikatów w Normalized Message Router jak i do obsługi końcówek JMS. - Wymieniony nieco niżej pod-projekt Active MQ to Camel. Jest to szkielet przeznaczony do tworzenia reguł routingu. Wspiera różnorakie transporty (HTTP, JMS, JBI, MS MQ itp.).
  • XBean jest fragmentem projektu Apache Geronimo (serwer aplikacyjny ze stajni Apache) przeznaczonym do tworzenia konfiguracji i zarządzania komponentami. Jest zbudowany w oparciu o Springa.
  • Apache CXF jest stosunkowo nowym projektem, który jest używany poprzez Service Mix w celu obsługi zapytań SOAP (chociaż możliwe jest użycie innego komponentu).
  • Apache ODE jest silnikiem reguł biznesowych w oparciu o WS-BPEL.
  • JBoss Drools jest kolejnym procesorem reguł biznesowych. Może być użyty do routingu. Jest dostępny plugin pozwalający na łatwą pracę z tą technologią.

Możliwości Service Mix

Wyżej wymienione projekty są używane w Service Mix w celu uzyskania typowych funkcjonalności ESB:

Czytaj dalej tutaj (rozwija treść wpisu)
Czytaj dalej na blogu autora...

Autor wpisu: Athlan, dodany: 20.06.2008 07:53, tagi: internet, php.pl

Na forum.php.pl zmiana:

Forum Frameworki, które wcześniej znajdowało się w Gotowych rozwiązaniach, zostało przeniesione na forum PHP. Jest to uzasadnione jego rosnącą popularnością i naszą (ekipy php.pl) chęcią zwrócenia uwagi na ten aspekt wiedzy współczesnego programisty.

Możliwe, że niedługo zostanie podpięty mod, który będzie prosił o dodanie tagów (prefixów) do tematu przy zakładaniu wątku, w celu uporządkowania forum. Stworzymy tagi takie jak: [Zend Framework], [Symfony], [Kohana], [CakePHP], [Agavi], itp. Nieistniejące na liście można dopisać: [nazwatagu]. Bardzo użyteczna modyfikacja stworzona przez webdice zaimplementowana jakiś czas temu na forum Przedszkole.

Autor wpisu: stormfly, dodany: 15.06.2008 12:24, tagi: php

Poza zwykłymi użytkownikami, którzy odwiedzają nasze strony istnieją jeszcze roboty, które w większości przypadków analizują naszą stronę pod względem utworzenia danych do wyszukiwarek. Czasem chcemy wiedzieć czy wchodząca osoba to żywa istota czy też jakiś automat. Przedstawię w...

Autor wpisu: Athlan, dodany: 14.06.2008 00:50, tagi: framework, php

Dziś wydana została nowa wersja Vframe oznaczona numerkiem 2.3.1. Większe zmiany:

  • Możliwość tworzenia grup routingów za pomocą wyrażeń regularnych (grupowanie regułek, aby przyspieszyć działanie).
  • Automatyczne wczytywanie konfiguracji Vframe_Router_Advenced::PatternsBuild().
  • Wydzielenie głębi konfiguracyjnej dla kontrolerów (kontroler News_Admin_Vcontroller ma plik: /Configuration/Controllers/Admin/News.php).
  • Zaimplementowanie Cache_Engine (wzorzec fabryki) oraz silników: File, Memcache, APC.
  • Zaimplementowanie Image_Engine (wzorzec fabryki), silnik GD.
  • Zaimplementowanie Db_Layer (wzorzec fabryki), silniki MySQL, SQLite.
  • Zniesiona została stała V_APP oraz V_APP_REAL.
  • Dodanie nowego komponentu Vframe_Mail_Inbox (pobieranie poczty) oraz silnika Vframe_Mail_Inbox_Engine_Imap.
  • Zabezpieczenie unikalnego klucza sesji frameworka, dodanie V_APP_SESSION_HASH.
  • Zmiana struktury Exceptions oraz Interfaces - teraz klasy znajdują się w głównym pliku komponentu, nie posiadają wydzielonych plików.
  • Dodanie pluginu Vframe_Controller_Front_Plugin_Gzip.

Konieczne zmiany w aplikacji:

  • Pliki konfiguracyjne modelu Db_MySQL na Db_Layer_MySQL, analogicznie dla innych baz.

Zalecane zmiany:

  • Wszelkie define() zamienić na Vframe::_() (argumenty analogiczne) oraz załadować główny plik konfiguracyjny po frameworku (aby uzyskać funkcję statyczną _() ).
  • Usunąć V_APP_REAL.
  • Aby użyć pluginu Gzip: $oFrontController->Plugin(new Vframe_Controller_Front_Plugin_Gzip(6)); gdzie 6 to stopień kompresji, jeżeli null, wówczas domyślnie 6.

Linki:

Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.