NetKernel

NetKernel
Oryginalni autorzy Laboratoria HP
Deweloperzy 1060 Badania
Wersja stabilna
6.2.1 / 27 stycznia 2018 ; 5 lat temu ( 2018-01-27 )
Napisane w Jawa
Typ Struktura aplikacji
Licencja Licencja publiczna 1060
Strona internetowa www .1060research.com / produkty /

NetKernel to brytyjska firma programistyczna i platforma oprogramowania o tej samej nazwie, która jest używana do obliczeń o wysokiej wydajności, integracji aplikacji korporacyjnych i energooszczędnych obliczeń.

Pozwala programistom wyraźnie oddzielić kod od architektury. Może być używany jako serwer aplikacji , osadzony w kontenerze Java lub wykorzystany jako platforma przetwarzania w chmurze .

Jako platforma jest implementacją abstrakcji przetwarzania zorientowanego na zasoby (ROC). ROC to logiczny model obliczeniowy, który znajduje się na wierzchu, ale jest całkowicie odizolowany od fizycznej sfery kodu i obiektów. W ROC informacje i usługi są identyfikowane za pomocą adresów logicznych, które są rozdzielane na fizyczne punkty końcowe na czas trwania żądania, a następnie zwalniane. Logiczne adresowanie pośrednie skutkuje elastycznymi systemami, które można zmieniać podczas pracy systemu. W NetKernel granica między warstwami logicznymi i fizycznymi jest pośredniczona przez kaliber systemu operacyjnego mikrojądro , które może przeprowadzać różne przejrzyste optymalizacje.

Pomysł wykorzystania zasobów do modelowania abstrakcyjnych informacji wywodzi się ze stylu architektonicznego REST i sieci World Wide Web . Pomysł wykorzystania jednolitego modelu adresowania wywodzi się z Unix . NetKernel można uznać za połączenie sieci Web i systemu Unix zaimplementowane jako programowy system operacyjny działający na monolitycznym mikrojądrze w ramach jednego komputera.

NetKernel został opracowany przez 1060 Research i jest oferowany w ramach podwójnej licencji oprogramowania open source i licencji oprogramowania komercyjnego.

Historia

NetKernel został uruchomiony w Hewlett-Packard Labs w 1999 roku. Został wymyślony przez dr Russa Perry'ego, dr Roystona Sellmana i dr Petera Rodgersa jako środowisko operacyjne XML ogólnego przeznaczenia, które mogłoby zaspokoić potrzeby rosnącego zainteresowania dialektami XML dla intra -branżowe przesyłanie wiadomości XML.

Rodgers postrzegał sieć jako implementację ogólnej abstrakcji, którą ekstrapolował jako ROC, ale mając na uwadze, że sieć ogranicza się do publikowania informacji; zaczął wymyślać rozwiązanie, które mogłoby wykonywać obliczenia przy użyciu podobnych zasad. Pracując w ścisłej współpracy ze współzałożycielem Tonym Butterfieldem, odkryli metodę pisania oprogramowania, które może być wykonywane w modelu logicznym, oddzielonym od fizycznej sfery kodu i obiektów. Dostrzegając potencjał tego podejścia, wycofali się z HP Labs.

Rodgers i Butterfield założyli swoją firmę jako „1060 Research Limited” w Chipping Sodbury, małym miasteczku handlowym na obrzeżach regionu Cotsolds w Anglii w 2002 roku i przez wiele lat rozwijali platformę, która stała się NetKernel.

Na początku 2018 roku firma 1060 Research ogłosiła, że ​​mianuje nowego dyrektora generalnego, Charlesa Radclyffe. Radclyffe ogłosił społeczności NetKernel w lutym 2018 r., że zespół pracuje nad nową patformą opartą na NKEE 6, która byłaby w pełni hostowana, programowalna i dostępna przez Internet - NetKernel Cloud. Radclyffe zrezygnował po sześciu miesiącach.

koncepcje

Ratunek

Zasób to możliwa do zidentyfikowania informacja w systemie komputerowym. Zasoby są pojęciem abstrakcyjnym i nie można nimi bezpośrednio manipulować. Kiedy żądany jest zasób, dostarczana jest konkretna, niezmienna reprezentacja , która przechwytuje bieżący stan zasobu. Jest to bezpośrednio analogiczne do sposobu funkcjonowania sieci World Wide Web. W Internecie adres URL identyfikuje zasób dostępny na całym świecie. Gdy przeglądarka wysyła żądanie dotyczące zasobu, w odpowiedzi otrzymuje reprezentację zasobu.

Adresy

Zasób jest identyfikowany przez adres w przestrzeni adresowej . W NetKernel Uniform Resource Identifier (URI) są używane do identyfikacji wszystkich zasobów. W przeciwieństwie do sieci, która ma jedną globalną przestrzeń adresową, NetKernel obsługuje nieograniczoną liczbę przestrzeni adresowych i obsługuje relacje między przestrzeniami adresowymi.

NetKernel obsługuje różne schematy URI i wprowadza nowe, szczególnie odpowiednie do adresowania URI w systemie oprogramowania.

Wniosek

Podstawową operacją w NetKernel jest żądanie zasobu lub żądanie . Żądanie składa się z adresu URI zasobu i czasownika . Obsługiwane czasowniki to SOURCE, SINK, NEW, DELETE, EXISTS i META. Każde żądanie jest wysyłane do mikrojądra , które rozwiązuje adres URI na fizyczny punkt końcowy oraz przypisuje i planuje przetwarzanie wątku . Gdy punkt końcowy zakończy przetwarzanie, mikrojądro zwraca odpowiedź inicjującemu klientowi.

Programowanie

Podstawową instrukcją w NetKernel jest żądanie zasobu określone przez URI. Mechanizmy sekwencjonowania żądań URI znajdują się nad mikrojądrem. W bieżącej implementacji opartej na języku Java żądania są wysyłane przy użyciu interfejsu API języka Java. Oznacza to, że każdy język, który może wywoływać interfejs API Java, może być używany do programowania NetKernel.

Od kwietnia 2013 r. zestaw obsługiwanych języków obejmuje:

  • Jawa
  • Rubin
  • Scala
  • Clojure
  • JavaScript
  • Pythona 2
  • Groovy
  • Łuska fasoli
  • PHP
  • DPML
  • Języki związane z XML, takie jak XQuery
  • Sama specyfikacja URI ma wystarczające bogactwo, aby wyrazić funkcjonalny język programowania.

Aktywny schemat URI

Aktywny schemat URI został zaproponowany przez firmę Hewlett-Packard jako sposób kodowania programu funkcjonalnego w URI.

aktywny: {nazwa-funkcji} [+ {nazwa-parametru} @ {wartość-parametru-URI}]*

Na przykład następujący identyfikator URI wywołuje generator liczb losowych

aktywny: losowy

a poniższy używa usługi XSLT do przekształcenia dokumentu XML za pomocą arkusza stylów XSLT:

aktywny:xslt+operator@plik:/style.xsl+operand@plik:/document.xml

Ponieważ wartości argumentów mogą być same adresami URI, zestaw wywołań funkcji o strukturze drzewa może być zakodowany w jednym URI.

Transporty

Transporty to mechanizm służący do wprowadzania żądań spoza NetKernel do przestrzeni adresowej NetKernel. Transporty są dostępne dla protokołu HTTP, JMS ( Java Message Service ) oraz CRON. Inne transporty można łatwo dodawać, ponieważ są one niezależne od reszty NetKernela.

Rolą transportu jest przetłumaczenie zewnętrznego żądania opartego na jednym protokole na żądanie NetKernel z URI i określonym czasownikiem (SOURCE, SINK itp.), a następnie wysłanie zwróconej reprezentacji z powrotem do klienta za pośrednictwem obsługiwanego protokołu.

Transport obsługuje dwa mapowania. Pierwsza dotyczy przestrzeni adresowej obsługiwanego zewnętrznie protokołu i wewnętrznej przestrzeni adresowej NetKernel. A drugi jest między czasownikiem lub akcją określoną zewnętrznie w czasowniku NetKernel.

Na przykład w przypadku transportu HTTP zewnętrzną przestrzenią adresową jest podprzestrzeń adresu URL. Poniższe mapowanie ilustruje ten punkt.

http://www.mywebsite.com/publications/... | v plik:/src/publications/...

Ponadto protokół HTTP obsługuje metody takie jak GET, PUT, HEAD itp., które są mapowane na czasowniki NetKernel.

Języki skryptowe

Potrzebny jest mechanizm do wysyłania żądań URI, przechwytywania zwróconych reprezentacji i komunikowania się z klientami.

Języki skryptowe są wykonywane przez ich silnik wykonawczy, który sam w sobie jest usługą. Na przykład Groovy uruchomi program zawarty w pliku file :/program.gy z następującymi elementami:

aktywny:groovy+operator@plik:/program.gy

Zobacz też

Linki zewnętrzne