Java Streams: Vytvorenie a dokončenie

Java je programovací jazyk na vysokej úrovni vyvinutý spoločnosťou Sun Microsystems. Pôvodne vytvorený na vývoj programov pre tweety a vreckové zariadenia, ale neskôr sa stal obľúbeným a obľúbeným jazykom pre vytváranie webových aplikácií. Spoločnosť Oracle získala spoločnosť Sun Microsystems v januári 2010, takže Java je teraz podporovaná a distribuovaná spoločnosťou Oracle. Java používa objektovo orientovaný programovací model a môže byť použitý na vytváranie aplikácií, ktoré môžu bežať na tom istom počítači alebo distribuované medzi servery a klientmi v sieti. Môže sa použiť aj na vytvorenie malého programového modulu alebo appletu, ktorý sa môže použiť ako súčasť webovej stránky.




Výhody

Syntax Java je podobný C ++, ale je striktne objektovo orientovaný programovací jazyk. Napríklad väčšina Java programov obsahuje triedy, ktoré sa používajú na identifikáciu objektov a metód. Metódy zase sú priradené k oddeleným triedam. Java je tiež známy ako prísnejší systém formálnych značiek ako C ++. To znamená, že premenné a funkcie musia byť jasne definované tak, aby zdrojový kód mohol detekovať chyby alebo "výnimky" ľahšie a rýchlejšie ako iné jazyky. Tiež obmedzuje iné typy chýb, ktoré môžu byť spôsobené neistými premennými alebo neurčenými typmi. Na rozdiel od spustiteľných súborov systému Windows (súbory .EXE) alebo súborov Macintosh. Súbory APP, programy Java sa nespúšťajú priamo na operačný systém. Namiesto toho sú údaje interpretované virtuálnym strojom Java alebo JVM,ktorý beží na viacerých platformách. Všetky aplikácie Java sú multiplatformné a môžu bežať na rôznych platformách, vrátane počítačov Macintosh, Windows a Unix. JVM musí byť nainštalovaný na spustenie aplikácií alebo appletov. K dispozícii ako bezplatne stiahnuť.


Prvky a princípy

Úspech a popularita Java prispeli k charakteristike jazyka. Vymenujme hlavné:
  • Programy vytvorené v jazyku Java majú kvalitu prenosnosti v sieti. Zdrojový kód je zostavený tak, aby programovací jazyk bol bytecode, ktorý môže byť spustený kdekoľvek na sieti na server alebo klient s virtuálnym strojom Java (JVM). JVM interpretuje bytecode v kóde, ktorý bude fungovať na hardvéri počítača. Naopak, väčšina programovacích jazykov, napríklad COBOL, C ++, Visual Basic alebo Smalltalk, kompiluje kód do binárneho súboru. Binárne súbory závisia od platformy, takže program napísaný pre počítač s operačným systémom Windows na báze Intel nemôže spustiť Mac, stroj Linux alebo IBM mainframe. JVM obsahuje voliteľný kompilátor Just-in-Time (JIT), ktorý dynamicky kompiluje bytecode do spustiteľného kódu ako alternatívu k interpretácii jednej inštrukcie bytecode naraz. V mnohých prípadoch je dynamická kompilácia JIT rýchlejšia ako interpretácia virtuálneho stroja.
  • Spoľahlivosť kódu. Na rozdiel od programov napísaných v jazyku C ++ av niektorých iných jazykoch neobsahujú Java objekty odkazy na externé dáta alebo iné známe objekty. Tým sa zabezpečí, že inštrukcia neobsahuje adresu uloženia v inej aplikácii alebo v samotnom operačnom systéme, kvôli ktorému programa samotný operačný systém môže skončiť alebo spôsobiť poruchu. Spoločnosť JVM vykonáva sériu kontrol na každom mieste, aby zabezpečila integritu.
  • Java je objektovo orientovaný jazyk. Objekt môže využiť to, že je súčasťou triedy objektov a zdedí kód, ktorý je spoločný pre danú triedu. Táto metóda môže byť považovaná za jednu z vlastností alebo správania objektu. Objektovo orientovaná metóda je relatívne rozšírená v modernej programovacej krajine, ale v roku 1996 len niekoľko jazykov efektívne používalo objektovo orientované koncepty a dizajnové vzory.
  • Flexibilita appletov. Aplet Java má všetky funkcie určené na rýchle spustenie.
  • Java sa ľahko pozná. Syntax jazyka je podobný C ++. Ak má vývojár jazyk C /C ++, nebudú ťažké zvládnuť tento jazyk.
  • Bežná mylná predstava je, že medzi Java a javascript existuje prepojenie. Tieto jazyky sú v syntaxe podobné, ale z konštruktívneho hľadiska existujú rôzne štruktúry.
  • Platformy

    Existujú tri kľúčové platformy, na ktorých programátori vyvíjajú aplikácie Java:
  • Java SE - Jednoduché samostatné aplikácie sa vyvíjajú pomocou Java Standard Edition. Predtým známa ako J2SE, Java SE poskytuje API potrebné na vývoj tradičných desktopových aplikácií.
  • Java EE - Java Enterprise Edition, predtým známe ako J2EE, umožňuje vytvárať komponenty servera, ktoré môžu reagovať na cyklus požiadaviek na odpoveď. Toto rozloženie vám umožňuje vytvárať aplikácie Java, ktoré môžu interagovať s internetovými klientmi, vrátane webových prehliadačov, klientov založených naCORBA a dokonca aj webové služby založené na REST a SOAP.
  • Java ME - Java tiež poskytuje jednoduchú platformu pre mobilný vývoj, známu ako Java Micro Edition, predtým známe ako J2ME. Java ME sa ukázala ako veľmi populárna platforma pre vývoj embedded zariadení, ale snažila sa uspieť v aréne vývoja smartphonov. Pokiaľ ide o vývoj smartfónov, Android sa stal mobilnou vývojovou platformou.
    Príklady použitia
    Použitím rôznych komponentov poskytovaných programom Java EE môžu vývojári ľahko písať programy, ktoré používajú populárne dizajnové návrhy softvéru a univerzálne dohodnuté pokročilé techniky. Štruktúry Struts, Spring a JavaServer Faces používajú program Java Servlet na implementáciu vzoru návrhu koncového radiča pre centralizáciu dopytov.
    Väčšina ekosystémov Java je obrovským počtom projektov s otvoreným zdrojovým kódom, softvérových platforiem a rozhraní API, ktoré vytvorili komunitu používajúcu jazyk. Apache Foundation napríklad hostí rôzne projekty založené na jazyku Java, vrátane:
  • jednoduchých protokolov Java (SLF4J).
  • Veľké platformy na spracovanie údajov.
  • Integrované platformy ako Apache Camel, Apache Axis a CXF pre vývoj RESTful webových služieb.
  • Vývojové platformy pre mikropodniky.
  • Ďalšie podniky sa budú snažiť preniesť prostredie Java EE do cloudu. Keďže vývojári vytvárajú cloudové služby, je schopnosťou rýchlo sa rozširovať tieto služby kľúčovou otázkou, ako aj schopnosť spolupracovaťcloud.

    Kritika

    syntax Java je často odsúdený k výrečnosti. Nadbytok tvorcovia a getry, silné písanie, robiť Java-medializované programu. Ako odpoveď "má niekoľko periférnych jazykov pre riešenie tohto problému, vrátane Groovy, ktorý sa rýchlo začal získavať popularitu. Ďalšou nevýhodou je, že Java programy nemôžu byť zmenšený lineárne vo svete vysoko výkonných počítačov. Vzhľadom k tomu, Java je odoslaná na predmety vnútri zložitých a paralelné operácie na základe zoznamu by mohlo viesť k nájdeniu obtok JVM riešenia. Scala jazyk rieši mnoho z nedostatkov jazyku Java, ktorý znižuje jej schopnosť meradle
    .
    Streamy Java
    Streams - programová paradigma, ktorú vynašiel J. Podkery Rodker-Morrison v neskorých 60-tych rokoch, ktorý používa termín "spracovanie údajov" na navrhovanie a vytváranie aplikácií. Prúd definuje Java aplikácií sieťové procesy komunikujú prostredníctvom dátových blokov (informačných paketov), ​​ktoré sa pohybujú pozdĺž určitej spojenie. Tieto procesy môžu byť nekonečne prepojené na vytváranie aplikácií bez zmeny ich interného obsahu. Tok prúdu je teda orientovaný na komponent. Vytvorenie toku Java je špecifická forma programovania dátových tokov. na obmedzené Nárazníky pakety informácií s určitou životnosť, zvané prístavy a samostatné pripojenie definície založené. Procesy spolupracujú prostredníctvom pripojení, ku ktorým sa pristupuje cez porty. Pripojenia sa zvyčajne vykonávajú prostredníctvom obmedzených vyrovnávacích pamätí. Veľkosť vyrovnávacej pamäte alebo maximálny početPakety, ktoré môžu obsahovať fronty, sa nazývajú pripojenia na šírku pásma. Niektoré implementácie vám umožňujú vytvoriť spojenie s kapacitou 0, čo znamená, že IP adresy dát sa okamžite prenášajú medzi procesmi odosielania a prijímania.

    Definícia

    Streamingové programovanie vidí program ako sadu procesov ("čierne skrinky"), ktoré prostredníctvom pripojení, ku ktorým procesom sa pristupuje pomocou portov. Proces je inštanciou komponentu, ktorá pracuje súbežne s inými procesmi, vrátane iných príkladov tej istej zložky. Všeobecným prístupom v postupnom programovaní je konceptualizovať program ako sériu prúdov a podtokov, ktoré sa vyskytujú prostredníctvom série súvisiacich procesov. Paralelnosť sa realizuje obmedzením vzťahu medzi procesmi využívajúcimi toky paketových informácií po dokončení toku Java.
    Vizuálne programovanie v tomto kontexte zahŕňa spojenie textových komponentov alebo grafov v dvojrozmernom pohľade, ktorý využíva schopnosť rozpoznávať ľudské obrazy a vizuálne štýly myslenia. Programovanie textu je predtým k dispozícii na úrovni komponentov a pre jednoduché aplikácie - na úrovni siete. Hlavnými črtami sú opätovné použitie kódu, testovanie a paralelnosť.

    Úvod

    Streamovanie programovania definuje aplikácie používajúce metaforu "data factory". Aplikácia sa nepovažuje za jediný sekvenčný proces, ktorý sa začína v určitom časovom bode, a potom vykoná jednu operáciu na jednotku času až do úplného dokončenia, ale ako sieťasynchrónne procesy spojené s prúdmi štruktúrovaných dátových blokov nazývaných informačné pakety (IP). Sieť je definovaná externými procesmi ako zoznam spojení, ktoré sa interpretujú ako súčasť softvéru, obyčajne nazývaného plánovač. Procesy spolupracujú prostredníctvom pripojenia pevnej kapacity. Pripojenie sa pripája k procesu pomocou portu, ktorý má názov dohodnutý medzi procesným kódom a definíciou siete. Jeden a ten istý kód môže vykonávať viac ako jeden proces. V akejkoľvek dobe môže táto adresa IP patriť iba jednému procesu alebo byť na ceste medzi dvoma procesmi. Porty môžu byť jednoduché alebo masívne. Keďže procesy vlákien Java môžu naďalej bežať neurčito, so vstupnými a výstupnými dátami, aplikácie používajúce túto metódu zvyčajne pracujú menej ako bežné aplikácie a optimálne používajú všetky procesory na stroji.

    Sieť

    Definícia siete sa zvyčajne schematicky transformuje na zoznam pripojení v niektorom jazyku alebo na nižšej úrovni. Java I /O toky sú často jazykom vizuálneho programovania na tejto úrovni. Zložité definície sietí majú hierarchickú štruktúru, ktorá pozostáva z podsietí s flexibilnou konektivitou. Ďalšie príklady Java vlákien sú založené na tradičných programovacích jazykoch. Konkrétne RaftLib používa operátory typu C ++ a iostream, aby spustili tok Java.

    Popis procesu

    Práca s vláknami Java zobrazuje najdôležitejšiu väzbu údajovslabé spojenie medzi komponentmi. Koncept slobodnej komunikácie je zase spojený s koncepciou architektúry orientovanej na služby. Pool s vláknami Java spĺňa množstvo kritérií pre túto architektúru.
    Metóda streamingu prispieva k funkčnému štýlu na vysokej úrovni špecifikácií, ktoré zjednodušujú vývoj hypotetických predpokladov pre správanie sa systému. Príklad tokov Java je model distribuovaného dátového prenosu pre konštruktívny návrh a analýzu sémantiky distribuovaného protokolu.

    Vlastnosti

    Programovanie streamovania má tieto jedinečné vlastnosti:
  • Štruktúra: diagramy a komponenty majú jasnú štruktúru (rozhranie, stav a správanie).
  • Návrh systému je rozdelený do dvoch vrstiev: grafický (zvyčajne vizuálny) a komponent (zvyčajne textový). Pokiaľ ide o architektúru softvéru, podporujú sa rozličné úlohy. Ako príklad: Java podprocesy sú riadené funkciami na hranie rolí Grafický návrhár a komponent-implementátor.
  • Princíp paralelnosti: každý proces funguje vo svojom toku, pridruženom programe alebo inom prostredí.
  • ​​
  • Aktivácia - z hľadiska návrhára sa súčasne vykoná grafický bod procesu a funkcia plánovacieho softvéru vám umožňuje distribuovať čas procesora a spravovať ďalšie služby, ktoré sú potrebné na podporu tejto funkcie.
  • Informačné pakety pri vytváraní Java streamu majú životný cyklus a patria len do jedného procesu.
  • Komponenty môžu mať viac vstupov alebo výstupov.
  • Aplikácia je graf, nie strom. Môžu sa použiť cyklické zlúčeniny (slučky spätnej väzby).
  • Spojenia je možné kombinovať do grafu, čo znamená, že na vstupnom portu prichádzajú pakety rôznych oblúkov. Pripojenia by sa mali rozdeliť prostredníctvom komponentu kvôli rôznorodosti distribučných stratégií a pravidiel vlastníctva IP.
  • Pripojenia sa implementujú ako obmedzené vyrovnávacie pamäte s objemom od 0 do čísla obmedzeného implementáciou.
  • Príklady

    Komponenty dátových tokov Java často tvoria doplnkové dvojice. V bežnej logike programátor rýchlo zistí, že ani vstupné ani výstupné štruktúry nemôžu byť použité na riadenie toku hierarchie riadenia hovorov. V záhlaví zavádzania Java popis riešenia ponúka riešenie. "Slova" sú explicitne opísané v popise problému, takže vývojár by ich mal považovať za informačné pakety (IP). Vo vstupných tokoch Java neexistuje žiadna hierarchia hovorov, takže programátor nemusí nastavovať prioritu. Pri generovaní toku Java sa môžu na indikáciu parametrických informácií, ako je požadovaná dĺžka výstupného záznamu alebo názvy súborov, použiť zdrojové informačné pakety (IIP). IIP sú dátové bloky, ktoré sú priradené k portu v definícii siete, ktorý sa stáva "bežným" adresami IP, keď sa príznak "prijatý" vydáva do príslušného portu.

    Aktualizácia šarže

    Tento typ programu zahŕňa prenos súboru informácií (zmien, doplnení a odstránení) do hlavného súboru a vytvorenie aktualizovaného hlavného súboru a jedného alebo viacerých prehľadov. Nový tok Java stačíJe ťažké šifrovať pomocou synchrónneho procedurálneho kódu, pretože dva (niekedy aj viac) vstupné toky musia byť synchronizované. V streamingovej architektúre umožňuje opätovne použiteľná zložka oveľa jednoduchšie zaznamenávať tento typ aplikácie, pretože tento nástroj kombinuje dva prúdy a vkladá údaje IP na špecifikáciu úrovní skupiny. Predpokladajme, že jedna alebo dve vlákna Java pozostávajú z adries IP s kľúčovými hodnotami 1 2 a 3 a IP adresy druhého vlákna majú kľúčové hodnoty 111221 313233 a 41, kde prvá číslica zodpovedá hodnote hlavného kľúča. Pomocou zátvoriek na zobrazenie adries IP zhromaždený výstupný prúd bude vyzerať takto: (m1 d11 d12) (m2 d21) (m3 d31 d32d33) (d41).

    Multiplexné procesy

    Streamovanie programovania podporuje multiplexovanie procesov. Pretože sú komponenty iba na čítanie, môžu byť ľubovoľné počty inštancií tejto zložky ("procesy") vzájomne spúšťané asynchrónne. Keď počítače mali jeden procesor, bolo to užitočné, keď pokračovali mnohé I /O operácie na vláknach Java. Teraz, keď stroje majú viac procesorov, stáva sa to naozaj užitočným nástrojom. Podprocesy Java Thread pracujú na princípe multitaskingu.

    DrawFBP ako nástroj

    Streamovanie programovania je paradigmom, kde sú programy vytvorené z komponentov, ktoré majú súbor špecifických vstupných a výstupných portov. Tieto porty sú spojené, aby vytvorili graf, ktorý definuje logiku a tok dát. DrawFBP je desktopová aplikácia, ktorá môže definovať vývojové diagramy Java a C #. Toto je najviac funkčnéstreamingové programovacie rozhranie, ale je trochu obmedzené schopnosťami firewallu Java a neschopnosťou introspekcie informácií dostupných cez rozhranie na stiahnutie komponentov. Kľúčom k rozhraniu je zjednodušiť vytváranie a pochopenie programov založených na metóde toku.

    Súvisiace publikácie