################################################################# # # # # # Ten Rok w DotGNU # # # # Nr 1 # # # # 2001 -- Rok, w którym narodziło się DotGNU # # # # # # Rok temu nic nie było, # # a teraz jest coś. # # # # Rhys Weatherley # # # ################################################################# Ostatnio na liście mailingowej deweloperów DotGNU padła propozycja, żeby "DotGNU" interpretować jako rekursywny akronim (taki jak GNU stanowi dla "GNU's Not Unix") .. więc może będzie tak, że "DotGNU" naprawdę znaczy coś jak "DotGNU over the GNU Networking Universe". Jak by jednak nie było, budujemy coś, co może być zwane "systemem operacyjnym dla internetu" - zbiór narzędzi pozwalający częściom oprogramowania współpracować z innymi poprzez internet. Generalna strona projektu: http://www.dotgnu.org Spis treści =========== Rozdział A: DotGNU - Odwalanie za Ciebie webowej roboty! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Departament "Nowego i Fajnego Oprogramowania" ma zamiar przycią- gnąć twoją uwagę do tych artykułów: 1. DotGNU Portable.NET (razem z jego kompilatorem C#, runtime i powiązanymi narzędziami deweloperskimi) napisany przez wiodącego dewelopera Portable.NET Rhys Weatherley 2. phpGroupWare (zbiór aplikacji do pracy grupowej, mogących być używanymi poprzez dowolną przeglądarkę jak również przez inne programy via XML-RPC). napisany przez wiodącego dewelopera phpGroupWare Dan Kuykendall Rozdział B: DotGNU - Utrzymując Cię od zagmatwania się w Sieci! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Od początku byliśmy zaniepokojeni faktem, że prawdopodobną inten- cją Microsoftu, jeśli chodzi o platformę .NET, jest usidlenie i złapanie deweloperów. Nie ma wątpliwości, że jest to pewną właści- wością firm produkujących oprogramowanie chcących rozszerzyć ich monopol systemów operacyjnych dla desktopów o Autentykację / Auto- ryzację / Identyfikację Wirtualną systemów w internecie. Jednym z głównych celów projektu DotGNU jest chronić przed tym i, generalnie, dostarczać narzędzia dla serwisów web nie "zamkniętych przez dos- tawcę" w jakimkolwiek tych słów znaczeniu. 3. Dyskusja mailowa nad polityką autentykacji i IDsec pomiędzy Richardem Stallman, Davidem Sugar i Tonym Stanco DotGNU jest sponsorowane przez FreeDevelopers (założony przez Tonego Stanco) i przez projekt GNU (założony i prowadzony przez Richarda Stallman). David Sugar jest przewodniczącym Komitetu Sterującego DotGNU. 4. Pytania i Odpowiedzi na temat "Serwisów Web" napisany przez Norberta Bollow (członek Komitetu Sterującego i ko-założyciel <> projektu DotGNU) Rozdział C: DotGNU -- Wielkie Przedstawienie ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 5. Źródła projektu DotGNU napsiany przez Barry Fitzgerald (członek Komietetu Sterującego i ko-założyciel projektu DotGNU) 6. Przegląd DotGNU napisany przez przewodniczącego Komitetu Sterującego DotGNU Davida Sugar 7. Przepis na DotGNU napisany przez członka Komitetu Sterującego DotGNU Arun M. Rozdział D: DotGNU -- Wspólnota ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Ten rozdział zawiera informacje na temat DotGNU od różnych wnoszą- cych w niego udział ludzi, wyjaśnienia w jaki sposób opiekują się projektem DotGNU. ################################################################# # # # Rozdział A: DotGNU -- Odwalanie za Ciebie webowej roboty! # # # # Artykuł 1: DotGNU Portable.NET (razem z jego kompilatorem # # C#, runtime i powiązanymi narzędziami # # deweloperskimi) # # # # napisany przez wiodącego dewelopera # # Portable.NET Rhysa Weatherley # # # ################################################################# Projekt Postable.NET rozpoczął się w styczniu 2001, a jego celem było zbudowanie silnika uruchomieniowego (runtime engine), kom- pilatora C# i biblioteki systemowej C#. We wczesnych początkach zrealizowałem ten cel budując infrastruk- turę dla runtime engine zgodną z kodem potrzebnym dla kompilatora C#. W szczególności, procedury czytające i zapisujące metadane w runtime engine, które mogą również być używane przez kompilator jako wewnętrzna reprezentacja klas. Ot tego momentu szybko pojawiły się asembler, disasembler i inne narzędzia deweloperskie. W tym momencie runtime engine, kompilator i biblioteka C# były ciągle w formie raczej embrionalnej. Biblio- teka C# została podzielona na drzewo "pnet" z drzewa "pnetlib", tak, by mogłabyć użyta przez inne projekty. Gdzieś koło końca kwietnia stało się jasne, że tworzenie kompila- tora C# staje się problematyczne. Ten poziom złożenia był tak du- ży, że błędy w kodzie wywoływały dreszcze. Użyłem sposobów podob- nych to tych z poprzednich projektów kompilatorów ale również miałem problemy ze złożonością. Mój pomysł był technicznie po- prawny, ale zwykle ilość elementów pogrążała kod. Więc wróciłem do tablicy by przemyśleć temat i dokonać kilku odkryć. Wynikiem było narzędzie "treecc", które daje zorientowane na wygląd podejście do budowania kompilatorów. Złożoność użyta wcześniej, powodująca tak wiele problemów stała się teraz prosta do obsłużenia. Kompilator C# został przepisany i udoskonalony na początku lipca. Odkryłem również, że szkielet treecc można łątwo użyć z innymi niż C# językami i kodem bajtowym o formacie różnym od IL. Obsługa kom- pilacji C# do JVM i Java do IL powinna pojawić się na początku 2002 roku. W sierpniu Portable.NET i DotGNU połączyły się. Największy postęp nastąpił w infrastrukturze rdzenia, bibliotece C# pnetlib i w kom- pilatorze C#. Ale runtime engine ciągle wlókł się gdzieś za nimi. Natura polimorficzna zestawu instrukcji uczyniła bardzo trudnym zbudowanie efektywnego runtime engine. Rozpocząłem pracę nad innym projektem by wynaleźć nowy engine. Zakończyło się to "Skonwertowaną Maszyną Wirtualną" ("Converted Virtual Machine", CVM) we wrześniu 2001. Był to zupełnie nowy pomysł na interpretety kodu bajtowego. Zamiast interpretować bezpośrednio skomplikowane instrukcje IL, kod bajtowy jest kon- wertowany na inny zestaw instrukcji, który może zostać sprawnie zinterpretowany. Jednym z głównych korzyści nowego pomysłu na engine jest to, że można bardzo łatwo w przyszłości dodać obsługę JIT. Sam CVM jest istotnie "JIT kodu bajtowego" ("bytecode JIT"). Najcięższa robo- ta jest już wykonana, tak więc napisanie natywnego JIT jest teraz naprawdę prostym zadaniem. Na koniec roku 2001 Portable.NET osiągnęło taki stan, że mogło uruchomić proste przykładowe programy, a jednym z nieco bardziej skomplikowanych jest gra video "Curse of Frogger". Największym obszarem do zrobienia na początku 2002 roku jest za- kończenie kompilatora C# i biblioteki C# i rozpoczęcie prac nad x86 JIT. W mojej prywatnej perspektywie widzę Portable.NET jako interesu- jące ze względu na poszukiwanie technik implementacji języków, które pojawiają się podczas moich prac nad projektem. Mam nadzie- ję "wykręcić" jakieś inne narzędzia, takie jak treecc, które będą przydatne nie tylko dla Portable.NET ale także dla innych projek- tów Free Software. ################################################################# # # # Rozdział A: DotGNU -- Odwalanie za Ciebie webowej roboty! # # # # Artykuł 2: phpGroupWare (zbiór aplikacji do pracy grupo- # # wej mogących być używanymi przez dowolną prze- # # glądarkę jak również przez inne programy # # via XML-RPC). # # # # napisany przez wiodącego dewelopera # # phpGroupWare Dana Kuykendall # # # ################################################################# phpGroupWare jest opartym na web i samej sieci serwisem aplikacji pracy grupowej. Zawiera wszystkie standardowe aplikacje PIM takie jak email, kalendarz, książka adresowa, lista rzeczy do zrobienia i notatki. Ale jest odpowiednio mocny, dobrze zdefiniowane i łat- we do użycia API pozwala na pełną integrację z innymi programami. Wszystkie aplikacje są instalowane opcjonalnie, można więc odpo- wiednio wybrać jedynie te aplikacje, które są potrzebne użytkow- nikom. W normalnym trybie użytkownicy wolą wybrać budzący strach interfejs sieciowy, ponieważ wszyscy tkwimy w standardzie HTML na tyle, na ile to możliwe. Interfejs web jest najlepiej obsługiwanym interfejsem dla aplikacji phpGroupWare, ale nie jedynym. Przy uży- ciu prostego protokołu XML-RPC, który jest obsługiwany przez phpGroupWare, deweloperzy i użytkownicy mogą mieć dostęp do apli- kacji, ich funkcjonalności i danych z innych programów. Aplikacje te muszą być co prawda napisane w języku obsługującym XML-RPC, ale zdaję sobie z tego sprawę. To czyni phpGroupWare "serwisem web", a jest tak ponieważ oferuje on funkcjonalność jako serwis dla in- nych aplikacji i daje deweloperom i uzytkownikom moc i elastyczność. Serwisy web nie rozwiązują wszystkich problemów, ale otwierają duże możliwości dla niezależności języka i platformy, jak ułatwienie przenoszenia większej ilości dzielonego kogu i funkcjonalności wię- kszej niż kiedykolwiek. Na razie możliwości te są jedynie widoczne, ale *zmienią się* od czasu, jak aplikacje zostaną rozwinięte. Łącząc siły razem z DotGNU będziemy w stanie ponieść naszą wspólną wiedzę i doświadczenia w rozwijaniu niezłych aplikacji i serwisów dla użytkowników. DotGNU jest skupione wokół na innych rzeczach, na serwisach autentykacji i rozwiązaniach kodu bajtowego niezależ- nego od platformy do czasu kiedy grupa rozwijających phpGroupWare skupia się na rozwiązaniach bazujących na Groupware. Gdy te dwie rzeczy zaczną razem działać ich technologie staną się użyteczne. Jednak dla grupy rozwijających phpGroupware ważniejszą rzeczą jest użyczyć doświadczeń związanych z uniwersalnymi ustawieniami pre- ferencji serwisów, co nastąpi po próbach z serwisami autentykacji. phpGroupWare uczyni nagle użytecznym standardy DotGNU jak tylko wyjdą i staną się wielkim polem testowym DotGNU a sytuacja ta da phpGroupWare szansę wpłynięcia na ważne standardy. ################################################################# # # # Rozdz.B: DotGNU - Utrzymując Cię od zagmatwania się w sieci! # # # # Artykuł 3: Dyskusja majlowa nad polityką autentykacji i # # IDsec pomiędzy Richardem Stallman, Davidem Sugar # # i Tonym Stanco # # # # [DotGNU jest sponsorowane przez FreeDevelopers # # założony przez Tonego Stanco) i przez projekt # # GNU (założony i prowadzony przez Richard Stallman# # David Sugar jest przewodniczącym Komitetu Steru- # # jącego DotGNU] # # # ################################################################# David Sugar napisał: ~~~~~~~~~~~~~~~~~~~~ Serwisy identyfikacji pozwalają luudziom wędrować od jednego do drugiego dostawcy treści internetowych bez konieczności ponowne- go wypełniania formularzy lub dostarczania oddzielnych informacji jak informacji o kartach kredytowych itd. Richard Stallman napisał: ~~~~~~~~~~~~~~~~~~~~~~~~~ Czy to faktycznie da impuls razem wszystkim stronom do zbierania informacji o tobie? Jest to jedna z rzeczy, na którą ludzie zwra- cają uwagę jako na zamach na ich prywatność. Pomyśl, na przykład, o podwójnym kliknięciu. David Sugar napisał: ~~~~~~~~~~~~~~~~~~~~ Jeśli będzie zrobione niepoprawnie to tak. Kluczowym pytaniem jest jak zabezpieczyć prywatność i dać wygodę ludziom, którzy nieco inaczej rozumieją i poddają się wygodzie. W metodzie IDsec przynaj- mniej na początku nie ma puktu centralnej autentykacji mającego wszystkie dane użytkowników; raczej dowolna ilość dostawców może je mieć, wliczając w to twoją własną stację roboczą, jako selek- tywną i kontrolowaną podstawę. Jak by jednak nie patrzył, nie chroni to przed możliwością zbierania danych użytkowników w sposób, w jaki to przedstwaiwasz, tak jak dzieje się to dzisiaj. Jeśli ktoś idzie od strony A do strony B i pozwala na dzielenie, powiedzmy, numeru karty kredytowej obydwu stronom, oczywiście strony A i B mogą utworzyć swoją wspólną bazę ukierunkowaną na karty kredytowe i identyfikować ludzi w ten sposób. Dane innego rodzaju mogą być również zbierane by dopasowywać użyt- kowników między stronami. To, co daje IDsec, i to co faktycznie chcielibyśmy mieć w DotGNU, to brak jednej wspólnej bazy wszystkich użytkowników i dlatego nie można tworzyć jednej bazy o wspólnym kluczu dla wszystkich, bazy, którą można by sprzedać bezpośrednio innym komercyjnym firmom. Od czasu, kiedy używa się oddzielnych i unikatowych klu- czy sesji, jeśli nie wspól To, co daje nam IDsec i to co faktycznie chcielibyśmy mieć w DotGNU to brak jednego miejsca, przedsiębiorstwa, posiadającego w przyszłości główną bazę danych o wszystkoch użytkownikach i brak możliwości stworzenia jednej jedynej takiej bazy, którą można by sprzedać bezpośrednio innym komercyjnym przedsięwzięciom. Dopóki dzieli się i używa unikatowych kluczy sesji dopóty wspólne i unikatowe dane (jak na przykład # karty kredytowej czy ssn) mogą być dzielone i nie ma tu prostej drogi pozwalającej określić, że użytkownik "X" odwiedzający stronę "A" jest również użytkownikiem "Y" odwiedzającym stronę "B". W przypadku IDsec użytkownik sam kontroluje jakie dane są dzielone i z kim, i używając tego poprawnie może chronić powiązane dane od dzielenia się nimi jeśli ktoś używa ich po prostu w identyfikacji sesji, więc gdy wchodzę na stronę "A" sam po prostu decyduję, że jestem tym samym co "X" ostatnim ra- zem i nie dzielę się wszystkimi danymi i mam tę wygodę nie logowania się i podpisywania jednym globalnym podpisem. Używając tego sposobu nie mówi się nikomu, że "A" pokazany na stronei "X" to "B" ze strony "Y". Każdy może również trzymać u siebie wiele profili, w tym anonimowe, i wybierać te, które identyfikują go przy przeglądaniu tej a nie innej strony. Oczywiście nie chroni to użytkowników dzielących dane korelu- jące, ale nic w dzisiejszym świece, poza ręcznym wprowadzaniem danych, nie ochroni użytkowników :). IDsec oczywiście nie jest idealne i może wymagać troszkę pomyślunku przy używaniu go, ale i tak jest to o wiele lepsze rozwiązanie niż istniejące dzisiaj na rynku. Są rzeczy, które życzylibyśmy sobie w IDsec zmienić by poprawić i zwiększyć prywatność, ale widać, że jest to co spowodowane byciem na początku projektu. Tony Stanco napisał: ~~~~~~~~~~~~~~~~~~~~ Tak. IDsec wygląda na dobrą drogę. Pytanie jest jednak nie czy wszystkie dane powinniśmy zbierać, ale przez kogo. Powinienem mieć wszystkie in- formacje o mnie na moim komputerze. Inni powinni mieć tylko część. I myślę, że IDsec pozwala na to. Naprawdę dla tych, którzy znają trochę accounting, the system should be like double entry accounting. Ja mam wszystkie informacje, ponieważ ja daję je innym, ale są po drugiej stronie transakcji więc dzielę się częścią z nimi. Jest to ważne, ponieważ ja mam wszystkie moje informacje, ale waż- niejsze jest to, że mogę SPRAWDZIĆ każdego posiadacza informacji o mnie. Jeśli nie mam informacji na swoim komputerze, nie ma sposobu by dowiedzieć się co inni mają na mój temat, ani nie ma możliwości poprawienia błędu, który popełnili. David Sugar napisał: ~~~~~~~~~~~~~~~~~~~~ IDsec na pewno to dopuszcza, gdzy masz komplet informacji na swoim komputerze i inni mają niekompletne ale faktycznie poprawne infor- macje, według twojego pozwolenia na dzielenie się nimi i które ty kontrolujesz, ich odświeżanie i poprawianie. Jest to oryginalny pomysł, jakkolwiek otworzył drogę tworzenia dostawców identyfikacji internetowej jako innych; tak więc indywidualności mogą być jako ci "inni", co jest również ubocznym efektem ich oryginalnego wzoru :). Tak jak powiedziałem, IDsec nie jest idealny, ale jest blisko tego, co mogło być zrobione, co było naszą wizją. Jako darmowe oprogramowanie mamy możliwość wpływać na jego lepsze aspekty. Jednym ze sposobów mogłoby być uczynić łatwym i bezpolesnym dla każdego użytkownika usta- wienie jego własnego serwisu identyfikującego. To zostało powiedziane, nie jestem w zasadzie przeciwny obecności "innych", którzy chcą zbie- rać użytkowników i oferować serwisy identyfikacyjne tak długo, dopóki każdy może komercyjnie oferować takie serwisy, spółki mogą to dostarczać informacje o swoich pracownikach poprzez "innych", jeśli tak wybiorą, ale ostatecznym wyborem jest posiadanie mojego własnego serwisu identy- fikującego. Może to spowodować, że komercyjni dostarczyciele serwisów identyfikują- cych dadzą podniecenie komercyjnym interesom i zaadoptują to ponad wszystko tak, że nie będą mieli nad tym kontroli. Tak jak bank czy inne instytucje fonansowe mogą bezpiecznie dostarczać identyfikację ich obecnym klientom, tak oddanie tego w ręce "innych" jest zmuszaniem do oddania im punktu sprzedaży. Patrząc na to z tej strony, widzę IDsec jako potencjalny interes, ponieważ można to ustawić w jednym sze- regu komercyjnych interesów z naszym etycznym. Tony Stanco napisał: ~~~~~~~~~~~~~~~~~~~ Tak. Zgoda. Myślę, że większość ludzi wybiera jednak komercyjnych dostawcół, którzy powinni robić to za darmo. I prawda, banki są naturalnymi kandydatami. Są już w tej chwili centrami danych; są to po prostu dane finansowe. Ale jest to także powód tracenia kontroli. MS na- zwał ich dinozaurami kilka lat temu (co jest prawdą), a oni obawia- ją się teraz utraty kontroli nad danymi i chronią ich jak się da. (Jednym z powodów e-bankingu jest zbyt wolne poruszanie się). Ale w pewnym momencie mogą dołączyć do systemu i być nasi. Ciągle mówię, że mamy pojemności lokalnej kopii na naszych osobis- tych komputerach, nawet jeśli ludzie kierują się ku komercyjnym dostawcom, w innym przypadku byłby to powód do zamknięcia. Więc dopóki komercyjni dostawcy będą żywymi składami, każdy pownien mieć kopię na własnym komputerze, by chronić/sprawdzać dane i umożli- wić łatwą zmianę dostawcy. ################################################################# # # # Roz. B: DotGNU - Urzymując Cię od zagmatwania się w Sieci! # # # # Artykuł 4: Pytania i odpowiedzi na temat "Serwisów Web" # # # # napisany przez Norberta Bollow # # (ko-założyciel projektu DotGNU razem z # # Enzo-Adrian Reyes i Barrym Fitzgerald) # # # ################################################################# Do czego są dobre serwisy web? Gdy program jest zaimplemetowany jako serwis web, jego funkcjonal- ność może być używana przez inne programy, które mogą być zaimple- mentowane w dowolnym języku programowania i które mogą działać na dowolnym komputerze podłączonym do internetu. Czyni to możliwym, dla przykładu, wielu użytkowników w różnych częściach świata może oddziaływać na ten sam zestaw danych. Jak zdefiniujesz "serwisy web"? "Serwisy web" są serwisami oferowanymi w sieci (bez względu na technologię użytą do ich dostarczenia). W celu rozwinięcia tego w aktualną definicję, konieczne są te dodatkowe wyjaśnienia: a) Jako "serwis" rozumiemy nie tylko samą funkcjonalność nam dostarczoną, ale także powinnismy mieć na myśli pewnien opis tej funkcjonalności, mianowicie jak serwisu uzywać i jak jest dostarczany. b) Mówiąc, że "serwis jest oferowany w sieci" mamy na myśli fakt, że jest on oferowany w internecie poprzez standardowe protokoły, np. otwarte protokoły, szeroko publikowane i wolno dostępne dla każdego do zaimplementowania. Jest to czasem użyteczne przy rozróżnieniu pomiędzy "składnikami serwisów web", o których myślimy jako o takich używanych w innych serwisach web, a "aplikacjami serwisów web", które mogą być używane bardziej bezpośrednio przez człowieka. Obydwa "składniki serwisów web" i "aplikacje serwisów web" są "serwisami web" zdefiniowanymi wyżej. A co z innymi definicjami "serwisów web"? Próby defnicji podjęte przez Stencil Group zostały omówione na liście majlingowej deweloperów DotGNU" w następujących wiadomościach: * http://archive.dotgnu.org/pipermail/developers/2001-November/001252.html * http://archive.dotgnu.org/pipermail/developers/2001-November/001253.html * http://archive.dotgnu.org/pipermail/developers/2001-November/001254.html * http://archive.dotgnu.org/pipermail/developers/2001-November/001255.html Czy serwisy web są "przyszłością" czy też niedługo pojawi się coś lepszego? Kto wie? Właśnie teraz wygląda na to, że serwisy web mogą stac się preferowanym sposobem implementacji każdego rodzaju intranetowych i internetowych aplikacji komputerowych, z następujacych powodów: * Luźne połaczenie komponentów: każdy składnik może być zaimple- mentowany w języku preferowanym przez pomysłodawcę składnika, bez względu na język i narzędzia deweloperskie użyte do zaimple- mentowania innych komponentów. Jest dużo mniejszy bałagan orga- nizacyjny przy zmianach w składnikach lub ich równoległym rozsze- rzaniu. * Szybkie tworzenie prototypów i łatwe przejście od nich do stanu produksyjnego: prototypy składników serwisów web mogą być zrobione w językach skryptowych takich jak Perl, Python czy PHP. Przejście od prototypu do produkcji będzie zazwyczaj zawierało przesunięcie składnika na inny serwer (lub jakieś serwery load-balanced) i prawdopodobnie skuteczną reimplemetację komponentu. Czy dane przechowywane są na serwerze serwisu web? Dane mogą być przechowywane zarówno lokalnie jak i na serwerze serwisu web. Jeśli wielu użytkowników wpływa na ten sam zestaw danych to powinno to prawdopodobnie być przechowywane na ser- werze serwisów web. Czy możemy przenieść się do innego dostawcy serwisów web? Serwisy web DotGNU wymagają dla każdego serwisu web i każdego zestawu danych by były "właścicielem danych" który ma prawo pobierać wszelkie dane razem z programem implementującym serwis web. Program załadowany w ten sposób może być uruchomiony w Środowisku Bezpiecznego Uruchamiania DotGNU na komputerze lub serwerze serwisów web DotGNU. Czy możemy dostać kod źródłowy programów serwisu web? Jeśli wszystkie warunki są spełnione, to dostawca serwisu web ma obowiązek dystrybuować kod źródłowy programu obsługującego serwis web, na twoje żądanie: * Program serwisu web został licencjonowany dostawcy serwisu web na warunkach Publicznej Licencji GNU, lub takie jest po- chodzenie tego programu. * Program serwisu web chodzi na serwerze serwisów web DotGNU. * Zostałeś rozpoznany jako "posiadacz danych" dla tego serwisu web. Tak więc serwer serwisu web będzie dystrybuował na twoje żądanie program w formie binarnej. Zgodnie z zasadami Publicznej Licencji GNU wynika, że dostawca serwisu web musi na twoje żądanie dodać kod źródłowy programu serwisu web. Czy jestem zobligowany oddać kod źródłowy mojego serwisu web? You are not automatically obligated to distribute your source code, and you are certainly not obligated to just give it away. However, if you sell webservice services, then your customers will expect that you make them the "owner of the data" which the webservice uses, and depending on the exact circumstances that may indirectly give these customers a right to get the source code upon request. Here are the details: Jeśli dostarczasz serwis web z użyciem programu serwisu web opartego na GPL (który możesz modyfikować), wtedy "posiadacz danych" będzie mógł otrzymać programy serwisu web zgodnie z zasadami GNU GPL, a w szczególności wynika z tego, że inni mają prawo do kodu źródłowego w takiej wersji programu, jakiej używasz. Zasady GNU GPL wymagają również zapisania obietnicy dla tego "posiadacza danych", że wyrazi wolę dostarczenia kodu źródłowego na żądanie. Gwarantuje to, że "posiadacz danych" będzie znał prawa do kodu źródłowego. Tym "posiadaczem danych" jest zwykle klient i w rzeczywistości to klient ma prawo dostać kod źródłowy co zwiększa wartość serwisu, który prowadzisz. Ponieważ możesz sprzedać za wyższą cenę i/lub więcej. Możesz używać narzędzi deweloperskich do programowania swoich własnych serwisów web (zamiast modyfikowania programów rozpow- szechnianych z DotGNU lub innych dostępnych na zasadach GNU GPL) i wtedy nie musisz tworzyć kodu źródłowego dla tych serwisów web, których "posiadaczem danych" jest klient. Jakkolwiek jednak nawet w sytuacji, gdy nie musisz robic kodu źródłowego dostępnego dla twoich klientów, szczerze zachęcamy do dostarczania kodu na zasadach GNU GPL. Wierzymy, że jest to prawo etyczne i że jest to dla ciebie dobre. ################################################################# # # # Section C: DotGNU -- The Big Picture # # # # Article 5: Origins of the DotGNU project # # # # by Barry Fitzgerald # # (a co-founder of the DotGNU project together # # with Enzo-Adrian Reyes and Norbert Bollow) # # # ################################################################# The introduction of the DotGNU project on the FreeDevelopers mailing list back in June of 2001 brought many arguments. People wondered what value it would bring to the GNU/Linux world and shuddered at the thought of dealing with Microsoft founded technologies. Many people even wondered if the project would inadvertently help Microsoft. In the time since the idea first came up, the discussions refined the idea until a founding philosophy was designed. Our goals were not simply compatibility with the Microsoft platform, we decided almost right away that there was an obligation to create a webservices framework that would ensure that the freedom of the members of our community would be protected. If our work helped out the proprietary companies of the world to subjugate the members of our community, then the project would have been for nothing. So, it became the mandate of the leaders of the project to ensure that protection of freedom was a key aspect of this project. "Webservices" is the new buzzword. Every tech writer is talking about webservices when they talk about the future of the tech world. The question is, where do these new webservices fit into the larger picture? If you're to believe some people, webservices are the future and the standard method of running programs is defunct. If you're to believe others, webservices are a fad and no one will ever use them. As with most tech prognostication, both will most likely be partly true. The fact of the matter is that the success of network services (webmail, etc...) is already happening and these services are complimenting the computer usage of people every day. This has been the case been for some time as well. To allow this market to be overtaken by a proprietary vendor would be unthinkable. So, we must embrace the world the way it is and create a Free framework with which webservices and larger network service enabled applications can be easily constructed, allowing for competition in the marketplace, security, freedom, and privacy. ################################################################# # # # Section C: DotGNU -- The Big Picture # # # # Article 7: A technical overview of DotGNU # # # # by David Sugar # # (chairman of the DotGNU Steering Committee) # # # ################################################################# DotGNU is in part concerned with producing bytecode runtime systems for portable executables, and of course, we are interested in the ECMA "standardized" bytecode system and creating a freely licensed and fully portable implementation as represented by the Portable.NET project. Having a portable and universally interoperable runtime for developing and delivering web hosted applications represents an important part of DotGNU, as does extending support to other existing bytecode systems such as Java. Another part of DotGNU is concerned with providing a fully valid and technically correct solution for authentication and user identities that provide the convenience of internet-wide single sign-on services without the need to deliberately handicap such systems thru a single vendor point of failure or implement such a solution in a manner that forces users to compromise personal data or which compromises the integrity of commercial organizations. Certainly there is neither any technical merit nor commercial reason to have one and only one source of authentication and identity services on the Internet. While enabling the existence and use of multiple trusted third party identity services is quite valid and useful commercially when such services can be hosted on a non-discriminatory basis by any organization wishing to do so in a free and open market, rather than by either a single vendor or a small group of privileged vendors, ideally we wish it to be possible for an individual user to provide identity and personal data services directly from corporate offices or even their own workstation if so desired to protect their personal data to the fullest. Tying together authentication, identity, and runtime, are meaningful services, and DotGNU also will produce useful web hosted application services that will demonstrate the full cycle of authenticated single login in a secure manner with personal data that can be kept private and secure or hosted by trusted third parties and using the Portable.NET runtime to deliver these services where they involve local execution on your workstation, all using freely licensed software under the GPL and hosted on freely licensed operating systems, such as GNU/Linux. ################################################################# # # # Section C: DotGNU -- The Big Picture # # # # Article 7: A formula for DotGNU # # # # by DotGNU Steering Committee member Arun M. # # # ################################################################# DotGNU = Runtimes/Compilers + AppServer + WebServicesDevelopmentFrameWork + CommonServices + DesktopIntegration Runtime C# runtime (Pnet) is major component of DotGNU, But DotGNU will support others like parrot, Kaffe etc. Various language compilers for CIL are needed. AppServer An application server based on CIL/C# is needed. It will take more time as we need to complete C# corelibs. Now the question is, should we restrict AppServer to C#? Can we add other existing AppServers to DotGNU ? A few choices are Zope, Webware, eZPublish, phpCMS. Will they be interested in joining ? WebServicesDevelopmentFrameWork A set of libraries for common web service standards is a major component in this. Most AppSevers now have xml-rpc or SOAP support. Some even support WSDL. I feel SandStorm may be a good addition to DotGNU in this regard. CommonServices Identity is the first component. IDSec, macs etc comes here. Groupware comes next (solved by phpGroupWare). Another major one is ERP system available as webservice. GNUe should join DotGNU, or DotGNU should work on a webservice plugin for GNUe. DesktopIntegration Desktop applications will have to be written to support the services we provide. ################################################################# # # # Section D: DotGNU -- A Community # # # # DotGNU is not just a collection of software, but also a # # Community of Free Software developers. Here are some # # notes from various contributors to the DotGNU project, in # # which they explain why they care about DotGNU. # # # # (The submissions are sorted according to their length) # # # ################################################################# Bill Lance writes: ~~~~~~~~~~~~~~~~~~ The Internet came to life at the rim when it dropped the idea of a central server. The forces of government and finance wish to pull power back to the center and regain control. The pressure to things like ASP's, subscription/teathered software, and server centric webservices are manifestations of this today and reveal their strategy. DotGNU seems to me to be the incubator of the LibreSoftware alternative. That's why I'm here. Bradley Kuhn writes: ~~~~~~~~~~~~~~~~~~~~ DotGNU is of particular interest to me and I was honored to be put on the Steering Committee this year. DotGNU has the potential to bring together years of work in programming language integration research, and marry it beautifully with web services. I have in the past worked on using the Java Virtual Machine as a language integration platform, thus I am excited that DotGNU's Portable.NET might make true language integration possible. - Bradley M. Kuhn, Vice President of the FSF and DotGNU SC Member Norbert Bollow writes: ~~~~~~~~~~~~~~~~~~~~~~ If everyone uses webservices, and these programs use Microsoft's centralized auth system, then secret services and other crackers can easily observe how anyone is using their PC. This could far too easily become the foundation of a "Big Brother" type totalitarian system. Microsoft is a Goliath. From the beginning of DotGNU I have felt somewhat like a David challenging this Goliath, doing what needs to be done, in the name of Jesus. Yes, I believe that for DotGNU to be successful, we need to have God on our side. Barry Fitzgerald writes: ~~~~~~~~~~~~~~~~~~~~~~~~ DotGNU has the potential of solving a number of problems that currently keep developers in the habit of creating programs for That Other Platform. We could create a unified, cross-system compatible and completely interoperable development environment for multiple language development. This would be a boon for the entire development industry and would solve many potential program availability issues that currently keep GNU/Linux from becoming ubiquitous in the market. This aspect provides a unique opportunity to place Free Software at the forefront of the industry if we take our steps wisely. Interoperability truly is king, but we must do more than interoperate. We must create the best Dam*ed development environment that ever existed. In the long run, this is our mandate. We must, along with the rest of the Free Software world, do what it takes to dethrone the proprietary forces of the world. Dan Kuykendall writes: ~~~~~~~~~~~~~~~~~~~~~~ I have been working with phpGroupWare since its inception as the project leader. I have had several years of experience as a groupware administrator of all three of the big commercial groupware servers and felt that all of them lacked in some way or another. When phpGroupWare started I knew that I could help build a groupware server that did not have all the failings of the commercial products in both features and lack of freedom. By helping build both the code and the community I feel that my efforts have been a tremendous success. phpGroupWare is a powerful, flexible and *free* product that can meet and exceed the needs of many many people. When I became aware of web services and realized their potential I immediately started to push phpGroupWare in that direction because I knew that web services would change the rules, and I wanted to be there. Our code has so easily been adapted and continues to be a perfect testing ground for new technology that I know we have built something to be proud of, and I believe the DotGNU team has show great vision and wisdom in including us into their team. I believe phpGroupWare and DotGNU can be successful and offer the world top rate applications and services without giving up freedom or features. David Sugar writes: ~~~~~~~~~~~~~~~~~~~ There were many things that concerned me when I first heard about DotGNU. Of course, like many others at the time, I was highly skeptical of such an enterprise until I took the time to think deeper on the subject. There are those that say that DotGNU helps legitimize ".NET" services from Microsoft. I believe Java already does this very well. The problem Java faces is that Sun does not wish to relinquish control to certain parts of it, just as Microsoft chooses not to relinquish control to parts of it's so called ".NET" technologies, especially in regards to authentication and web services. Neither situation is valid or useful for web centric free software to progress. To create software on a non-free infrastructure (Java) is problematic even if the resulting software itself can be freely licensed. Worst still would be to create a free infrastructure or runtime that integrates with proprietary services and protocols, as the latter, while free on the surface, can be used to lock out any other vendor solutions at the key middleware services level and in fact could be used to effectively block free software development by changing licensing on key services and protocols that may later be required. While it's easy to pretend that these things will not happen or will never be adopted by others, the fact remains that burying one's head in the sand will not make the problem go away. DotGNU is about assuring freedom, for both developers and users. In this sense, I, among others, understood it was necessary to look at and engage in the full spectrum of services, from basic runtime to web services and protocols, and to do so in a manner that protects the integrity of user's private data. This was why I chose to become part of DotGNU, because I thought it was far better to do something than simply ignore the problem and hope it would simply go away... =================================================================== "This year in DotGNU - No 1" -- All articles are Copyright 2001 by their authors. Compilation Copyright 2002 by Norbert Bollow. All rights reserved. Verbatim copying and distribution of this entire issue is permitted in any medium or format, provided this notice is preserved. ===================================================================