PL236658B1 - Sposób korzystania z wirtualnych zasobów sprzętowych, fizycznie umiejscowionych na serwerze za pośrednictwem mobilnego modułu elektronicznego, wyposażonego w podłączenia urządzeń peryferyjnych - Google Patents
Sposób korzystania z wirtualnych zasobów sprzętowych, fizycznie umiejscowionych na serwerze za pośrednictwem mobilnego modułu elektronicznego, wyposażonego w podłączenia urządzeń peryferyjnych Download PDFInfo
- Publication number
- PL236658B1 PL236658B1 PL427341A PL42734118A PL236658B1 PL 236658 B1 PL236658 B1 PL 236658B1 PL 427341 A PL427341 A PL 427341A PL 42734118 A PL42734118 A PL 42734118A PL 236658 B1 PL236658 B1 PL 236658B1
- Authority
- PL
- Poland
- Prior art keywords
- server
- module
- communication
- peripheral
- mobile electronic
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Multi Processors (AREA)
Description
Opis wynalazku
Przedmiotem wynalazku jest sposób korzystania z wirtualnych zasobów sprzętowych, fizycznie umiejscowionych na serwerze za pośrednictwem mobilnego modułu elektronicznego, wyposażonego w podłączenia urządzeń peryferyjnych, mający swoje zastosowanie w automatyce, robotyce, edukacji, ochronie zdrowia, sensoryce, elektronice użytkowej, rozrywce i innych dziedzinach.
Centralna jednostka obliczeniowa określana jest także skrótowo jako CPU. Skrót pochodzi z języka angielskiego, a konkretnie od słów: „Central Processing Unit”. Centralną jednostkę obliczeniową stanowi procesor, który wykonuje instrukcje programu komputerowego. Są to operacje arytmetyczne, logiczne, kontrolne oraz operacje wejścia/wyjścia (I/O) określone w instrukcjach.
Procesory wykonują ciągi prostych operacji matematyczno-logicznych ze zbioru operacji podstawowych, określonych zazwyczaj przez producenta procesora jako lista rozkazów procesora. Procesory wykonywane są zwykle jako układy scalone zamknięte w hermetycznej obudowie i w takiej postaci nazywa się je mikroprocesorami. Sercem procesora jest monokryształ krzemu, na który naniesiono techniką fotolitografii szereg warstw półprzewodnikowych, tworzących w zależności od zastosowania, sieć od kilku tysięcy do kilku miliardów tranzystorów. Jego obwody wykonywane są z metali o dobrym przewodnictwie elektrycznym, takich jak aluminium czy miedź.
Jedną z głównych części procesora jest jednostka arytmetyczno-logiczna (ang. „arithmetic logic uni”, zwana w skrócie: ALU), która jest układem cyfrowym służącym do wykonywania operacji arytmetycznych, takich jak dodawanie, odejmowanie itp., operacji logicznych, np. Ex-Or (alternatywa wykluczająca) pomiędzy dwiema liczbami oraz operacji jednoargumentowych, takich jak przesunięcie bitów i negacja. ALU jest podstawowym blokiem centralnej jednostki obliczeniowej komputera.
W stanie techniki znane są serwery, które stanowią program świadczący usługi na rzecz innych programów, zazwyczaj korzystających z innych komputerów połączonych w sieć. Serwerem nazywa się także komputer świadczący takie usługi, sprowadzające się zazwyczaj do udostępniania pewnych zasobów innym komputerom lub pośredniczący w przekazywaniu danych między komputerami. Serwerami nazywa się także systemy oprogramowania biorące udział w udostępnianiu zasobów. Serwery jako maszyny są przystosowane do pracy ciągłej. Wyposaża się je w duże i szybkie dyski twarde, dużą ilość pamięci operacyjnej RAM (ang. „Random Access Memory”), wydajne procesory serwerowe oraz inne peryferia takie jak np.: GPU, czy karta sieciowa. Często serwerowe płyty główne mogą obsłużyć wiele procesorów.
Znane jest także wykorzystywanie tzw. urządzeń peryferyjnych, stanowiących dowolną część komputera inną niż CPU oraz pamięć operacyjną np. klawiatura, monitor, mysz, drukarka, napęd taśmowy, mikrofon, kamera internetowa. Dzielą się na urządzenia: wejścia i wyjścia.
Z amerykańskiego wynalazku nr US 20100777218 znany jest system chmur obliczeniowych, który pozwala na tworzenie, monitorowanie i kontrolowanie sesji chmur obliczeniowych, dostarczanych przez innego dostawcę.
Znane jest także polskie zgłoszenie wynalazku o nr PL 395672. W sposobie zarządzania zasobami w sieciach komputerowych typu „chmura obliczeniowa”, w których klienci łączą się z interfejsem komunikacyjnym „chmury obliczeniowej” za pośrednictwem dostawcy usług w „chmurze obliczeniowej”, wykorzystuje się wzajemnie powiązane ze sobą moduły: 1. moduł internetowej aplikacji do obsługi systemu; 2. moduł bezpośredniego zarządzania usługami; 3. moduł zlecania wykonania usługi; 4. moduł bilingowy; 5. moduł zarządzania przez administratorów; 6. moduł integracji z systemami zewnętrznymi.
W dotychczasowych rozwiązaniach o tym, jaki będzie wykorzystywany sprzęt komputerowy (inaczej zwany: platformą sprzętową) decydują parametry odpowiedniego oprogramowania (aplikacji).
I tak, w przypadku prostej i niezaawansowanej technologicznie aplikacji wymagania sprzętowe będą niewielkie, a co za tym idzie, wykorzystywany będzie sprzęt komputerowy o odpowiednio niższych parametrach technicznych.
Natomiast w sytuacji, gdy zaistnieje konieczność np. tworzenia, modyfikowania i testowania przez programistę oprogramowania o odpowiednio wyższych wymaganiach co do parametrów technicznych, zaistnieje wtedy konieczność użycia sprzętu na właściwym dla oprogramowania poziomie. Powoduje to niewątpliwą konieczność użycia odpowiedniego sprzętu i/lub modyfikacji istniejącego, co z kolei wiąże się z dodatkowymi wydatkami, które powodują podrożenie kosztów produkcji całego oprogramowania i w efekcie ceny końcowej dla ostatecznego użytkownika.
Rozwiązanie według wynalazku eliminuje te niedogodności w dziedzinie systemów mikroprocesorowych i systemów wbudowanych, oferując alternatywę dla rozwiązań istniejących.
PL 236 658 B1
Istotą wynalazku jest sposób korzystania z wirtualnych zasobów sprzętowych, fizycznie umiejscowionych na serwerze za pośrednictwem mobilnego modułu elektronicznego, wyposażonego w podłączenia urządzeń peryferyjnych, za pomocą którego użytkownik korzysta z programu komputerowego wykonywanego na serwerze charakteryzujący się tym, że użytkownik umiejscawia na serwerze program komputerowy, po czym serwer wykonuje program komputerowy, wykorzystujący interfejs programowania aplikacji API, przy czym dowolna komunikacja serwerowo-modułowa pomiędzy serwerem, a mobilnym modułem elektronicznym odbywa się poprzez wymianę instrukcji serwerowo-modułowych lub danych serwerowo- modułowych z wykorzystaniem interfejsu programowania aplikacji API, za pośrednictwem dowolnej komunikacji serwerowo-modułowej, pozwalającej na dostęp do Internetu, następnie mobilny moduł elektroniczny odbiera, wykorzystując układ komunikacyjny zapewniający dostęp do Internetu, z wykorzystaniem interfejsu programowania aplikacji API przesłane z serwera za pośrednictwem dowolnej komunikacji serwerowo-modułowej instrukcje serwerowo-modułowe lub dane serwerowo-modułowe, które następnie przekazane są do układu scalonego SoC, który po ich analizie komunikuje się z podłączonym do mobilnego modułu elektronicznego za pomocą interfejsów wejść/wyjść I/O, przy wykorzystaniu dowolnej komunikacji modułowo-peryferyjnej, co najmniej jednym urządzeniem peryferyjnym, do którego przesyła instrukcje modułowo-peryferyjne lub dane modułowo-peryferyjne traktowane jako dane wyjściowe, następnie do mobilnego modułu elektronicznego z co najmniej jednego urządzenia peryferyjnego przekazywane są za pośrednictwem interfejsów wejść/wyjść I/O, przy wykorzystaniu dowolnej komunikacji modułowo-peryferyjnej, instrukcje modułowo-peryferyjne lub dane modułowo-peryferyjne traktowane jako dane wejściowe, które dalej przekazywane są do układu scalonego SoC, skąd następnie dane wejściowe pod postacią danych serwerowo-modułowych lub instrukcji serwerowo-modułowych, z wykorzystaniem interfejsu programowania aplikacji API, za pośrednictwem dowolnej komunikacji serwerowo-modułowej, wykorzystując układ komunikacyjny, pozwalający na dostęp do Internetu przesyłane są na serwer, gdzie następuje ich analiza zgodnie z programem komputerowym.
Korzystnie, stworzony przez użytkownika program komputerowy umiejscawia się na serwerze za pomocą nośnika danych.
Korzystnie, stworzony przez użytkownika program komputerowy umiejscawia się na serwerze za pomocą komunikacji internetowej.
Mobilny moduł elektroniczny według wynalazku stanowi fizyczny moduł (urządzenie) wyposażony w układ komunikacyjny pozwalający na dostęp do Internetu, układ scalony SoC wraz z oprogramowaniem korzystającym z interfejsu programowania aplikacji API, posiadający dostęp do dowolnych interfejsów wejść/wyjść I/O.
W związku z tym wynalazek nie dotyczy jedynie interakcji pomiędzy oprogramowaniem umiejscowionym i wykonywanym na serwerze, a mobilnym modułem elektronicznym, lecz obejmuje także ten konkretny, fizyczny, mający materialną postać urządzenia elektronicznego (mobilny moduł elektroniczny), za pomocą którego realizowany jest sposób według wynalazku.
W wynalazku dowolna komunikacja pomiędzy serwerem, a mobilnym modułem elektronicznym odbywa się poprzez wymianę instrukcji serwerowo-modułowych lub danych serwerowo-modułowych z wykorzystaniem interfejsu programowania aplikacji API, za pośrednictwem dowolnej komunikacji pozwalającej na dostęp do Internetu.
Użyty w wynalazku układ komunikacji jest to dowolny układ elektroniczny zapewniający komunikację z serwerem za pośrednictwem Internetu.
Użyty w sposobie według wynalazku interfejs programowania aplikacji API rozumiany jest jako ściśle określony zestaw reguł i ich opisów, w jaki programy komputerowe komunikują się między sobą. Definiuje się go na poziomie kodu źródłowego dla składników oprogramowania, na przykład aplikacji komputerowych, bibliotek, systemu operacyjnego. Zadaniem interfejsu programowania aplikacji API jest dostarczenie odpowiednich specyfikacji podprogramów, struktur danych, klasy obiektów i wymaganych protokołów komunikacyjnych.
Użyty w sposobie według wynalazku układ scalony SoC (ang. „System-on-a-chip”) lub SOC („System On Chip”) oznacza układ scalony zawierający kompletny system elektroniczny, w tym układy cyfrowe, mikrokontroler, pamięć operacyjną, pamięć trwałą, układy cyfrowo-analogowe oraz radiowe.
W sposobie według wynalazku, do mobilnego modułu elektronicznego z wykorzystaniem interfejsu programowania aplikacji API za pośrednictwem dowolnej komunikacji serwerowo-modułowej pozwalającej na dostęp do Internetu przesłane są z serwera instrukcje serwerowo-modułowe lub dane
PL 236 658 B1 serwerowo-modułowe odbierane poprzez układ komunikacyjny znajdujący się w mobilnym module elektronicznym, który następnie przesyła odebrane z serwera instrukcje serwerowo-modułowe lub dane serwerowo-modułowe do układu scalonego SoC.
Wynalazek w przykładzie wykonania został bliżej zaprezentowany na rysunku, gdzie fig. 1 przedstawia w ujęciu blokowym zasadę działania sposobu według wynalazku.
Użytkownik 1 umiejscawia program komputerowy 2 na serwerze 4, za pośrednictwem komunikacji internetowej 16. Serwer 4 posiada centralną jednostkę obliczeniową CPU 3, pamięć operacyjną 5 i pamięć masową 6. Dalej centralna jednostka obliczeniowa CPU 3 wykonuje umiejscowiony w serwerze 4 program komputerowy 2 wykorzystujący interfejs programowania aplikacji API 7. Dowolna komunikacja serwerowo-modułowa 12 pomiędzy serwerem 4, a mobilnym modułem elektronicznym 8 odbywa się poprzez wymianę instrukcji serwerowo-modułowych 9 lub danych serwerowo-modułowych 10 z wykorzystaniem interfejsu programowania aplikacji API 7, za pośrednictwem dowolnej komunikacji serwerowo-modułowej 12 pozwalającej na dostęp do Internetu. Dowolna komunikacja serwerowo-modułowa 12, to komunikacja występująca pomiędzy serwerem 4, a mobilnym modułem elektronicznym 8 lub pomiędzy mobilnym modułem elektronicznym 8, a serwerem 4. Instrukcje serwerowomodułowe 9, to instrukcje, które mogą być przesyłane pomiędzy serwerem 4, a mobilnym modułem elektronicznym 8, a także pomiędzy mobilnym modułem elektronicznym 8, a serwerem 4, zaś dane serwerowo- modułowe to dane, które mogą być przesyłane pomiędzy serwerem 4, a mobilnym modułem elektronicznym 8, a także pomiędzy mobilnym modułem elektronicznym 8, a serwerem 4. Następnie mobilny moduł elektroniczny 8 odbiera wykorzystując układ komunikacyjny 11 zapewniający dostęp do Internetu z wykorzystaniem interfejsu programowania aplikacji API 7 przesłane z serwera 4 za pośrednictwem dowolnej komunikacji serwerowo-modułowej 12 instrukcje serwerowo-modułowe 9 lub dane serwerowo-modułowe 10, które następnie przekazane są do układu scalonego SoC, który po ich analizie komunikuje się z podłączonym do mobilnego modułu elektronicznego 8 za pomocą interfejsów wejść/wyjść I/O 15 przy wykorzystaniu dowolnej komunikacji modułowo-peryferyjnej 20, co najmniej jednym urządzeniem peryferyjnym 14, do którego przesyła instrukcje modułowo-peryferyjne 18 lub dane modułowo-peryferyjne 19 traktowane jako dane wyjściowe. Dowolna komunikacja modułowo-peryferyjna 20, to komunikacja występująca pomiędzy urządzeniem peryferyjnym 14, a mobilnym modułem elektronicznym 8 lub pomiędzy mobilnym modułem elektronicznym 8, a urządzeniem peryferyjnym 14 zrealizowana za pomocą interfejsów wejść/wyjść I/O 15. Instrukcje modułowo-peryferyjne 18, to instrukcje, które mogą być przesyłane pomiędzy mobilnym modułem elektronicznym 8, a urządzeniem peryferyjnym 14, a także pomiędzy urządzeniem peryferyjnym 14, a mobilnym modułem elektronicznym 8, natomiast dane modułowo-peryferyjne 19 to dane, które mogą być przesyłane pomiędzy mobilnym modułem elektronicznym 8, a urządzeniem peryferyjnym 14, a także pomiędzy urządzeniem peryferyjnym 14, mobilnym modułem elektronicznym 8. Następnie do mobilnego modułu elektronicznego 8 z co najmniej jednego urządzenia peryferyjnego 14, przekazywane są za pośrednictwem interfejsów wejść/wyjść I/O 15, przy wykorzystaniu dowolnej komunikacji modułowo-peryferyjnej 20 instrukcje modułowo-peryferyjne 18 lub dane modułowo-peryferyjne 19 traktowane jako dane wejściowe, które dalej przekazywane są do układu scalonego SoC 13. Następnie po przekonwertowaniu danych wejściowych przez układ scalony SoC 13, dane wejściowe pod postacią instrukcji serwerowo-modułowych 9 lub danych serwerowo-modułowych 10 z wykorzystaniem interfejsu programowania aplikacji API 7, za pośrednictwem dowolnej komunikacji serwerowo-modułowej 12, wykorzystując układ komunikacyjny 11 pozwalający na dostęp do Internetu przesyłane są na serwer 4, gdzie następuje ich analiza z wykorzystaniem centralnej jednostki obliczeniowej CPU 3 wykonującej program komputerowy 2 umiejscowiony na serwerze 4 przez użytkownika 1.
Fig. 2 prezentuje natomiast sytuację, gdzie użytkownik 1 umiejscawia program komputerowy 2 na serwerze 4, za pośrednictwem nośnika danych 17.
Zaprezentowane na figurach 1 i 2 przykłady wykonania mogą znaleźć swoje zastosowanie w wykonywaniu dowolnego programu komputerowego współpracującego z mobilnym modułem elektronicznym, który stanowi fizyczne, a zatem materialnie, istniejące rozwiązanie.
Sposób według wynalazku można zobrazować za pomocą aplikacji służącej do sterowania robotem, która poniżej została szczegółowo przedstawiona poniżej w przykładzie 1.
P r z y k ł a d 1.
Użytkownik 1 umiejscawia program komputerowy 2 służący do sterowania robotem na serwerze 4 w którym znajduje się centralna jednostka obliczeniowa CPU 3, pamięć operacyjna 5 i pamięć masowa
PL 236 658 B1
6, po czym centralna jednostka obliczeniowa CPU 3 wykona umiejscowiony przez użytkownika 1 program 2 wykorzystujący interfejs programowania aplikacji API 7, gdzie instrukcje serwerowo-modułowe 9 w postaci komendy uruchamiającej silnik oraz dane serwerowo-modułowe 10 w postaci zadanej prędkości zostaną przesłane z serwera 4 za pośrednictwem dowolnej komunikacji serwerowo-modułowej 12 pozwalającej na dostęp do Internetu wykorzystując układ komunikacyjny 11 do mobilnego modułu elektronicznego 8, które następnie przekazane są do układu scalonego SoC 13, który po ich analizie przesyła je w formie danych modułowo-peryferyjnych 19 w postaci sygnału PWM za pomocą interfejsów wejść/wyjść I/O 15 za pośrednictwem dowolnej komunikacji modułowo-peryferyjnej 20 do urządzenia peryferyjnego 14 w tym przypadku serwomechanizmu odpowiedzialnego za poruszanie się robota, jednocześnie dane z czujnika odległości jako kolejnego urządzenia peryferyjnego 14 podłączonego do interfejsów wejść/wyjść I/O 15 za pośrednictwem dowolnej komunikacji modułowo-peryferyjnej 20 w formie danych modułowo-peryferyjnych 19 w postaci przekonwertowanej wartości napięcia przesyłane są do układu scalonego SoC 13, który za pośrednictwem układu komunikacyjnego 11 oraz za pośrednictwem dowolnej komunikacji serwerowo-modułowej 12 pozwalającej na dostęp do Internetu przesyła dane serwerowo-modułowe 10 w postaci cyfrowej wartości napięcia z wykorzystaniem interfejsu programowania API 7, jako dane wejściowe dla wykonywanego przez centralną jednostkę obliczeniową CPU 3 programu 2 znajdującego się na serwerze 4, który na podstawie otrzymanych danych oblicza odległość od przeszkody i steruje robotem.
Innym przykładem wykonania może być program komputerowy służący do rozpoznawania mowy. P r z y k ł a d 2.
Użytkownik 1 umiejscawia program komputerowy 2 służący do rozpoznawania mowy na serwerze 4 w którym znajdująca się centralna jednostka obliczeniowa CPU 3 wraz z pamięcią operacyjną 5 i pamięcią masową 6, po czym centralna jednostka obliczeniowa CPU 3 wykona umiejscowiony przez użytkownika 1 program 2 wykorzystujący interfejs programowania aplikacji API 7, przy czym dane modułowo-peryferyjne 19 w postaci zdania „która jest teraz godzina?” za pośrednictwem dowolnej komunikacji modułowo-peryferyjnej 20 przesyłane są z urządzenia peryferyjnego 14 w tym przypadku z mikrofonu podłączonego do interfejsu wejść/wyjść I/O 15 układu scalonego SoC 13, skąd wysyłane są przy użyciu układu komunikacyjnego 11 za pośrednictwem dowolnej komunikacji 12 pozwalającej na dostęp do Internetu w postaci danych serwerowo-modułowych 10 uznawanych jako dane wejściowe dla wykonywanego przez centralną jednostkę obliczeniową CPU 3 programu 2, który po przeprowadzeniu analizy danych wejściowych wysyła instrukcje serwerowo-modułowe 9 oraz dane serwerowo-modułowe 10 wykorzystując interfejs programowania aplikacji API 7 do mobilnego modułu elektronicznego 8 wykorzystując układ komunikacyjny 11 za pośrednictwem dowolnej komunikacji serwerowo-modułowej 12 przesyłane są do układu scalonego SoC 13, skąd z wykorzystaniem interfejsu wejść/wyjść I/O 15 za pośrednictwem dowolnej komunikacji modułowo-peryferyjnej 20 przesyłane są w formie danych modułowo-peryferyjnych 19 uznawanych jako dane wyjściowe w postaci zdania „aktualnie jest godzina 12:00” do innego urządzenia peryferyjnego 14, którym w tym przypadku jest głośnik.
W wynalazku następuje zatem przeniesienia mocy obliczeniowej z serwera do fizycznego, mobilnego modułu elektronicznego. W efekcie czego praktycznie nie istnieją ograniczenia pod kątem wydajności obliczeniowej, ponieważ każde zadanie delegowane zostaje do oprogramowania, które analizuje otrzymane dane bezpośrednio na serwerze. Gotowy wynik wykonanych operacji przesyłany jest do mobilnego modułu elektronicznego.
Dzięki zastosowaniu wynalazku nie istnieje ograniczenie zasobów sprzętowych, ponieważ wszystkie zlecone operacje zostają wykonane po stronie serwera współpracującego z mobilnym modułem elektronicznym.
W porównaniu do rozwiązań występujących w stanie techniki, gdzie dobór platformy sprzętowej podyktowany jest docelową aplikacją, wynalazek jest fizycznym, mobilnym modułem elektronicznym współpracującym z oprogramowaniem znajdującym się na serwerze, co pozwala na zdalne korzystanie z oprogramowania i wykonywanie go po stronie serwera w czasie rzeczywistym, a nie bezpośrednio w procesorze znajdującym się w fizycznym mobilnym module elektronicznym, co powoduje uniezależnienie się od mocy obliczeniowej fizycznego mobilnego modułu elektronicznego.
Wynalazek pozwala używać jednej platformy sprzętowej zarówno do prostych aplikacji, jak również do zaawansowanych obliczeń wykorzystujących duże ilości danych, z renderowaniem grafiki włącznie.
PL 236 658 B1
Dzięki wynalazkowi nie istnieje konieczność użycia specjalistycznego sprzętu, co powoduje istotne obniżenie kosztów produkcji całego oprogramowania, jak i sprzętu, w efekcie ceny końcowej dla ostatecznego użytkownika.
Wynalazek daje istotne możliwości dla programistów, oferując mobilny moduł elektroniczny ze zwirtualizowaną centralną jednostką obliczeniową (w postaci procesora CPU) oraz pamięcią operacyjną i pamięcią masową. Dzięki wirtualizacji zasobów jest możliwe tworzenie oprogramowania w językach takich jak Python, Java, C, C++, Lua i inne, których wykonywanie nie jest obecnie możliwe na układach scalonych SoC posiadających niewielką moc obliczeniową.
Sposób korzystania z wirtualnych zasobów sprzętowych, fizycznie umiejscowionych na serwerze za pośrednictwem mobilnego modułu elektronicznego pozwala użytkownikowi zarówno tworzyć oprogramowanie, jak i korzystać z oprogramowania już istniejącego, które zostanie umiejscowione przez użytkownika w serwerze, posiadającego centralną jednostkę obliczeniową CPU oraz pamięcią operacyjną i pamięcią masową.
Wynalazek pozwala także na rozwiązanie problemów różnorodności systemów operacyjnych (np. GNU/Linux) oraz aplikacji pisanych w językach obiektowych dla systemów wbudowanych. Ogranicza to czas oraz koszty związane z opracowaniem nowego produktu oraz jest zupełnie nową klasą w dziedzinie projektowania oprogramowania dla systemów wbudowanych, co w praktyce oznacza uzyskanie możliwości tworzenia oprogramowania w językach wysokopoziomowych na systemy wbudowane przez osoby nie posiadające żadnej wiedzy związanej z programowaniem systemów wbudowanych oraz z układami scalonymi SoC.
Wynalazek to rozwiązanie przeznaczone dla deweloperów oprogramowania, automatyków, elektroników, hobbystów oraz producentów hardware'u. Jest również rozwiązaniem, z którego będą mogły korzystać szkoły, uczelnie wyższe w celu nauki programowania dla urządzeń znajdujących się w świecie rzeczywistym.
Wynalazek jest tańszą alternatywą o nieograniczonych zasobach dzięki wirtualizacji zasobów procesora na serwerze względem znacznie droższych mikrokontrolerów o ograniczonych i stałych parametrach. Dzięki swojej elastyczności może być stosowany w automatyce, robotyce, edukacji, healthcare, automotive, IoT, sensoryce, elektronice użytkowej, rozrywce i wielu innych sektorach działalności programistycznej.
Ograniczanie jednostkowych kosztów produkcji do minimum dzięki wykorzystaniu mocy obliczeniowej serwera, ogranicza tym samym koszty, bowiem rozwiązanie to, jest znacznie tańsze, niż jego fizyczny odpowiednik o tej samej mocy obliczeniowej. Ma to swoje znaczenie zwłaszcza w kontekście szybkiego rozwoju technologii serwerowych.
Sposób według wynalazku pozwala na stosowanie mobilnego modułu elektronicznego i jednoczesne wykonywanie zaawansowanych zadań i obliczeń, niedostępnych dla procesorów o niskiej wydajności.
Sposób według wynalazku umożliwia ponadto dostęp na żądanie do wykonywanych procesów oraz zasobów oprogramowania znajdującego się na serwerze. Jest to możliwe w wyniku przeniesienia logiki wykonywanego oprogramowania z mobilnego modułu elektronicznego na serwer.
Ponadto, dzięki zastosowaniu wynalazku uzyskuje się istotne ograniczenie kosztów serwisu i zmian funkcjonalności dla urządzeń zamontowanych w miejscach trudnodostępnych. Dzięki wykonywaniu programu po stronie serwera programista ma stały dostęp do oprogramowania oraz możliwość wprowadzenia zmian w dowolnym miejscu i czasie.
Claims (3)
1. Sposób korzystania z wirtualnych zasobów sprzętowych, fizycznie umiejscowionych na serwerze za pośrednictwem mobilnego modułu elektronicznego, wyposażonego w podłączenia urządzeń peryferyjnych, za pomocą którego użytkownik korzysta z programu komputerowego wykonywanego na serwerze, znamienny tym, że użytkownik (1) umiejscawia na serwerze (4), program komputerowy (2), po czym serwer (4) wykonuje program komputerowy (2) wykorzystujący interfejs programowania aplikacji API (7), przy czym dowolna komunikacja serwerowo-modułowa (12) pomiędzy serwerem (4), a mobilnym modułem elektronicznym (8) odbywa się poprzez wymianę instrukcji serwerowo-modułowych (9) lub danych serwerowo-modułowych (10) z wykorzystaniem interfejsu programowania aplikacji API (7) za pośrednictwem
PL 236 658 B1 dowolnej komunikacji serwerowo-modułowej (12) pozwalającej na dostęp do Internetu, następnie mobilny moduł elektroniczny (8) odbiera wykorzystując układ komunikacyjny (11) zapewniający dostęp do Internetu, z wykorzystaniem interfejsu programowania aplikacji API (7) przesłane z serwera (4) za pośrednictwem dowolnej komunikacji serwerowo-modułowej (12) instrukcje serwerowo-modułowe (9) lub dane serwerowo-modułowe (10), które następnie przekazane są do układu scalonego SoC (13), który po ich analizie komunikuje się z podłączonym do mobilnego modułu elektronicznego (8) za pomocą interfejsów wejść/wyjść I/O (15), przy wykorzystaniu dowolnej komunikacji modułowo-peryferyjnej (20), co najmniej jednym urządzeniem peryferyjnym (14), do którego przesyła instrukcje modułowo-peryferyjne (18) lub dane modułowo-peryferyjne (19) traktowane jako dane wyjściowe, następnie do mobilnego modułu elektronicznego (8) z co najmniej jednego urządzenia peryferyjnego (14) przekazywane są za pośrednictwem interfejsów wejść/wyjść I/O (15), przy wykorzystaniu dowolnej komunikacji modułowo-peryferyjnej (20), instrukcje modułowo-peryferyjne (18) lub dane modułowo-peryferyjne (19) traktowane jako dane wejściowe, które dalej przekazywane są do układu scalonego SoC (13), skąd następnie dane wejściowe pod postacią danych serwerowo-modułowych (10) lub instrukcji serwerowo-modułowych (9), z wykorzystaniem interfejsu programowania aplikacji API (7), za pośrednictwem dowolnej komunikacji serwerowo-modułowej (12), wykorzystując układ komunikacyjny (11), pozwalający na dostęp do Internetu przesyłane są na serwer (4), gdzie następuje ich analiza zgodnie z programem komputerowym (2).
2. Sposób korzystania według zastrz. 1, znamienny tym, że stworzony przez użytkownika (1) program komputerowy (2) umiejscawia się na serwerze (4) za pomocą nośnika danych (17).
3. Sposób korzystania według zastrz. 1, znamienny tym, że stworzony przez użytkownika (1) program komputerowy (2) umiejscawia się na serwerze (4) za pomocą komunikacji internetowej (16).
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PL427341A PL236658B1 (pl) | 2018-10-07 | 2018-10-07 | Sposób korzystania z wirtualnych zasobów sprzętowych, fizycznie umiejscowionych na serwerze za pośrednictwem mobilnego modułu elektronicznego, wyposażonego w podłączenia urządzeń peryferyjnych |
US16/595,426 US11237863B2 (en) | 2018-10-07 | 2019-10-07 | Method for leveraging the virtual hardware resources physically located on the server by means of the mobile electronic module provided with the peripheral device connection ports |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PL427341A PL236658B1 (pl) | 2018-10-07 | 2018-10-07 | Sposób korzystania z wirtualnych zasobów sprzętowych, fizycznie umiejscowionych na serwerze za pośrednictwem mobilnego modułu elektronicznego, wyposażonego w podłączenia urządzeń peryferyjnych |
Publications (2)
Publication Number | Publication Date |
---|---|
PL427341A1 PL427341A1 (pl) | 2020-04-20 |
PL236658B1 true PL236658B1 (pl) | 2021-02-08 |
Family
ID=70281457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PL427341A PL236658B1 (pl) | 2018-10-07 | 2018-10-07 | Sposób korzystania z wirtualnych zasobów sprzętowych, fizycznie umiejscowionych na serwerze za pośrednictwem mobilnego modułu elektronicznego, wyposażonego w podłączenia urządzeń peryferyjnych |
Country Status (2)
Country | Link |
---|---|
US (1) | US11237863B2 (pl) |
PL (1) | PL236658B1 (pl) |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8776050B2 (en) | 2003-08-20 | 2014-07-08 | Oracle International Corporation | Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes |
US7568203B2 (en) * | 2004-06-18 | 2009-07-28 | Telmap Ltd | Mobile device with local server |
US8693649B2 (en) * | 2010-05-07 | 2014-04-08 | Salesforce.Com, Inc. | Methods and apparatus for interfacing with a phone system in an on-demand service environment |
CN102655532B (zh) | 2012-04-18 | 2014-10-22 | 上海和辰信息技术有限公司 | 分布式异构虚拟资源集成管理方法及*** |
CN102739771A (zh) | 2012-04-18 | 2012-10-17 | 上海和辰信息技术有限公司 | 一种支持服务融合的云应用集成管理平台和方法 |
US20140040374A1 (en) * | 2012-07-31 | 2014-02-06 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for providing relevant data in a social network feed according to a location of a computing device |
US9400321B2 (en) * | 2013-06-05 | 2016-07-26 | Apple Inc. | Utilizing mobile wireless access gateways for location and context purposes |
WO2017044479A1 (en) * | 2015-09-08 | 2017-03-16 | Plaid Technologies, Inc. | Secure permissioning of access to user accounts, including secure deauthorization of access to user accounts |
US10846154B2 (en) * | 2016-03-31 | 2020-11-24 | Appbrilliance, Inc. | Application programming interface fingerprint data generation at a mobile device executing a native mobile application |
CN106961367A (zh) | 2017-05-19 | 2017-07-18 | 济南浪潮高新科技投资发展有限公司 | 基于openstack的云资源监控***和方法 |
CN107426034B (zh) | 2017-08-18 | 2020-09-01 | 国网山东省电力公司信息通信公司 | 一种基于云平台的大规模容器调度***及方法 |
US11170381B2 (en) * | 2018-01-18 | 2021-11-09 | Salesforce.Com, Inc. | Method and system for generating insights regarding a party in response to a call |
-
2018
- 2018-10-07 PL PL427341A patent/PL236658B1/pl unknown
-
2019
- 2019-10-07 US US16/595,426 patent/US11237863B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
PL427341A1 (pl) | 2020-04-20 |
US11237863B2 (en) | 2022-02-01 |
US20210109771A1 (en) | 2021-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hadidi et al. | Characterizing the deployment of deep neural networks on commercial edge devices | |
Wei et al. | RT-ROS: A real-time ROS architecture on multi-core processors | |
Goldschmidt et al. | Container-based architecture for flexible industrial control applications | |
Kalb et al. | TULIPP: Towards ubiquitous low-power image processing platforms | |
Dantu et al. | RAINA: reliability and adaptability in android for fog computing | |
PL236658B1 (pl) | Sposób korzystania z wirtualnych zasobów sprzętowych, fizycznie umiejscowionych na serwerze za pośrednictwem mobilnego modułu elektronicznego, wyposażonego w podłączenia urządzeń peryferyjnych | |
Chakravarthi et al. | System on Chip (SOC) Architecture: A Practical Approach | |
Cristal et al. | LEGaTO: first steps towards energy-efficient toolset for heterogeneous computing | |
Woehrle et al. | Reconfigurable hardware-based acceleration for machine learning and signal processing | |
Ting et al. | System services for reconfigurable hardware acceleration in mobile devices | |
Li et al. | COAST: A connected open platform for smart objects | |
Isakovic et al. | A heterogeneous time-triggered architecture on a hybrid system-on-a-chip platform | |
CN115033871A (zh) | 应用程序的运行环境生成方法及装置 | |
Loubach et al. | Classification and mapping of model elements for designing runtime reconfigurable systems | |
Grüttner | Empowering mixed-criticality system engineers in the dark silicon era: Towards power and temperature analysis of heterogeneous mpsocs at system level | |
Samayoa et al. | HyperFPGA: An Experimental Testbed for Heterogeneous Supercomputing | |
Cohen et al. | Android Application Development for the Intel Platform | |
Dagli et al. | Contention-aware Performance Modeling for Heterogeneous Edge and Cloud Systems | |
Poshtkohi et al. | Implementing Parallel and Distributed Systems | |
Bilal et al. | Implementation of Basic Mathematical Operations on Openpower-ISA of Libresoc | |
Ruf et al. | TULIPP: Towards Ubiquitous Low-power Image Processing Platforms | |
Kumar et al. | SLePaaS: An Embedded Platform-as-a-Service Facilitating Research on Thermal Management of Embedded Platforms | |
Abbasi et al. | Scalable and Energy-Efficient Deep Learning for Distributed AIoT Applications Using Modular Cognitive IoT Hardware | |
Mohamed | Heterogeneous SoC Design and Verification: HW/SW Co-Exploration, Co-Design, Co-Verification and Co-Debugging | |
Andreev et al. | Using pareto optimum to choose module’s computing platforms of mobile robot with modular architecture |