Rakennusmenetelmien tutkimus ja kehittäminen. Hajautetut ohjausalustat

Alun perin sen tekijät pitivät World Wide Webiä (WWW) "tiedonvaihdon tilana, jossa ihmiset ja tietokoneet voivat kommunikoida keskenään". Siksi ensimmäiset verkkosovellukset olivat primitiivisiä tiedostopalvelimia, jotka palauttivat staattisia HTML-sivuja niitä pyytäneille asiakkaille. Siten Web aloitti dokumenttilähtöisenä.

Seuraava vaihe Webin kehityksessä oli sovellusten käsitteen syntyminen, joka perustui CGI:n (tai FastCGI:n) kaltaisiin rajapintoihin ja myöhemmin ISAPI:iin. Yhteinen yhdyskäytävä Interface (CGI) on tavallinen palvelinliitäntä, jonka avulla voit ajaa palvelinsovelluksia, joita kutsutaan URL-osoitteen kautta. Tällaisten sovellusten syöttötiedot olivat HTTP-otsikon sisältö (ja pyynnön runko POST-protokollaa käytettäessä). CGI-sovellukset loivat HTML-koodin, joka palautettiin selaimeen. Suurin ongelma CGI-sovelluksissa oli, että jokaista asiakaspyyntöä kohden palvelin suoritti CGI-ohjelman reaaliajassa ja latasi sen erilliseen osoiteavaruuteen.

Internet Server API:n (ISAPI) tulo ei ainoastaan ​​ratkaissut CGI-sovelluksissa syntyneitä suorituskykyongelmia, vaan tarjosi kehittäjille myös monipuolisemman ohjelmointirajapinnan. ISAPI DLL:t voidaan liittää tiedostopäätteisiin erityisen metakannan kautta. Nämä kaksi mekanismia (CGI ja ISAPI) muodostivat perustan ensimmäisen tyyppisten verkkosovellusten luomiselle, joissa palvelinkoodi suoritettiin asiakkaan toiminnoista riippuen. Siten Web-sivujen sisällön dynaaminen generointi tuli mahdolliseksi, eikä Webin sisältö ollut enää puhtaasti staattista.

ISAPI-käyttöliittymä on Microsoftin ominaisuus Internet-tiedot palvelin. ISAPI-sovellukset ovat dynaamisia linkkikirjastoja (DLL), jotka toimivat Web-palvelimen osoitetilassa. Myös muilla Web-palvelimilla oli jonkin ajan kuluttua mahdollisuus ajaa kirjastoina toteutettuja sovelluksia. Netscape-verkkopalvelimien tapauksessa tätä ohjelmointirajapintaa kutsuttiin NSAPI:ksi (Netscape Server API). Melko suositulla Apache Web Serverillä on myös mahdollisuus ajaa kirjastoina toteutettuja Web-sovelluksia; tällaisia ​​kirjastoja kutsutaan nimellä Apache DSO (Dynamic Shared Objects).

Luonnollisesti sekä CGI- että ISAPI-sovelluksia käytettäessä kehittäjät ratkaisivat periaatteessa samat tehtävät, joten luonnollinen askel oli uuden, korkeatasoisen käyttöliittymän synty, joka yksinkertaisti HTML-koodin generoinnin tehtäviä, mahdollisti komponenttien ja tietokantojen käytön. ISAPI-suodattimen pohjalta rakennetusta Active Server Pages (ASP) -objektimallista tuli tällainen käyttöliittymä.

ASP:n pääidea sovellusrajapinnan luomisessa on, että Web-sivu sisältää koodinpätkät, jotka Web-palvelin tulkitsee ja joiden sijaan käyttäjä saa näiden koodinpätkien suorittamisen tuloksen.

Pian ASP:n tulon jälkeen luotiin muita tekniikoita, jotka toteuttavat ajatuksen sijoittaa koodi Web-palvelimen suorittaman Web-sivun sisään. Tunnetuin niistä on nykyään JSP (Java Server Pages) -tekniikka, jonka perusideana on kääntää Java-koodi (servlet) ensimmäisen käyttökerran jälkeen, suorittaa tämän servletin menetelmät ja sijoittaa näiden menetelmien tulokset selaimelle lähetettävään tietojoukkoon.

Active Server Pages -teknologian uusin versio on ASP .NET, joka on avain Microsoft .NET Framework -arkkitehtuuriin. ASP .NET:n avulla voit luoda Web-sovelluksia ja verkkopalveluita, jotka eivät ainoastaan ​​mahdollista dynaamista HTML-sivujen luontia, vaan myös integroituvat palvelinpuolen komponentteihin ja joita voidaan käyttää useiden nykyaikaisten Web-sovelluskehittäjien kohtaamien liiketoimintaongelmien ratkaisemiseen.

Yleensä Web-palvelinasiakas ei voi olla vain henkilökohtainen tietokone, joka on varustettu perinteisellä Web-selaimella. Samanaikaisesti mobiililaitteiden yleistymisen kanssa on ilmaantunut ongelma web-palvelimien kautta näiden laitteiden tulkittavissa olevien tietojen toimittamisessa. Koska mobiililaitteilla on erilaiset ominaisuudet kuin henkilökohtaisilla tietokoneilla (rajoitettu näytön koko, vähän muistia ja usein kyvyttömyys näyttää muuta kuin muutaman rivin mustavalkoista tekstiä), niille on olemassa muita tiedonsiirtoprotokollia (WAP - Wireless Access Protocol) ja vastaavia merkintäkieliä (WML - Wireless Markup Language, СHTML - Compact HTML jne.). Tällöin tehtävänä on siirtää tiedot mobiililaitteeseen sopivassa muodossa (ja tätä tarkoitusta varten on olemassa erityisiä sivustoja), tai mikä näyttää kätevämmältä, laitteen tyyppi tunnistetaan, kun se pääsee palvelimelle ja lähdedokumentti (esimerkiksi XML-muodossa) muunnetaan tämän vaatimaan muotoon. mobiililaite(esimerkiksi XSLT-muunnoksen avulla).

Toinen tapa tukea erityyppisiä asiakkaita on luoda "älykkäitä" palvelinkomponentteja, jotka voivat luoda erilaista koodia asiakastyypistä riippuen. Tämä lähestymistapa on toteutettu erityisesti Microsoft ASP .NET:ssä.

Toinen Web-sovellusten asiakasosien kehityssuunta on ollut sovelluslogiikan osan (kuten syöttötietojen validointi) sijoittaminen itse web-selaimeen. Erityisesti nykyaikaiset verkkoselaimet pystyvät tulkitsemaan komentosarjakieliä (VBScript, JavaScript), koodia, joka, kuten ASP-koodi, on upotettu Web-sivulle, mutta jota ei tulkitse Web-palvelin, vaan selain ja vastaavasti se suoritetaan asiakaslaitteella. Sitä paitsi, nykyaikaiset selaimet pystyvät näyttämään ja suorittamaan Java-sovelmia - erityisiä Java-sovelluksia, jotka käyttäjä saa osana Web-sivua, ja osa selaimista voi toimia myös ActiveX-komponenttien säilöinä - erityiset COM-palvelimet, jotka toimivat selaimen osoitetilassa, myös osana Web-sivua. Sekä Java-sovelmat että ActiveX-komponentit voivat toteuttaa melkein mitä tahansa toimintoja.

Huomaa, että käytetyn datan määrän ja verkkosivustojen kävijämäärän kasvaessa myös verkkosovellusten luotettavuudelle, suorituskyvylle ja skaalautuvuuden vaatimukset kasvavat. Seuraava vaihe tällaisten sovellusten kehityksessä oli web-sovellukseen toteutetun liiketoimintalogiikan ja usein tietojenkäsittely- ja tapahtumapalveluiden erottaminen sen käyttöliittymästä. Tällöin ns esitysosa jää yleensä itse web-sovellukseen ja liiketoimintalogiikka, tietojenkäsittely ja tapahtuman toteutus siirretään sovelluspalvelin liikeobjekteina. Riippuen tyypistä sovelluspalvelin Tällaiset liiketoimintaobjektit voivat olla itsesuorittavia COM-palvelimia, CORBA-palvelimia tai COM+-objekteja, jotka suorittavat palveluita. Windowsin komponentit 2000 tai EJBs (Enterprise Java Beans) suoritettava tiedosto sovelluspalvelin joka tukee J2EE (Java 2 Enterprise Edition) -spesifikaatiota. Kuten tietojen käyttömekanismi tällaiset objektit voivat käyttää OLE DB:tä, ODBC:tä, JDBC:tä (riippuen siitä, kuinka liiketoimintaobjekti on toteutettu).

Melko usein tällaiset liikeobjektit tarjoavat pääsyn yritysten tietojärjestelmien tietoihin tai toteuttavat osan niiden toiminnoista. Usein ne mahdollistavat esimerkiksi Verkkosivuston integroinnin CRM-järjestelmiin (Customer Relationship Management) tai ERP-järjestelmiin (Enterprise Resource Planning), jolloin voidaan tallentaa tietoja sivuston vierailijoista yritysjärjestelmiin ja tarjota potentiaalisille asiakkaille tietoa tilattavissa olevista tuotteista.

Koska nykyaikainen Internet ei ole niinkään väline yrityksen läsnäolon osoittamiseen markkinoilla tai markkinoinnin työkalu, vaan liiketoiminnan työkalu, tällaisten asiakassuhteiden toteuttaminen Internetin kautta, kuten tavaroiden ja palveluiden myynti, tulee varsin tärkeitä tehtäviä. Täällä yritysten ja kuluttajien välisistä verkkokaupan ratkaisuista tulee varsin tärkeitä. Yhtä tärkeitä tehtäviä ovat verkkosovellusten integrointi kumppanien tietoihin ja sovelluksiin "yritysten välisten" (B2B - business-to-business) -järjestelmän toteuttamiseksi, joka mahdollistaa yritysten välisten kauppatapahtumien tekemisen, tuoteluetteloiden vaihtamisen, huutokauppojen pitämisen, sähköisten kaupankäyntialustojen luomisen.

Huomaa, että oleminen olennainen osa Tällaisessa ratkaisussa Web-palvelimen on voitava paitsi suorittaa sovelluksia ja olla vuorovaikutuksessa niiden kanssa sovelluspalvelin, mutta käyttää myös integraatiopalveluita, sovellus- ja tiedonhallintapalveluita sekä kehittäjäpalveluita.

Seuraava askel Web-sovellusten kehityksessä oli yritystietojen ja kumppanitietojen käyttömahdollisuuksien lisäksi pääsy yrityssovelluksiin. Ratkaisemme tämän ongelman, joka liittyy verkkosovellusten integrointiin yritysten sisäisiin tietojärjestelmiin ja sovelluksiin, jotka tarjoavat vuorovaikutusta asiakkaiden ja kumppaneiden kanssa, käyttämällä erikoisratkaisuja kutsutaan yritysportaaleiksi.

Ei ole harvinaista, että portaaliratkaisuun sisältyy web-sivustojen sisällönhallintatyökaluja, sillä suurten yritysten verkkosivujen ja portaalien kautta käyttäjien saatavilla oleva datamäärä on nyt niin suuri, ettei näitä tietoja ole mahdollista hallita "manuaalisesti".

Yhteenvetona yllä olevasta voimme korostaa verkkoarkkitehtuurin pääpiirteitä [ , ]:

  • ei tarvitse käyttää lisäohjelmistoja asiakaspuolella - tämän avulla voit toteuttaa asiakasosan automaattisesti kaikilla alustoilla;
  • kyky yhdistää lähes rajoittamaton määrä asiakkaita;
  • Tietojen säilytyksen yhdestä sijainnista ja tietokannan hallintajärjestelmän olemassaolosta johtuen vähimmäisvaatimukset tietojen eheyden säilyttämiselle tarjotaan;
  • käytettävyys, kun palvelin ja viestintäkanavat ovat toiminnassa;
  • saavutettavuus, jos palvelin tai viestintäkanavat eivät toimi;
  • Web-palvelimen ja tiedonsiirtokanavien melko alhainen nopeus;
  • tietomäärän suhteen - Web-järjestelmien arkkitehtuurilla ei ole merkittäviä rajoituksia.

Kaavamaisesti tällainen arkkitehtuuri (kolmitasoisessa versiossa) voidaan esittää kuvan 1 mukaisesti. 5.9.


Riisi. 5.9.

5.1.8. Palvelukeskeinen arkkitehtuuri

Monet yllä kuvatuista tehtävistä, joita syntyy nykyaikaisten Web-sovellusten rakentamisessa, on nyt delegoitu Web-palveluihin - alustalle, objektimallille ja asiakasriippumattomille ohjelmistokomponenteille, joita voidaan kutsua asiakasverkkosovelluksista (sekä itse Web-palveluista) HTTP- ja XML-pohjaisen SOAP-protokollan kautta. Web-palvelujen kuvaamiseen käytetään XML-tyyppistä WSDL-kieltä ja web-palvelurekisterien järjestämiseen, joista kehittäjät ja yritykset voivat etsiä tarvitsemiaan palveluita sekä julkaista palveluistaan ​​tietoja, UDDI-rajapintaa.

Verkkopalveluiden tuesta on tullut yksi tärkeimmistä strategisista suunnista monille julkaisuun erikoistuneille yrityksille sovelluspalvelimia, tietokannan hallintajärjestelmät ja sovelluskehitystyökalut.

(SOA, palvelukeskeinen arkkitehtuuri)- modulaarinen lähestymistapa ohjelmistokehitykseen, joka perustuu palvelujen (palveluiden) käyttöön standardoiduilla liitännöillä.

OASIS (Open Standards Organization for Structured Information) määrittelee SOA:n seuraavasti (OASIS Reference Model for Service Oriented Architecture V 1.0): Palvelukeskeinen arkkitehtuuri on eri omistajien vastuulla olevien hajautettujen tietoresurssien, kuten sovellusten ja datan, organisoinnin ja käytön paradigma, jotta kuluttaja saavuttaa halutut tulokset, jotka voivat olla: loppukäyttäjä tai muu sovellus.

SOA perustuu IT-toiminnallisten elementtien uudelleenkäytön periaatteisiin, ohjelmistojen toiminnallisuuden päällekkäisyyksien poistamiseen, vakiotoimintaprosessien yhtenäistämiseen, yrityksen toimintamallin siirtämiseen keskitettyihin prosesseihin sekä toimiva organisaatio perustuu teolliseen integraatioalustaan.

Ohjelmakomponentit voidaan jakaa eri verkkosolmuihin, ja niitä tarjotaan itsenäisinä, löyhästi kytkettyinä, vaihdettavina sovelluspalveluina. SOA:n mukaisesti kehitetyt ohjelmistopaketit toteutetaan usein verkkopalveluiden kokonaisuutena, joka on integroitu tunnettuja standardiprotokollia (SOAP, WSDL jne.) käyttäen.

SOA-ohjelmakomponentin käyttöliittymä tarjoaa kapseloinnin tietyn komponentin (käyttöjärjestelmä, alusta, ohjelmointikieli, toimittaja jne.) toteutustiedot muista komponenteista. Näin ollen SOA tarjoaa joustavan ja tyylikkään tavan yhdistää ja käyttää uudelleen komponentteja monimutkaisten hajautettujen ohjelmistojärjestelmien rakentamiseen.

SOA on vakiintunut suurten yritysten ohjelmistosovellusten rakentamiseen. Useat kehittäjät ja integraattorit tarjoavat SOA-pohjaisia ​​työkaluja ja ratkaisuja (esim IBM WebSphere, Oracle/BEA Aqualogic, Microsoft Windows Communication Foundation, SAP NetWeaver, IVC Jupiter, TIBCO, Diasoft).

SOA:n käytön päätavoitteet suurissa tietojärjestelmissä, yritystasolla ja sitä korkeammissa ovat:

  • vähentää sovelluskehityksen kustannuksia virtaviivaistamalla kehitysprosessia;
  • parannettu koodin uudelleenkäyttö;
  • riippumattomuus käytetyistä alustoista, työkaluista ja kehityskielistä;
  • luotavien järjestelmien skaalautuvuuden lisääminen;
  • luotavien järjestelmien hallittavuuden parantaminen.

SOA-periaatteet:

  • arkkitehtuuri sellaisenaan ei ole sidottu mihinkään tiettyyn tekniikkaan;
  • järjestelmän organisaation riippumattomuus käytetystä laskenta-alustasta (alustoista);
  • järjestelmän organisaation riippumattomuus sovelletuista ohjelmointikielistä;
  • riippumattomien palvelujen käyttö erityisiä sovelluksia, joissa on yhtenäiset käyttöliittymät niihin pääsyä varten;
  • palvelujen järjestäminen löyhästi kytkettyinä komponentteina kiinteistöjärjestelmiin.

Arkkitehtuuri ei ole sidottu mihinkään tiettyyn tekniikkaan. Se voidaan toteuttaa käyttämällä laajaa valikoimaa teknologioita, mukaan lukien tekniikat, kuten REST, RPC, DCOM, CORBA tai verkkopalvelut. SOA voidaan toteuttaa jollakin näistä protokollista ja se voi esimerkiksi käyttää lisäksi mekanismia tiedostojärjestelmä, tiedonvaihtoa varten.

Pääasia, joka erottaa SOA:sta, on itsenäisten palvelujen käyttö, joissa on tarkasti määritellyt rajapinnat, joita tehtäviensä suorittamiseksi voidaan kutsua jollain standardinmukaisella tavalla edellyttäen, että palvelut eivät tiedä etukäteen mitään niitä kutsuvasta sovelluksesta ja sovellus ei tiedä, kuinka palvelut suorittavat tehtävänsä.

SOA voidaan myös ajatella tietojärjestelmäarkkitehtuurin tyylinä, joka mahdollistaa sovellusten rakentamisen rakentanut löyhästi kytkettyjen ja vuorovaikutteisten palvelujen yhdistelmät. Nämä palvelut toimivat vuorovaikutuksessa jonkin hyvin määritellyn alustariippumattoman ja kieliriippumattoman käyttöliittymän (esimerkiksi WSDL) perusteella. Rajapintamäärittely piilottaa palvelun kielikohtaisen toteutuksen.

Siten SOA-pohjaiset järjestelmät voivat olla riippumattomia kehitysteknologioista ja -alustoista (kuten Java, .NET jne.). Esimerkiksi .Net-alustalla toimivat C#-palvelut ja Java EE -alustoilla toimivat Java-palvelut voidaan yhtä hyvin kutsua yleisellä yhdistelmäsovelluksella. Yhdellä alustalla toimivat sovellukset voivat soittaa muilla alustoilla toimiviin palveluihin, mikä helpottaa sitä uudelleenkäyttö komponentit.

, , Terminaali, Sovelluspalvelin, Tietokantapalvelin, Hajautettu järjestelmäarkkitehtuuri, , Palvelukeskeinen arkkitehtuuri.

Avoimen lähdekoodin ohjelmistoista on tullut joidenkin suurimpien verkkosivustojen rakennuspalikka. Kun nämä sivustot ovat kasvaneet, niiden arkkitehtuurille on syntynyt parhaita käytäntöjä ja ohjeita. Tämän luvun tarkoituksena on kattaa joitakin keskeisiä kysymyksiä, jotka on otettava huomioon suunnitellessa suuria verkkosivustoja, sekä joitakin näiden tavoitteiden saavuttamiseen käytettyjä peruskomponentteja.

Tämän luvun painopiste on verkkojärjestelmien analyysissä, vaikka osa materiaalista voidaan ekstrapoloida muihin hajautetuihin järjestelmiin.

1.1 Hajautettujen verkkojärjestelmien rakentamisen periaatteet

Mitä tarkalleen ottaen tarkoittaa skaalautuvan verkkosivuston tai sovelluksen luominen ja hallinta? Alkeellisella tasolla tämä on yksinkertaisesti käyttäjien yhdistämistä etäresurssit Internetin kautta. Ja resurssit tai pääsy näihin resursseihin, jotka ovat hajallaan useilla palvelimilla ja ovat linkki, joka varmistaa verkkosivuston skaalautuvuuden.

Kuten useimmat asiat elämässä, web-palvelun rakentamisen suunnitteluun varaamalla aikaa voi päästä pitkälle. joidenkin suurten verkkosivustojen taustalla olevien näkökohtien ja kompromissien ymmärtäminen voi maksaa itsensä järkevämpien päätösten muodossa pienempiä verkkosivustoja rakennettaessa. Alla on joitain keskeisiä periaatteita, jotka ohjaavat suurten verkkojärjestelmien suunnittelua:

  • Saatavuus: kesto terve tila verkkosivusto on kriittinen monien yritysten maineelle ja toiminnallisuudelle. Joillekin suurille verkkokaupoille, jos ne eivät ole käytettävissä edes muutaman minuutin ajan, seurauksena voi olla tuhansien tai miljoonien dollarien tulojen menetys. Näin ollen jatkuvasti saatavilla olevien ja vikasietoisten järjestelmien kehittäminen on sekä liiketoiminnan että teknologian perusvaatimus. Korkea käytettävyys hajautetuissa järjestelmissä edellyttää huolellista harkintaa avainkomponenttien redundanssista, nopea toipuminen osittaisten järjestelmävikojen jälkeen ja kapasiteetin tasainen pienentäminen ongelmien ilmetessä.
  • Esitys: Verkkosivuston suorituskyky on tullut tärkeä indikaattori useimmille sivustoille. Verkkosivuston nopeus vaikuttaa käyttäjäkokemukseen ja tyytyväisyyteen sekä hakukonesijoituksiin – tekijä, joka vaikuttaa suoraan yleisön pysyvyyteen ja tuloihin. Tämän seurauksena avain on luoda järjestelmä, joka on optimoitu nopeille vastauksille ja alhaiselle latenssille.
  • Luotettavuus: järjestelmän on oltava luotettava, jotta erityinen pyyntö vastaanottaa tietoja yhtenäisesti palautti tietyt tiedot. Jos data muuttuu tai päivitetään, saman kyselyn on palautettava uusia tietoja. Käyttäjien on tiedettävä, että jos jotain kirjoitetaan tai tallennetaan järjestelmään, voit olla varma, että se pysyy paikallaan, jotta tiedot voidaan hakea myöhemmin.
  • Skaalautuvuus: Mitä tahansa suuria hajautettuja järjestelmiä, koko on vain yksi huomioitava kohde luettelossa. Yhtä tärkeitä ovat pyrkimykset lisätä prosessointikapasiteettia. suuria määriä kuormitusta, jota yleensä kutsutaan järjestelmän skaalautuvuudeksi. Skaalautuvuus voi viitata järjestelmän eri parametreihin: kuinka paljon ylimääräistä liikennettä se pystyy käsittelemään, kuinka helppoa tallennuskapasiteettia on laajentaa tai kuinka paljon muita tapahtumia voidaan käsitellä.
  • Ohjattavuus: helppokäyttöisen järjestelmän suunnittelu on toinen tärkeä tekijä. Järjestelmän hallittavuus vastaa "ylläpito"- ja "päivitys"-toimintojen skaalautuvuutta. Hallittavuudessa on otettava huomioon ilmaantuvien ongelmien diagnosoinnin ja ymmärtämisen helppous, päivityksen tai muokkaamisen helppous sekä järjestelmän oikukas toiminta. (Toisin sanoen toimiiko se odotetulla tavalla ilman vikoja tai poikkeuksia?)
  • Hinta: Kustannus on tärkeä tekijä. Tämä voi tietysti sisältää laitteisto- ja ohjelmistokustannuksia, mutta on myös tärkeää ottaa huomioon muut järjestelmän käyttöönoton ja ylläpidon edellyttämät näkökohdat. On otettava huomioon kehittäjälle järjestelmän rakentamiseen tarvittava aika, järjestelmän käyttöönottoon tarvittava operatiivisen vaivan määrä ja jopa riittävä koulutustaso. Kustannukset edustavat omistamisen kokonaiskustannuksia.

Jokainen näistä periaatteista on perusta suunnittelupäätösten tekemiselle. hajautettu verkkoarkkitehtuuri. Ne voivat kuitenkin olla myös ristiriidassa keskenään, koska yhden tavoitteiden saavuttaminen tapahtuu muiden laiminlyönnin kustannuksella. Yksinkertainen esimerkki: useiden palvelimien lisääminen suorituskyvyn (skaalautuvuus) ratkaisuksi voi lisätä hallittavuuden (sinun on käytettävä ylimääräistä palvelinta) ja palvelimien ostamisen kustannuksia.

Kaikenlaista verkkosovellusta kehitettäessä on tärkeää ottaa nämä keskeiset periaatteet huomioon, vaikka se olisi varmistua siitä, että projekti saattaa uhrata yhden tai useamman niistä.

1.2 Perustiedot

Kun harkitaan järjestelmäarkkitehtuuria, on käsiteltävä useita kysymyksiä, kuten mitä komponentteja käytetään, miten ne sopivat yhteen ja mitä kompromisseja voidaan tehdä. Skaalaamiseen sijoittaminen ilman selvää tarvetta ei ole fiksu liiketoimintapäätös. Suunnittelun ennakointi voi kuitenkin säästää paljon aikaa ja resursseja tulevaisuudessa.

Tämä osio keskittyy joihinkin perustekijöihin, jotka ovat välttämättömiä melkein kaikille suurille verkkosovelluksille: Palvelut,
redundanssi, segmentointi, Ja vikojen käsittely. Jokainen näistä tekijöistä sisältää valintoja ja kompromisseja, erityisesti edellisessä osiossa kuvattujen periaatteiden yhteydessä. Selvyyden vuoksi otetaan esimerkki.

Esimerkki: Kuvanhallintasovellus

Olet todennäköisesti julkaissut kuvia verkossa aiemmin. Suurille sivustoille, jotka tallentavat ja toimittavat useita kuvia, on haasteita luoda kustannustehokas, erittäin luotettava arkkitehtuuri, jolle on ominaista alhaiset vasteviiveet (nopea haku).

Kuvittele järjestelmä, jossa käyttäjät voivat ladata kuvansa keskuspalvelimelle ja kuvia voidaan pyytää verkkosivustolinkin tai API:n kautta, kuten Flickr tai Picasa. Kuvauksen yksinkertaistamiseksi oletetaan, että tällä sovelluksella on kaksi päätehtävää: kyky ladata (kirjoittaa) kuvia palvelimelle ja pyytää kuvia. Tehokas lastaus on tietysti tärkeä kriteeri, mutta etusija on Nopea toimitus käyttäjien pyynnöstä (esimerkiksi kuvia voidaan pyytää näytettäväksi verkkosivulla tai muussa sovelluksessa). Tämä toiminto on samanlainen kuin mitä web-palvelin tai CDN (Content Delivery Network) reunapalvelin voi tarjota. CDN-palvelin tallentaa tyypillisesti tietoobjekteja useisiin paikkoihin, joten niiden maantieteellinen/fyysinen sijainti on lähempänä käyttäjiä, mikä parantaa suorituskykyä.

Muita tärkeitä järjestelmän ominaisuuksia:

  • Tallennettujen kuvien määrä voi olla rajoittamaton, joten tallennustilan skaalautuvuus on otettava huomioon tästä näkökulmasta.
  • Kuvien latausten/pyyntöjen viiveen pitäisi olla alhainen.
  • Jos käyttäjä lataa kuvan palvelimelle, hänen tietojensa on säilyttävä aina ehjinä ja saatavilla.
  • Järjestelmän tulee olla helppo ylläpitää (hallinta).
  • Koska kuvan isännöinti ei ole kovin kannattavaa, järjestelmän on oltava kustannustehokas.

Toinen tämän suunnittelun mahdollinen ongelma on, että verkkopalvelimella, kuten Apache tai lighttpd, on yleensä yläraja samanaikaisten yhteyksien määrälle, jonka se pystyy käsittelemään (oletusarvo on noin 500, mutta se voi olla paljon suurempi), ja kirjoittaminen voi nopeasti käyttää tämän rajan, jos liikennettä on paljon. Koska lukeminen voi olla asynkronista tai hyödyntää muita suorituskyvyn optimointeja, kuten gzip-pakkausta tai paloittelua, verkkopalvelin voi vaihtaa syötteen lukuja nopeammin ja vaihtaa asiakkaiden välillä, jolloin se palvelee paljon enemmän pyyntöjä kuin enimmäismäärä yhteydet (kun Apache- ja max-yhteydet on asetettu arvoon 500, on täysin mahdollista palvella useita tuhansia lukupyyntöjä sekunnissa). Kirjoitukset sen sijaan pitävät yhteyden auki koko latauksen ajan. Joten 1 Mt:n tiedoston siirtäminen palvelimelle voi kestää yli 1 sekunnin useimmissa kotiverkoissa, jolloin verkkopalvelin pystyy käsittelemään vain 500 yhtäaikaista kirjoitusta.


Kuva 1.2: Lukemisen ja kirjoittamisen erottaminen

Tällaisen mahdollisen ongelman ennakointi viittaa tarpeeseen erottaa luku- ja kirjoituskuvat itsenäisiksi palveluiksi, kuten kuvassa . Tämä ei salli vain skaalata jokaista niistä erikseen (kuten on todennäköistä, että teemme aina lisää lukemia kuin merkinnät), mutta ole myös tietoinen siitä, mitä kussakin palvelussa tapahtuu. Lopuksi se linjaa ongelmia, joita saattaa ilmetä tulevaisuudessa, mikä helpottaa hitaan lukukäytön ongelman diagnosointia ja arviointia.

Tämän lähestymistavan etuna on, että pystymme ratkaisemaan ongelmia toisistaan ​​riippumatta - ilman, että meidän tarvitsee ajatella tarvetta kirjoittaa ja hakea uusia kuvia samassa yhteydessä. Molemmat palvelut käyttävät edelleen globaalia kuvakorpusta, mutta tietylle palvelulle sopivilla menetelmillä ne pystyvät optimoimaan oma suoritus(esimerkiksi asettamalla pyyntöjä jonoon tai tallentamalla suosittuja kuvia välimuistiin - tästä lisää myöhemmin). Sekä ylläpidon että kustannusten osalta jokainen palvelu voidaan skaalata itsenäisesti tarpeen mukaan. Ja tämä on myönteinen tekijä, koska niiden yhdistäminen ja sekoittaminen voi vahingossa vaikuttaa niiden suorituskykyyn, kuten yllä kuvatussa skenaariossa.

Tietenkin yllä olevan mallin toiminta on optimaalista, jos siinä on kaksi erilaista päätepistettä (itse asiassa tämä on hyvin samanlainen kuin useat pilvitallennuspalvelujen tarjoajien ja sisällönjakeluverkkojen toteutukset). On monia tapoja ratkaista vastaavia ongelmia, ja jokaisessa tapauksessa voidaan löytää kompromissi.

Esimerkiksi Flickr ratkaisee tämän luku-kirjoitusongelman jakamalla käyttäjät eri ryhmiin siten, että jokainen pod voi palvella vain rajoitettua määrää määritettyjä käyttäjiä, ja käyttäjien määrän kasvaessa klusteriin lisätään lisää podeja (katso Flickrin skaalausesitys,
http://mysqldba.blogspot.com/2008/04/mysql-uc-2007-presentation-file.html). Ensimmäisessä esimerkissä on helpompi skaalata laitteistoa todellisen käyttökuormituksen (koko järjestelmän lukujen ja kirjoitusten määrä) perusteella, kun taas Flickr skaalaa käyttäjäkunnan perusteella (se käyttää kuitenkin oletusta tasaisesta käytöstä eri käyttäjille, joten kapasiteetti on suunniteltava marginaalilla). Aiemmin toiminnallisuus katkesi, jos jokin palveluista ei ollut saatavilla tai ongelma siinä koko järjestelmä(kukaan ei esimerkiksi voi kirjoittaa tiedostoja), silloin jonkin Flickr-moduulin poissaolo vaikuttaa vain siihen liittyviin käyttäjiin. Ensimmäisessä esimerkissä on helpompi suorittaa toimintoja koko tietojoukolle - esimerkiksi päivittää tallennuspalvelu sisältämään uudet metatiedot tai hakea kaikista kuvan metatiedoista - kun taas Flickr-arkkitehtuurissa jokainen moduuli oli päivitettävä tai etsittävä (tai hakupalvelu oli luotava lajittelemaan metatiedot, jotka oli tarkoitettu).

Näille järjestelmille ei ole ihmelääkettä, vaan kannattaa aina edetä tämän luvun alussa kuvatuista periaatteista: määrittää järjestelmän tarpeet (luku- tai kirjoituskuorma tai kaikki kerralla, samanaikaisuuden taso, kyselyt tietojoukoista, alueista, lajitteluista jne.), vertailla erilaisia ​​vaihtoehtoja keskenään, ymmärtää mahdolliset järjestelmän vikaolosuhteet ja laatia kattava suunnitelma vikatilanteen varalta.

Redundanssi

Jotta verkkoarkkitehtuuri voi käsitellä virheitä sulavasti, sen palveluissa ja tiedoissa on oltava redundanssi. Jos esimerkiksi yhdelle palvelimelle on tallennettu vain yksi kopio tiedostosta, kyseisen palvelimen katoaminen merkitsisi tiedoston katoamista. On epätodennäköistä, että tällaista tilannetta voidaan luonnehtia positiivisesti, ja se voidaan yleensä välttää tekemällä useita kopioita tai varmuuskopioita.

Sama periaate koskee palveluita. Yhden solmun epäonnistumiselta voidaan suojautua tarjoamalla sovellukselle kiinteä toiminto, joka varmistaa samanaikainen työ sen useita kopioita tai versioita.

Luomalla redundanssia järjestelmässä voit päästä eroon heikkouksista ja tarjota varmuuskopioita tai redundantteja toimintoja hätätilanteessa. Esimerkiksi, jos tuotannossa on käynnissä kaksi saman palvelun esiintymää ja toinen niistä epäonnistuu kokonaan tai osittain, järjestelmä voi voittaa vian vaihtaa toimivaan esiintymään.
Vaihto voi olla automaattinen tai vaatia manuaalista puuttumista.

.

Toinen palveluiden redundanssin keskeinen rooli on luoda resurssienjakoarkkitehtuuri. Tämän arkkitehtuurin avulla jokainen solmu pystyy toimimaan itsenäisesti ja lisäksi keskusten "aivojen" puuttuessa hallitsemaan tiloja tai koordinoimaan muiden solmujen toimintaa. Se edistää skaalautuvuutta, koska uusien solmujen lisääminen ei vaadi erityisiä ehtoja tai tietoa. Ja mikä tärkeintä, näissä järjestelmissä ei ole kriittistä vikakohtaa, mikä tekee niistä paljon kestävämpiä vikaa vastaan.

.

Esimerkiksi kuvapalvelinsovelluksessamme kaikilla kuvilla olisi ylimääräisiä kopioita jossain muualla laitteistossa (ihannetapauksessa eri maantieteellisellä sijainnilla katastrofin, kuten maanjäristyksen tai datakeskuksen tulipalon, sattuessa), ja kuvien käyttöpalvelut olisivat redundantteja, ja ne kaikki voisivat palvella pyyntöjä. (cm..)
Tulevaisuudessa kuormituksen tasaajat ovat loistava tapa tehdä tämä mahdolliseksi, mutta siitä lisää alla.


Kuva 1.3: Kuvan isännöintisovellus redundanssilla

Segmentointi

Tietojoukot voivat olla niin suuria, että niitä ei voi isännöidä yhdellä palvelimella. Voi myös käydä niin, että laskennalliset toiminnot vaativat liikaa tietokoneresursseja, mikä heikentää suorituskykyä ja tekee tarpeelliseksi lisätä tehoa. Joka tapauksessa sinulla on kaksi vaihtoehtoa: pysty- tai vaakasuora skaalaus.

Pystysuuntainen skaalaus tarkoittaa resurssien lisäämistä yhdelle palvelimelle. Joten erittäin suurelle tietojoukolle tämä tarkoittaisi useamman (tai useamman) kiintolevyn lisäämistä, jolloin koko tietojoukko mahtuisi yhdelle palvelimelle. Laskentaoperaatioiden tapauksessa tämä tarkoittaisi laskennan siirtämistä suurempaan palvelimeen, jossa on nopeampi prosessori tai enemmän muistia. Joka tapauksessa vertikaalinen skaalaus suoritetaan, jotta yksi laskentajärjestelmän resurssi kykenee lisätietojen käsittelyyn.

Horisontaalinen skaalaus sen sijaan sisältää lisää solmuja. Suuren tietojoukon tapauksessa tämä tarkoittaisi toisen palvelimen lisäämistä tallentamaan osan kokonaistiedoista, ja laskentaresurssille tämä tarkoittaisi työn tai kuorman jakamista joidenkin lisäsolmujen kautta. Hyödyntämään potentiaali täysimääräisesti vaakasuora skaalaus, se on pantava täytäntöön muodossa sisäinen periaate järjestelmäarkkitehtuurin kehittäminen. Muuten vaakaskaalauksen edellyttämän kontekstin muuttaminen ja korostaminen voi olla ongelmallista.

Yleisin skaalaustapa on segmentoida palvelut sirpaleiksi tai paloiksi. Ne voidaan jakaa siten, että jokainen looginen toimintosarja toimii erikseen. Tämä voidaan tehdä maantieteellisten rajojen tai muiden kriteerien, kuten maksavien ja ei-maksavien käyttäjien, perusteella. Näiden järjestelmien etuna on, että ne tarjoavat palvelun tai tietovaraston parannetulla toiminnallisuudella.

Kuvapalvelinesimerkissämme on mahdollista, että kuvan tallentamiseen käytetty yksittäinen tiedostopalvelin voidaan korvata useilla tiedostopalvelimilla, joista jokainen sisältää oman ainutlaatuisen kuvasarjansa. (Katso .) Tämän arkkitehtuurin avulla järjestelmä voi täyttää jokaisen tiedostopalvelimen kuvilla ja lisätä palvelimia sen täyttyessä. levytila. Suunnittelu vaatii nimeämismallin, joka yhdistää kuvatiedostonimen sen sisältävään palvelimeen. Kuvan nimi voidaan muodostaa palvelimiin liittyvästä johdonmukaisesta hajautusjärjestelmästä. Tai vaihtoehtoisesti jokaisella kuvalla voisi olla inkrementaalinen tunnus, jonka avulla toimituspalvelu pystyisi kuvaa pyytäessä käsittelemään vain kuhunkin palvelimeen liittyvän ID-alueen (indeksinä).


Kuva 1.4: Kuvan isännöintisovellus redundanssilla ja segmentoinnilla

Tietenkin on vaikeuksia jakaa tietoja tai toimintoja useiden palvelimien kesken. Yksi avainkysymyksistä on tietojen sijainti; hajautetuissa järjestelmissä tiedot ovat lähempänä toiminta- tai laskentapistettä Parempi suorituskyky järjestelmät. Näin ollen tietojen jakaminen useille palvelimille on mahdollisesti ongelmallista, koska aina kun tietoja saatetaan tarvita, on olemassa riski, että niitä ei ehkä ole saatavilla kysynnän paikasta, palvelimen on suoritettava tarvittavien tietojen kallis nouto verkon kautta.

Toinen mahdollinen ongelma ilmenee muodossa
epäjohdonmukaisuudet (epäjohdonmukaisuudet) Kun eri palvelut lukevat ja kirjoittavat jaettuun resurssiin, mahdollisesti toiseen palveluun tai tietovarastoon, on olemassa "kilpaehtojen" mahdollisuus - jolloin jotkin tiedot katsotaan ajan tasalla, mutta ne todella luetaan ennen päivitystä - jolloin tiedot ovat epäjohdonmukaisia. Esimerkiksi kuvien isännöintiskenaariossa voi esiintyä kilpailutilanne, jos yksi asiakas lähettää koirakuvan päivittämispyynnön, jonka otsikko "Koira" on muutettu muotoon "Gizmo", kun toinen asiakas luki kuvaa. Tällaisessa tilanteessa ei ole selvää, minkä nimikkeen, "Koira" vai "Gizmo", toinen asiakas olisi saanut.

.

Tietenkin tietojen jakamiseen liittyy joitain esteitä, mutta jakamisen avulla jokainen ongelma voidaan erottaa muista: tietojen, kuormituksen, käyttötapojen ja niin edelleen. hallittaviin lohkoihin. Tämä voi auttaa lisäämään skaalautuvuutta ja hallittavuutta, mutta riski on silti olemassa. On monia tapoja vähentää riskejä ja käsitellä epäonnistumisia; lyhyyden vuoksi niitä ei kuitenkaan käsitellä tässä luvussa. Jos haluat lisätietoja tästä aiheesta, sinun kannattaa katsoa vikasieto- ja valvontablogiviesti.

1.3. Nopean ja skaalautuvan tiedonsaannin rakenteelliset komponentit

Kun on käsitelty joitakin hajautettujen järjestelmien kehittämisen perusperiaatteita, siirrytään nyt vaikeampaan kohtaan - tietojen käytön skaalaamiseen.

Yksinkertaisimmat verkkosovellukset, kuten LAMP-pinosovellukset, ovat samanlaisia ​​kuin kuvassa .


Kuva 1.5: Yksinkertaiset verkkosovellukset

Sovelluksen kasvaessa syntyy kaksi suurta haastetta: sovelluspalvelimen ja tietokantaan pääsyn skaalaus. Erittäin skaalautuvassa sovellussuunnittelussa verkkopalvelin tai sovelluspalvelin on yleensä minimoitu ja toteuttaa usein ei-jakamisen arkkitehtuurin. Tämä tekee järjestelmän sovelluspalvelinkerroksesta vaakasuunnassa skaalautuvan. Tämän mallin käytön seurauksena kova työ siirtyy alaspäin tietokantapalvelimeen ja tukipalveluihin; tässä tulevat esiin todelliset skaalaus- ja suorituskykyongelmat.

Tämän luvun loppuosassa keskitytään joihinkin yleisimpiin strategioihin ja tekniikoihin tällaisten palvelujen suorituskyvyn ja skaalautuvuuden parantamiseksi tarjoamalla nopeaa tiedonsaantia.


Kuva 1.6: Yksinkertaistettu verkkosovellus

Useimmat järjestelmät voidaan yksinkertaistaa kaavioiksi,
mikä on hyvä lähtökohta pohtimisen aloittamiselle. Jos sinulla on paljon dataa, voidaan olettaa, että haluat päästä käsiksi siihen yhtä helposti ja nopeasti kuin pöytäsi ylälaatikossa olevaan tikkarilaatikkoon. Siitä huolimatta tämä vertailu liian yksinkertaistettuna se viittaa kahteen vaikeita ongelmia: Tietovaraston skaalautuvuus ja nopea tiedonsaanti.

Tässä osiossa oletetaan, että sinulla on useita teratavuja (TB) tietoa ja annat käyttäjien käyttää pieniä osia tiedosta satunnaisesti. (cm..)
Tähän liittyvä tehtävä on määrittää kuvatiedoston sijainti jossain tiedosto palvelin mallikuvan isännöintisovelluksessa.


Kuva 1.7: Pääsy tiettyihin tietoihin

Tämä on erityisen vaikeaa, koska teratavujen datan lataaminen muistiin voi olla erittäin kallista ja vaikuttaa suoraan levyn I/O-määrään. Levyltä lukemisen nopeus on useita kertoja pienempi kuin lukemisen nopeus RAM-muisti- Voit sanoa, että muistin käyttö on yhtä nopeaa kuin Chuck Norris, kun taas levyn käyttö on hitaampaa kuin klinikan linja. Tämä nopeusero on erityisen havaittavissa suurilla tietojoukoilla; kuivina lukuina muistin käyttö on 6 kertaa nopeampi kuin levyn luku peräkkäisissä lukemissa ja 100 000 kertaa nopeampi satunnaisissa lukuissa (katso Patologies of Big Data, http://queue.acm.org/detail.cfm?id=1563874). Lisäksi jopa yksilöllisillä tunnisteilla pienen tiedon paikantaminen voi olla yhtä vaikeaa ratkaista kuin yrittää vetää viimeinen karamelli laatikosta, jossa on sata muuta karkkia katsomatta.

Onneksi asioiden yksinkertaistamiseksi on monia lähestymistapoja, joista neljä tärkeintä lähestymistapaa ovat välimuistien, välityspalvelinten, indeksien ja kuormituksen tasapainottajien käyttö. Tämän osan loppuosassa käsitellään sitä, kuinka kutakin näistä käsitteistä voidaan käyttää tiedon saamiseksi paljon nopeammin.

Välimuistit

Välimuistiin tallentaminen hyötyy perusperiaatteen ominaisuudesta, jonka mukaan äskettäin pyydettyjä tietoja tarvitaan todennäköisesti uudelleen. Välimuistia käytetään lähes kaikilla tietojenkäsittelyn tasoilla: laitteistoissa, käyttöjärjestelmissä, verkkoselaimissa, verkkosovelluksissa ja muissa. Välimuisti on kuin lyhytaikainen muisti: kooltaan rajoitettu, mutta nopeampi kuin alkuperäinen tietolähde ja sisältää äskettäin käytettyjä kohteita. Välimuistit voivat olla arkkitehtuurin kaikilla tasoilla, mutta ne ovat usein käyttöliittymää lähimmällä tasolla, missä ne on toteutettu palauttamaan tiedot nopeasti ilman merkittävää taustakuormitusta.

Joten kuinka välimuistia voidaan käyttää nopeuttamaan tietojen käyttöä esimerkkisovellusliittymässämme? Tässä tapauksessa sopivia välimuistipaikkoja on useita. Yhtenä mahdollisista sijoitteluvaihtoehdoista voit valita solmuja kyselytasolla kuvan osoittamalla tavalla
.


Kuva 1.8: Välimuistin sijoittaminen pyyntötason solmuun

Välimuistin sijoittaminen suoraan pyyntökerroksen solmuun mahdollistaa vastaustietojen paikallisen tallennuksen. Aina kun palvelulle tehdään pyyntö, isäntä palauttaa nopeasti paikallisia välimuistiin tallennettuja tietoja, jos sellaisia ​​on. Jos se ei ole välimuistissa, pyyntöisäntä pyytää tietoja levyltä. Yhden pyyntötason solmun välimuisti voi myös sijaita sekä muistissa (joka on erittäin nopea) että paikallinen levy isäntä (nopeampi kuin yrittää käyttää verkkotallennustilaa).


Kuva 1.9: Välimuistijärjestelmät

Mitä tapahtuu, kun hajaat välimuistin useisiin solmuihin? Kuten näet, jos pyyntökerros sisältää useita solmuja, on todennäköistä, että jokaisella solmulla on oma välimuisti. Jos kuormituksen tasapainotin kuitenkin jakaa pyynnöt satunnaisesti solmujen kesken, sama pyyntö siirtyy eri solmuihin, mikä lisää välimuistin menetyksiä. Kaksi tapaa voittaa tämä este ovat globaalit ja hajautetut välimuistit.

Globaali välimuisti

Globaalin välimuistin merkitys käy selväksi nimestä: kaikki solmut käyttävät samaa yksittäistä välimuistitilaa. Tässä tapauksessa lisätään jonkinlainen palvelin tai tiedostovarasto, joka on nopeampi kuin alkuperäinen varastosi ja joka on kaikkien pyyntötason solmujen käytettävissä. Jokainen pyyntösolmu pyytää välimuistia samalla tavalla kuin jos se olisi paikallinen. Tällainen välimuisti voi aiheuttaa ongelmia, koska yksittäinen välimuisti on erittäin helppo ylikuormittaa, jos asiakkaiden ja pyyntöjen määrä kasvaa. Samanaikaisesti tällainen järjestelmä on erittäin tehokas tietyissä arkkitehtuureissa (erityisesti sellaisissa, jotka liittyvät erikoislaitteistoihin, jotka tekevät tästä globaalista välimuistista erittäin nopean, tai joissa on kiinteä joukko tietoja, jotka on tallennettava välimuistiin).

On kaksi vakiolomakkeet kaavioissa näkyvät globaalit välimuistit. Tilanne on kuvattu, kun välimuistissa olevaa vastausta ei löydy välimuistista, välimuisti vastaa itse puuttuvan datan saamisesta taustalla olevasta varastosta. Se havainnollistaa pyyntösolmujen velvollisuutta hakea kaikki tiedot, joita ei löydy välimuistista.


Kuva 1.10: Yleinen välimuisti, jossa välimuisti vastaa noutamisesta



Kuva 1.11: Globaali välimuisti, jossa kyselysolmut ovat vastuussa hausta

Useimmat globaaleja välimuistia hyödyntävät sovellukset käyttävät yleensä ensimmäistä tyyppiä, jossa välimuisti itse hoitaa korvaamisen ja noudon estääkseen asiakkaita täyttämästä samoja tietoja koskevia pyyntöjä. Joissakin tapauksissa toinen toteutus on kuitenkin järkevämpää. Esimerkiksi, jos välimuistia käytetään erittäin suurille tiedostoille, välimuistin alhainen osumaprosentti aiheuttaa puskurin välimuistin ylikuormituksen välimuistin menetyksillä; tässä tilanteessa auttaa, että välimuistissa on suuri prosenttiosuus koko tietojoukosta (tai kuumasta tietojoukosta). Toinen esimerkki on arkkitehtuuri, jossa välimuistissa olevat tiedostot ovat staattisia eikä niitä pidä poistaa. (Tämä saattaa johtua tällaisen datan latenssin taustalla olevista suorituskykyominaisuuksista - ehkä joidenkin tietojen osien on oltava erittäin nopeita suuria tietojoukkoja varten - jolloin sovelluslogiikka ymmärtää korvausstrategian tai hotspotit paremmin kuin välimuisti.)

Hajautettu välimuisti

Nämä indeksit tallennetaan usein muistiin tai jonnekin hyvin paikalliseen asiakkaan saapuvan pyynnön mukaan. Berkeley DB (BDB) ja puutietorakenteet, joita käytetään yleisesti tietojen tallentamiseen järjestetyissä luetteloissa, ovat ihanteellisia indeksoituun käyttöön.

Usein on useita indeksitasoja, jotka toimivat karttana ja vievät sinut paikasta toiseen ja niin edelleen, kunnes saat tarvitsemasi tiedon. (cm.)


Kuva 1.17: Monitasoiset indeksit

Indeksejä voidaan käyttää myös useiden muiden näkymien luomiseen samoista tiedoista. Suurille tietojoukoille tämä on loistava tapa määrittää erilaisia ​​suodattimia ja näkymiä ilman, että niitä tarvitsee luoda lisäkopioita tiedot.

Oletetaan esimerkiksi, että yllä mainittu kuvanhallintajärjestelmä todella isännöi kuvia kirjojen sivuista ja palvelu mahdollistaa asiakkaiden kyselyt kyseisten kuvien tekstistä ja etsivät kaikkea tiettyä aihetta koskevaa tekstisisältöä, aivan kuten hakukoneet antavat sinun etsiä HTML-sisältöä. Tässä tapauksessa kaikki nämä kirjakuvat käyttävät niin monia palvelimia tiedostojen tallentamiseen, ja yhden sivun löytäminen käyttäjälle esitettäväksi voi olla melko vaikeaa. Aluksi käänteisten indeksien pitäisi olla helposti saatavilla mielivaltaisten sanojen ja sanajoukkojen kyselyä varten; sitten tehtävänä on mennä tarkalle sivulle ja paikkaan kyseisessä kirjassa ja purkaa oikea kuva hakutuloksiin. Siten tässä tapauksessa käänteinen indeksi kartoittaisi sijaintiin (kuten kirjaan B), ja sitten B voisi sisältää indeksin, jossa on kaikki sanat, paikat ja esiintymien lukumäärä kussakin osassa.

Käänteinen indeksi, jota Index1 voisi edustaa yllä olevassa kaaviossa, näyttäisi suunnilleen tältä: jokainen sana tai sanajoukko toimii hakemistona niitä sisältäville kirjoille.

Välihakemisto näyttää samalta, mutta sisältää vain kirjan B sanat, sijainnin ja tiedot. Tämän monitasoisen arkkitehtuurin ansiosta jokainen hakemisto vie vähemmän tilaa kuin jos kaikki nämä tiedot tallennettaisiin yhteen suureen käänteiseen hakemistoon.

Ja tämä on avainasemassa suurissa järjestelmissä, koska jopa pakattuna nämä indeksit voivat olla melko suuria ja kalliita tallentaa. Oletetaan, että tässä järjestelmässä on paljon kirjoja eri puolilta maailmaa - 100 000 000 (katso "Inside Google Books" -blogimerkintä) ja että jokainen kirja on vain 10 sivua pitkä (laskentojen yksinkertaistamiseksi) ja 250 sanaa sivulla: tämä antaa meille yhteensä 250 miljardia sanaa. Jos otamme sanan keskimääräiseksi merkkimääräksi 5 ja koodaamme jokaisen merkin 8 bitiksi (tai 1 tavuksi, vaikka jotkut merkit itse asiassa vievät 2 tavua), jolloin tuhlataan 5 tavua sanaa kohden, niin jokaisen sanan vain kerran sisältävä indeksi vaatisi yli 1 teratavun tallennuskapasiteettia. Joten voit nähdä, että indeksit, joissa on myös muuta tietoa, kuten sanajoukkoja, tietojen sijainti ja käyttömäärät, voivat kasvaa hyvin nopeasti.

Tällaisten väliindeksien luominen ja tietojen esittäminen pienempinä paloina helpottaa big data -ongelman ratkaisemista. Tiedot voidaan jakaa useille palvelimille ja olla samalla nopeasti käytettävissä. Hakemistot ovat tiedonhaun kulmakivi ja nykyaikaisten hakukoneiden perusta. Tietenkin tämä osio käsittelee vain indeksointia yleisesti, ja paljon on tutkittu, kuinka indeksejä voidaan tehdä pienemmiksi, nopeammiksi, informatiivisemmiksi (kuten osuvuudesta) ja saumattomasti päivitettäviksi. (Kilpailevien ehtojen hallinnassa sekä uusien tietojen lisäämiseen tai olemassa olevien tietojen muuttamiseen tarvittavien päivitysten määrässä on joitain ongelmia, varsinkin kun kyseessä on osuvuus tai pisteytys).

Tietojesi nopea ja helppo löytäminen on erittäin tärkeää, ja indeksit ovat yksinkertaisin ja tehokkain työkalu tämän saavuttamiseksi.

Kuormantasaajat

Lopuksi, toinen kriittinen osa minkä tahansa hajautetun järjestelmän on kuormituksen tasapainotin. Kuormantasaajat ovat olennainen osa mitä tahansa arkkitehtuuria, koska niiden tehtävänä on jakaa kuorma pyyntöjen palvelusta vastaavien solmujen kesken. Tämän ansiosta useat solmut voivat läpinäkyvästi palvella samaa toimintoa järjestelmässä. (Katso .) Niiden päätarkoitus on käsitellä monia samanaikaisia ​​yhteyksiä ja reitittää ne yhdelle pyydetyistä solmuista, jolloin järjestelmä voi skaalata lisäämällä solmuja palvelemaan. Suuri määrä pyynnöt.


Kuva 1.18: Kuormantasauslaite

On olemassa monia erilaisia ​​algoritmeja palvella pyyntöjä, mukaan lukien satunnainen solmun valinta, round robin -algoritmi tai jopa solmun valinta tiettyjen kriteerien perusteella, kuten käyttämällä prosessori tai RAM-muistia. Kuormantasaajat voidaan toteuttaa laitteistona tai ohjelmistona. Avoimen lähdekoodin kuormituksen tasaajista HAProxy on laajimmin käytetty.

Hajautetussa järjestelmässä kuormanjakolaitteet ovat usein järjestelmän "etulinjassa", joten kaikki saapuvat pyynnöt kulkevat suoraan niiden kautta. On hyvin todennäköistä, että monimutkaisessa hajautetussa järjestelmässä pyynnön on läpäistävä useita tasapainoimia, kuten kuvassa
.


Kuva 1.19: Useita kuormituksen tasauslaitteita

Kuten välityspalvelimet, jotkin kuormantasaajat voivat myös reitittää pyynnöt eri tavalla pyynnön tyypistä riippuen. Ne tunnetaan myös käänteisinä (käänteisinä) välityksin.

Tietyn käyttäjäistunnon tietojen hallinta on yksi haasteista kuormituksen tasaajia käytettäessä. Verkkokauppasivustolla, kun sinulla on vain yksi asiakas, on erittäin helppoa antaa käyttäjien laittaa tavaraa ostoskoriinsa ja tallentaa sisältö käyntien välillä (tämä on tärkeää, koska tuotteen myyntimahdollisuus kasvaa huomattavasti, jos tuote on edelleen ostoskorissa, kun käyttäjä palaa sivustolle). Jos käyttäjä kuitenkin ohjataan yhteen solmuun ensimmäisellä istunnolla ja sitten toiseen solmuun seuraavan vierailunsa aikana, saattaa ilmetä epäjohdonmukaisuuksia, koska uudella solmulla ei ehkä ole tietoja kyseisen käyttäjän ostoskorin sisällöstä. (Etkö turhaudu, jos laitat Mountain Dew -paketin ostoskoriin ja se on poissa, kun palaat?) Yksi ratkaisu voisi olla tehdä istunnoista "tahmeita", jotta käyttäjä ohjataan aina samaan solmuun. Joidenkin luotettavuusominaisuuksien, kuten automaattisen vikasietoisuuden, hyödyntäminen on kuitenkin huomattavasti vaikeampaa. Tässä tapauksessa käyttäjän ostoskorissa on aina sisältöä, mutta jos hänen tarrasolmunsa ei ole käytettävissä, tarvitaan erityistä varovaisuutta ja oletus ostoskorin sisällöstä ei enää pidä paikkaansa (vaikka tämä oletus ei toivottavasti tule sisään sovellukseen). Tämä ongelma voidaan tietysti ratkaista käyttämällä muita tässä luvussa kuvattuja strategioita ja työkaluja, kuten palveluita ja monia muita (kuten selaimen välimuistia, evästeitä ja URL-osoitteiden uudelleenkirjoittamista).

Jos järjestelmässä on vain muutama solmu, niin temput, kuten DNS-kiertoliittymät, ovat todennäköisesti käytännöllisempiä kuin kuormanjakolaitteet, jotka voivat olla kalliita ja lisätä järjestelmän monimutkaisuutta lisäämällä tarpeettoman kerroksen. Tietysti sisään suuria järjestelmiä on olemassa kaikenlaisia ​​erilaisia ​​aikataulutus- ja kuormitusalgoritmeja, mukaan lukien niinkin yksinkertaiset kuin satunnainen valinta tai karusellialgoritmi tai enemmän monimutkaiset mekanismit, jotka ottavat huomioon järjestelmän käyttömallin suorituskykyominaisuudet. Kaikki nämä algoritmit mahdollistavat liikenteen ja pyyntöjen jakamisen ja voivat tarjota hyödyllisiä luotettavuustyökaluja, kuten automaattisen vikasietoisuuden tai huonon solmun automaattisen poistamisen (esimerkiksi kun se lakkaa vastaamasta). Nämä edistyneet ominaisuudet voivat kuitenkin tehdä ongelmien diagnosoinnista hankalaa. Esimerkiksi korkean kuormituksen tilanteissa kuormituksen tasaajat poistavat solmuja, jotka voivat olla hitaita tai aikakatkaisu (johtuen pyyntöjen määrästä), mikä vain pahentaa muiden solmujen tilannetta. Näissä tapauksissa laaja ohjaus on tärkeää, koska vaikka näyttäisikin siltä, ​​että järjestelmän kokonaisliikenne ja kuormitus vähenevät (koska solmut palvelevat vähemmän pyyntöjä) - yksittäisiä solmuja voi olla ylikuormitettu.

Kuormantasaajat ovat helppo tapa lisätä järjestelmän kapasiteettia. Kuten muutkin tässä artikkelissa kuvatut menetelmät, sillä on olennainen rooli hajautetun järjestelmän arkkitehtuurissa. Kuormantasaajat tarjoavat myös kriittiset toiminnot solmun kuntotarkastuksiin. Jos tällaisen tarkistuksen seurauksena solmu ei vastaa tai ylikuormitetaan, se voidaan poistaa pyyntöjen käsittelyvarannosta, ja järjestelmäsi redundanssin vuoksi kuorma jaetaan uudelleen jäljellä olevien työsolmujen kesken.

Jonot

Tähän mennessä olemme pohtineet monia tapoja lukea tietoja nopeasti. Samaan aikaan toinen tärkeä osa tietotason skaalausta on tehokas tietueiden hallinta. Kun järjestelmät ovat yksinkertaisia ​​ja niille on ominaista vähäinen käsittelykuorma ja pienet tietokannat, kirjoittaminen voi olla ennustettavan nopeaa. Monimutkaisemmissa järjestelmissä tämä prosessi voi kuitenkin kestää äärettömän pitkän ajan. Esimerkiksi tiedot on ehkä kirjoitettava useisiin paikkoihin eri palvelimilla tai indekseillä, tai järjestelmä voi olla yksinkertaisesti raskaan kuormituksen alainen. Tapauksissa, joissa kirjoittaminen tai edes mikä tahansa tehtävä kestää kauan, suorituskyvyn ja käytettävyyden saavuttaminen edellyttää asynkronisuuden rakentamista järjestelmään. Yleinen tapa tehdä tämä on järjestää pyyntöjono.


Kuva 1.20: Synkroninen pyyntö

Kuvittele järjestelmä, jossa jokainen asiakas pyytää tehtävää etäpalvelu. Jokainen näistä asiakkaista lähettää pyyntönsä palvelimelle, joka suorittaa tehtävät mahdollisimman nopeasti ja palauttaa tulokset asianmukaisille asiakkaille. Pienissä järjestelmissä, joissa yksi palvelin (tai looginen palvelu) voi palvella saapuvia asiakkaita yhtä nopeasti kuin ne saapuvat, tällaisten tilanteiden pitäisi toimia hyvin. Kuitenkin, kun palvelin vastaanottaa enemmän pyyntöjä kuin se pystyy käsittelemään, jokaisen asiakkaan on odotettava muiden asiakkaiden pyyntöjen valmistumista, ennen kuin se tuottaa vastauksen omaan pyyntöönsä. Tämä on esimerkki synkronisesta pyynnöstä, joka on kuvattu .

Tällainen synkroninen käyttäytyminen voi merkittävästi heikentää asiakkaan suorituskykyä; itse asiassa käyttämättömänä, asiakas joutuu odottamaan, kunnes se saa vastauksen pyyntöön. Palvelimien lisääminen järjestelmän kuormituksen käsittelemiseksi ei todellakaan ratkaise ongelmaa; Vaikka tehokas kuormituksen tasapainotus on käytössä, on erittäin vaikeaa tarjota tasainen ja oikeudenmukainen kuormituksen jakautuminen, jota tarvitaan asiakkaan suorituskyvyn maksimoimiseksi. Lisäksi, jos palvelin ei ole käytettävissä käsittelemään tätä pyyntöä (tai se on epäkunnossa), myös siihen yhdistetty asiakas lakkaa toimimasta. Tämän ongelman tehokas ratkaiseminen edellyttää abstraktiota asiakkaan pyynnön ja sen palvelemiseksi tehtävän työn välillä.


Kuva 1.21: Jonojen käyttö pyyntöjen hallintaan

Kirjautumisjonot. Jonon mekanismi on hyvin yksinkertainen: tehtävä saapuu, menee jonoon ja sitten "työntekijät" hyväksyvät seuraavan tehtävän heti, kun heillä on mahdollisuus käsitellä se. (Katso .) Nämä tehtävät voivat olla yksinkertaisia ​​tietokantakirjoituksia tai jotain niin monimutkaista kuin kuvan luominen. esikatselu asiakirjaa varten. Kun asiakas lähettää tehtäväpyyntöjä jonoon, sen ei enää tarvitse odottaa suorituksen tuloksia; sen sijaan pyynnöt on vain vahvistettava, että ne on vastaanotettu asianmukaisesti. Tämä vahvistus voi myöhemmin toimia linkkinä työn tuloksiin asiakkaan sitä pyytäessä.

Jonot antavat asiakkaille mahdollisuuden työskennellä asynkronisesti tarjoamalla strategisen abstraktion asiakkaan pyynnöstä ja vastauksesta. Toisaalta synkronisessa järjestelmässä pyynnön ja vastauksen välillä ei ole eroa, joten niitä ei voida hallita erikseen. Asynkronisessa järjestelmässä asiakas lähettää tehtävän, palvelu vastaa viestillä, joka vahvistaa, että tehtävä on vastaanotettu, ja sitten asiakas voi ajoittain tarkistaa tehtävän tilan ja pyytää tulosta vasta sen valmistuttua. Kun asiakas tekee asynkronisen pyynnön, hän voi vapaasti tehdä muuta työtä ja jopa tehdä asynkronisia pyyntöjä muille palveluille. Jälkimmäinen on esimerkki jonojen ja viestien toiminnasta hajautetuissa järjestelmissä.

Jonot tarjoavat myös jonkin verran suojaa palvelun keskeytyksiltä ja häiriöiltä. On esimerkiksi melko helppoa luoda erittäin kestävä jono, joka voi yrittää uudelleen palvelupyyntöjä, jotka epäonnistuvat lyhyiden palvelinkatkosten vuoksi. On parempi käyttää jonoa palvelun laatutakuiden toteuttamiseen kuin paljastaa asiakkaille tilapäisiä palvelukatkoksia, jotka edellyttävät monimutkaista ja usein epäjohdonmukaista virheenkäsittelyä asiakaspuolelta.

Jonot ovat perusperiaate hajautetun tiedonsiirron hallinnassa minkä tahansa laajamittaisen hajautetun järjestelmän eri osien välillä, ja niiden toteuttamiseen on monia tapoja. On olemassa useita avoimen lähdekoodin jonototeutuksia, kuten RabbitMQ.
ActiveMQ,
BeanstalkD , mutta jotkut käyttävät myös palveluita, kuten

  • skaalaus
  • hajautettua laskentaa
  • verkkokehitys
  • Kate Matsudaira
  • Lisää tageja

    VERKKOPALVELUTEKNOLOGIAN PERUSTUVA SUUNNITTELU

    Erikoisala: 05. 13. 12 - Automaatiojärjestelmien suunnittelu

    Pietari 2013 2

    Työ tehtiin liittovaltion budjetin korkeakoulussa ammatillinen koulutus"Pietarin valtion sähkötekninen yliopisto" LETI "nimetty. V. I. Ulyanova (Lenina), Tietokoneavusteisen suunnittelun laitos

    Tieteellinen johtaja- Teknisten tieteiden tohtori, professori Dmitrevich Gennadi Daniilovich

    Viralliset vastustajat:

    Teknisten tieteiden tohtori, professori, Pietarin valtion sähkötekninen yliopisto "LETI", joka on nimetty V.I. IN JA.

    Uljanova (Lenina), Automaattisten tietojenkäsittely- ja ohjausjärjestelmien laitos Kutuzov Oleg Ivanovich Teknisten tieteiden kandidaatti, avoin osakeyhtiö "Concern"

    "TIETEELLINEN JA TUOTANTO-YHTIÖ" AURORA ",

    laboratorion johtaja Pakhomenkov Juri Mikhailovich

    Johtava organisaatio: Liittovaltion budjettitaloudellinen korkea-asteen koulutuslaitos "Pietarin kansallinen tietotekniikan, mekaniikan ja optiikan tutkimusyliopisto"

    Väitöstilaisuus tapahtuu 23.5.2013 klo 16.30 Pietarin valtion sähköteknisen yliopiston LETI väitöskirjaneuvoston kokouksessa D212.238.02. IN JA.

    Uljanov (Lenin) osoitteessa: 197376, St. Petersburg, st. Professori Popov, k. 5.

    Väitöskirja löytyy Pietarin sähköteknisen yliopiston kirjastosta Abstrakti lähetettiin "_" 2013

    Väitösneuvoston tieteellinen sihteeri D212.238.02 N. M. Safyannikov

    YLEINEN TYÖN KUVAUS

    Merkityksellisyys tutkimus Tietokoneavusteisten suunnittelujärjestelmien laajaa käyttöönottoa suunnittelutehtävissä on merkittävästi rajoitettu hintava lisensoitu ohjelmisto. Tämän lisäksi oman CAD:n luomiseen liittyy valtavia resurssikustannuksia, eikä sitä voida toteuttaa lyhyessä ajassa, koska nykyaikaisen CAD:n kehittäminen vaatii satoja henkilötyövuosia. Ongelma on monimutkainen myös siksi, että todellisissa toimintatilanteissa monitoimisia integroituja CAD-järjestelmiä käytetään pääsääntöisesti erittäin tehottomasti, koska ratkaisua tehtäessä erityisiä tehtäviä Näiden järjestelmien pääkoostumuksesta käytetään usein korkeintaan 10-20 % kullekin osastolle ominaisimmista ohjelmistoista.

    Ratkaisu tähän kiireelliseen ongelmaan voi olla CAD-arkkitehtuurin hajauttaminen siirtymällä hajautettuihin suunnittelujärjestelmiin, jotka on rakennettu toteutettavien Internet-teknologioiden pohjalta. tehtäviä viestintä ja tiedonvaihto sovellusten välillä.

    Nämä itsenäisesti hallitut sovellukset ovat itsenäisiä ja voivat olla vuorovaikutuksessa toistensa kanssa suorittaessaan yhteistä tehtävää.

    Internet-teknologiaprotokollat ​​tarjoavat luotettavan perustan alijärjestelmien linkittämiselle eivätkä vaadi eri verkkosolmuissa olevien resurssien koordinoitua käyttöä, mikä yksinkertaistaa huomattavasti hajautetun CAD-järjestelmän rakentamista ja käyttöä. Päävaatimus tällaisen hajautetun järjestelmän toteuttamiselle on niiden rajapintojen johdonmukaisuus, joiden kautta yksittäiset osajärjestelmät on kytketty. Kun tämä vaatimus täyttyy yksittäisiä komponentteja hajautettu CAD voidaan luoda eri kehittäjiltä ja niitä ylläpidetään eri paikoissa, joista niitä toimitetaan (ehkä kaupallisin perustein) kuluttajille.

    Tehokkaimpana tapana yhdistää alijärjestelmiä hajautetuksi sovellukseksi tulee pitää palvelukeskeiseen arkkitehtuuriin perustuvien etäproseduurikutsujen järjestämistä web-palveluita käyttäen. Web-palveluihin perustuva integraatio hajautetun CAD:n kehittämisessä mahdollistaa XML-pohjaisten rajapintojen ja vuorovaikutusten kuvauksen, joka tarjoaa mahdollisuuden muokata ja kehittää rakennettua ohjelmistoa samalla kun valittu käyttöliittymä säilyy. Tämä mahdollistaa yksittäisten alijärjestelmien löysän kytkennän vuoksi vuorovaikutuksen tarjoamisen palveluiden välillä mielivaltaisella alustalla ja mukauttaa olemassa olevia sovelluksia muuttuviin suunnitteluolosuhteisiin.

    Suurin taakka laskennallisten toimintojen suorittamisesta tässä arkkitehtuurissa lankeaa verkkopalveluihin, jotka ratkaisevat kaikki suunniteltavien järjestelmien mallintamisen ongelmat, asiakassovelluksille osoitetaan vain yksinkertaisimmat tietojen valmistelun ja mallinnuksen tulosten näyttämisen toiminnot. CAD:ia kehitettäessä verkkopalveluilla voidaan soveltaa seuraavia tyyppejä asiakassovelluksia:

    konsolityyppinen sovellus, ikkunatyyppinen sovellus ja verkkosovellus.

    Konsolisovellusten ominaisuus on graafisen käyttöliittymän puuttuminen, mutta niiden käyttö voi olla hyödyllistä toteutettaessa yksinkertaisimpia CAD-järjestelmiä pienellä näyttöalalla varustettuihin kämmentietokoneisiin.

    Ikkunatyyppiset sovellukset tarjoavat parhaan tavan toteuttaa graafisia apuvälineitä ja soveltuvat parhaiten verkkopalveluihin perustuvien hajautettujen järjestelmien kehittämiseen. Mihin tahansa verkkopalveluun on mahdollista rakentaa useita asiakassovelluksia eri tavoilla toteuttaa dialogivuorovaikutusta.

    Verkkosovellus tarjoaa mahdollisuuden isännöidä kaikkia verkossa käyttämiäsi CAD-ohjelmistoja. Tämän rakenteen etuna on avoin pääsy Hajautetun CAD:n käyttöön minkä tahansa selaimen kautta, tämän tyyppisen sovelluksen haittana on suunnitellun järjestelmän komponenttien kuvaamiseen tarvittava aika, joka johtuu reaktion odottamisesta yksittäisissä tiedonsyöttövaiheissa.

    Kaikenlaiselle asiakassovellukselle verkkopalveluihin soittaminen tapahtuu samalla tavalla ja jokaiseen verkkopalveluun voidaan käyttää mitä tahansa eri kielillä kirjoitettujen asiakassovellusten toteutustapaa. Tällaisia ​​asiakassovelluksia voidaan tarvittaessa helposti muokata muuttuvien suunnitteluolosuhteiden mukaan, verkkopalvelua on myös mahdollista laajentaa sisällyttämällä siihen lisämenetelmiä.

    Työn tavoite ja tutkimuksen päätavoitteet Tämä väitöskirja on omistettu menetelmien tutkimukselle ja kehittämiselle alustariippumattomien hajautettujen CAD-järjestelmien rakentamiseen web-palveluita käyttäen. Tiettyä toteutusta varten on valittu tehtäväksi kehittää hajautettu automaatiojärjestelmä piirisuunnittelua varten.

    Tämän tavoitteen saavuttamiseksi on ratkaistava seuraavat tehtävät:

    1. Kehitä yhteinen metodologia valitun Java-verkkopalvelupalvelimen rakentamiseen, itsenäiseen testaukseen ja käyttöönottoon.

    Java-verkkopalveluohjelmisto hajautettuun piirisuunnittelun automaatiojärjestelmään.

    3. Tutkia ja kehittää metodologiaa Java-verkkopalveluiden rakentamiseen tiedonpakkaustekniikalla.

    4. Suorittaa tutkimus- ja kehitystyötä yhteisen metodologian rakentamiseksi konsoli- ja ikkunatyyppisten asiakassovellusten sekä asiakasverkkosovellusten mallien rakentamiseen.

    5. Kehittää metodologia web-palvelujen ja asiakassovellusten toiminnan toteuttamiseksi heterogeenisissä ympäristöissä.

    Tutkimusmenetelmät yleinen teoria CAD, toriummallinnusjärjestelmät, matriisien ja graafien teorian perusteet.

    Tieteellisten tulosten luotettavuus Vahvistetaan yleisen CAD-teorian, mallinnusteorian, sovelletun matemaattisen laitteiston oikeellisuuden ja tulosten, jotka on saatu testattaessa luotuja ohjelmistoja web-palveluihin ja asiakassovelluksiin.

    Uusia tieteellisiä tuloksia hajautetusta CAD:stä verkkopalveluiden avulla.

    2. Java-verkkopalveluiden käyttöönottoa, offline-testausta ja käyttöönottoa hajautetulla CAD-palvelimella on kehitetty yleinen menetelmä.

    3. Tutkittu ja kehitetty menetelmiä Java-verkkopalveluohjelmistojen rakentamiseen elektronisten piirien suunnittelun tyypillisten ongelmien ratkaisemiseksi.

    5. Konsoli- ja ikkunaasiakassovellusten sekä asiakasverkkosovellusten rakentamiseen on kehitetty yleinen metodologia.

    6. On kehitetty metodologia hajautetun CAD-ohjelmiston toteuttamiseksi vuorovaikutuksen organisoimiseksi web-palveluiden ja asiakassovellusten heterogeenisissä ympäristöissä.

    Perussäännökset, lähetetty suojattavaksi 1. Verkkopalveluihin perustuvan hajautetun palvelukeskeisen CAD:n arkkitehtuuri.

    2. Yleinen metodologia Java-verkkopalveluiden alhaalta ylöspäin suuntautuvalle suunnittelulle 3. Menetelmä Java-verkkopalveluohjelmistojen toteuttamiseksi tiedon pakkaamiseen.

    Käytännön arvo 1. Hajautetun CAD:n ehdotettu rakenne tarjoaa mahdollisuuden organisoida vuorovaikutusta eri verkkopalvelujen välillä valitulla alustalla ja mukauttaa sovelluksia muuttuviin suunnitteluolosuhteisiin.

    2. Tietojen pakkaamiseen perustuva rakennettu aputoimintokirjasto tehostaa Java-verkkopalveluohjelmistojen luomista piirisuunnittelun automaatiojärjestelmiin 3. Kehitetty menetelmä asiakas-palvelin-vuorovaikutuksen toteuttamiseksi varmistaa hajautettujen CAD-järjestelmien toiminnan heterogeenisissä ympäristöissä.

    4. Kehitetyn piirisuunnittelun hajautetun automaatiojärjestelmän ohjelmisto sisältää invariantin ytimen Java-ohjelmien sekä symbolisten että numeeristen vaiheiden järjestämiseen, jota voidaan käyttää pohjana rakennettaessa suunnittelujärjestelmiä monenlaisille kohteille.

    Toteutus ja tulosten toteutus Väitöskirjassa kehitetty verkkopalveluiden avulla hajautettu CAD on toteutettu Java-kielellä WTP:tä (Web Tools Platform) käyttäen. Käytännön tulos on alustasta riippumaton hajautettu piiri CAD-järjestelmä, joka suorittaa monimuunnelman mallinnuksen epälineaarisille piireille stationaaritilassa, dynaamisessa tilassa laskeakseen taajuusominaisuudet, ja tarjoaa myös laskennan siirtofunktioiden herkkyydestä ja stationaarisen tilan muuttujien herkkyydestä parametrien vaihteluille.

    Väitöstyön tuloksia hyödynnettiin valtion budjettitutkimushankkeissa aiheesta ”Analyysin ja synteesin mallien ja menetelmien kehittäminen älykkäitä järjestelmiä päätöstuki monimutkaisten hajautettujen objektien hallintaan" (SPbGETU 2011:n aihesuunnitelman koodi CAD-47) ja aiheesta "Matemaattiset ja loogiset perusteet virtuaalisten instrumenttiympäristöjen rakentamiselle" (SPbGETU 2012:n suunnitelman aiheen koodi CAD-49) piirisuunnittelun automaatiojärjestelmät "kandidaattien ja maisterin suunnittelun suunnittelussa".

    Työn hyväksyminen Väitöskirjan keskeiset kohdat raportoitiin ja niistä keskusteltiin seuraavissa konferensseissa:

    1. 9. nuorten tutkijoiden konferenssi "Navigointi ja liikenteenohjaus" - Pietari;

    2. 5. kansainvälinen konferenssi "Instrument making in ekology and human safety" - Pietari, GUAP;

    3. XIII, XIV, XVII kansainvälisiä konferensseja"Moderni koulutus: sisältö, teknologiat, laatu". - Pietari, 4. 60, 61, 63. SETU:n tiedekunnan tieteelliset ja tekniset konferenssit.

    Julkaisut Väitöskirjan teoreettinen ja käytännön sisältö julkaistiin 16 tieteellisessä artikkelissa, joista 4 artikkelia johtavissa vertaisarvioiduissa julkaisuissa, joita suositellaan HAC:n nykyiseen listaan, 1 todistus virallinen rekisteröinti tietokoneohjelmat, jotka on rekisteröity liittovaltion henkisen omaisuuden, patenttien ja tavaramerkkien virastoon.

    Väitöskirjan rakenne ja laajuus Väitöskirja sisältää johdannon, neljä lukua pääsisällöstä, johtopäätöksen ja lähdeluettelon, joka sisältää 69 lähdettä. Teos on esitetty 154 tekstisivulla ja sisältää 21 kuvaa ja yhden taulukon.

    Esittelyssä perustellaan väitöskirjan aiheen relevanssi, muotoillaan tutkimuksen tavoitteet ja annetaan luettelo työssä ratkaistavista tehtävistä.

    Ensimmäisessä luvussa tarkastellaan hajautettujen sovellusten arkkitehtuurin rakentamista, joka määrittää järjestelmän kokonaisrakenteen, suoritetut toiminnot ja yksittäisten komponenttien suhteen.

    On osoitettu, että hajautetun sovelluksen arkkitehtuuri kattaa sekä sen rakenteelliset ja käyttäytymisnäkökohdat että integroinnin ja käytön säännöt, toiminnallisuuden, joustavuuden, luotettavuuden, suorituskyvyn, uudelleenkäytettävyyden, teknologiset rajoitukset, käyttöliittymäongelmat. Autonomisten sovellusten (alijärjestelmien) integroinnin päätehtävä hajautettuun sovellukseen on tarjota toiminnallisia linkkejä, jotka tarjoavat vaaditun vuorovaikutuksen mahdollisimman vähäisellä riippuvuudella alijärjestelmien välillä.

    Väitöstyössä on osoitettu, että tällainen mekanismi saadaan tehokkaimmin aikaan käytettäessä alijärjestelmien väliseen vuorovaikutukseen perustuvaa arkkitehtuuria käyttämällä tiedonvaihtoon ja tiettyjen toimintojen suorittamiseen käytettäviä etäproseduurikutsuja. Jos sovelluksen on vastaanotettava tai muutettava jonkin toisen sovelluksen tukemaa tietoa, se viittaa siihen kutsumalla johonkin toimintoon.

    Opinnäytetyössä ehdotetaan hajautettujen CAD-järjestelmien rakentamiseen modulaariseen ohjelmistorakenteeseen ja standardoituihin rajapintoihin perustuvaa palvelukeskeistä arkkitehtuuria (SOA). SOA käyttää perustoimintaprosessien yhdistämistä, toiminnallisten elementtien toistuvan käytön periaatteita, integraatioalustaan ​​perustuvaa organisaatiota. Vaikka SOA-arkkitehtuuri ei liity mihinkään tiettyyn RPC-tekniikkaan, SOA:n mukaan kehitetyt ohjelmistoalijärjestelmät toteutetaan yleensä perusprotokollien (SOAP, WSDL) avulla yhdistettyjen verkkopalveluiden joukkona.

    Palvelusuuntautuneeseen arkkitehtuuriin perustuvat järjestelmät kuuluvat moniagenttijärjestelmien luokkaan (MAS), jotka muodostuvat useista vuorovaikutuksessa olevista älykkäistä agenteista, jotka tarjoavat hajautetun tieto- ja laskentajärjestelmän yksittäisten alijärjestelmien autonomian, rajoitetun edustuksen ja hajautuksen.

    Web-palvelut perustuvat XML-standardiin ja antavat käyttäjille mahdollisuuden olla vuorovaikutuksessa ulkoisten järjestelmätyökalujen kanssa Internetin kautta, koska ne ovat löyhästi kytkettyjä ohjelmistojärjestelmäkomponentteja, jotka ovat käytettävissä Internet-protokollien kautta. Väitöstyö osoittaa, että verkkopalveluita käyttävien hajautettujen CAD-järjestelmien käytännön toteutuksessa tulee kiinnittää erityistä huomiota pääasiakassovellukselle ja tämän sovelluksen kanssa vuorovaikutuksessa olevalle verkkopalvelulle osoitettujen toiminnallisten vastuiden oikeaan erottamiseen.

    Web-palvelujen toteutusmenetelmä riippuu merkittävästi valitusta ohjelmointikielestä. Työ osoittaa, että valittaessa ohjelmointikieltä web-palveluiden rakentamiseen tulee suosia Java-kieltä, joka takaa parhaiten toteutettujen ratkaisujen alustariippumattomuuden. Tärkeä seikka tämän valinnan puolesta on myös WTP (Web Tools Platform) -ympäristön tarjoaman tehokkaan instrumentaalisen tuen olemassaolo web-suuntautuneiden sovellusten kehittämiseen Javassa.

    Väitöstyössä tehdään vertaileva analyysi Java-verkkopalveluiden rakentamisen kahdesta päämenetelmästä - nouseva (Bottom-Up), kun ensin luodaan verkkopalvelun Java-luokka ja sen pohjalta muodostetaan WSDL-dokumentti, ja ylhäältä alas (Top-Down), kun tarvittava WSDL-dokumentti luodaan ensin, ja sitten muodostetaan sen perusteella verkkopalvelun toteutuskoodi. Vertailevan arvioinnin perusteella on osoitettu, että verkkopalveluiden suunnittelu tulee tehdä alhaalta ylös -menetelmällä, koska tällöin WSDL-dokumentti muodostetaan etukäteen luodun Java-luokan perusteella, joka kuvaa kaikki verkkopalvelumenetelmälle välitetyt parametrit ja tällä menetelmällä palautetut arvot. Samalla kaikki Java-luokan sisältämät tiedot muunnetaan automaattisesti vastaavaksi WSDL-dokumentiksi, jonka sisältö vastaa täsmälleen WSDL-määrityksen perusrakennetta ja kutsuttavan verkkopalvelumenetelmän pääominaisuuksia, mikä varmistaa WSDL-dokumentin sisältämien tietojen täydellisen oikeellisuuden.

    Jotta verkkopalveluiden suunnittelua voitaisiin käytännössä toteuttaa alhaalta ylös -menetelmällä, opinnäytetyössä ehdotetaan menetelmää dynaamisen web-projektin rakentamiseksi ja sen sisältämä verkkopalveluiden toteutus Java-luokka kuvauksella kutsuttavista menetelmistä, joiden joukossa tulee päätyömenetelmien lisäksi olla argumentitonta apumenetelmää, joka palauttaa merkkijonomuuttujan, joka sisältää kaikki tiedot verkkopalvelun toimivuudesta sekä päämenetelmien kuvauksena. palautetut tiedot, mikä varmistaa verkkopalvelun itsedokumentaation ja mahdollisuuden luoda ja jatkuvasti parantavia asiakassovelluksia verkkopalvelun kehittäjästä riippumatta.

    Väitöskirja tarjoaa tekniikan verkkopalvelun tietomenetelmäkutsun järjestämiseksi suoraan Java IDE:stä, jossa verkkopalvelun URL-osoite pääsee käsiksi tietomenetelmän Soap vastaus ja sen palautusarvon sisältöön.

    Toisessa luvussa tarkastellaan hajautetun CAD:n verkkopalveluiden rakentamismenetelmiä, joiden avulla lasketaan epälineaariset piirit stationääritilassa, lineaaristen ja linearisoitujen piirien piirifunktiot taajuusalueelle, epälineaariset piirit lasketaan dynaamisissa moodeissa. Lisäksi hajautettuun järjestelmään kuuluviin alijärjestelmiin kuuluu verkkopalvelu taajuusalueen piiritoimintojen herkkyyden laskemiseksi sekä verkkopalvelu epälineaaristen piirien stationaarimuotoisten muuttujien herkkyyden laskemiseksi parametrien vaihteluille. Kehitettyjen verkkopalveluiden pohjalta suunniteltujen piirien komponentteina voit käyttää R-, C-, L-tyyppisiä bipoleja, lineaarisia taajuudesta riippuvia ohjattuja lähteitä, epälineaarisia ohjattuja lähteitä, muuntajia, bipolaarisia ja unipolaarisia transistoreita, operaatiovahvistimet, sekä virran ja jännitteen lähteiden asettaminen.

    Tällaisten menetelmien perustana on piirisuunnittelujärjestelmien matemaattisen kuvauksen yleinen rakenne. Väitöskirja tarjoaa vertailevan arvion mahdollisista tavoista valita koordinaattipohja linearisoitujen piirien kuvauksen muodostamiseksi, etusijalla solmupotentiaalien laajennetulla pohjalla. On huomattava, että kiistattomien etujen ohella tämän perustan merkittävä rajoitus on se, että piirin komponentteja ei voida kuvata matemaattisesti yhtälöillä implisiittisessä muodossa, mikä tekee sen käytännön soveltamisesta usein vaikeaa ja joskus mahdotonta. Toteuttaakseen mahdollisuuden kuvata piirin komponentteja yhtälöillä implisiittisessä muodossa, työssä on esitetty modifioitu versio solmujännitteiden laajennetusta kannasta, joka on otettu perustaksi web-palveluiden ohjelmistojen rakentamiselle.

    Kun tarkastellaan verkkopalveluiden rakentamiseen liittyviä kysymyksiä elektronisten piirien taajuusominaisuuksien laskentatehtäviä varten, on huomattava, että tämän tyyppiset tehtävät voidaan jakaa kahteen ryhmään. Ensimmäinen ryhmä sisältää lineaaristen piirien laskentaongelmat, joiden komponenttien parametreilla on kiinteät arvot, jotka eivät riipu komponenttien työpisteiden koordinaattien arvoista ongelman ratkaisuprosessissa. Toinen ryhmä liittyy linearisoitujen piirien taajuusominaisuuksien laskemiseen, joiden parametrit riippuvat komponenttien toimintapisteiden koordinaateista, ja nämä koordinaatit sekä vastaavien linearisoitujen parametrien arvot on laskettava alustavasti.

    Ensimmäisen ryhmän elektronisten piirien taajuusominaisuuksien laskennan ongelmat väitöskirjatyötä tehtäessä rakennettiin ModService_Java -verkkopalvelu. Jotta kompleksilukujen kanssa voitaisiin työskennellä sen rakentamisen aikana, luotiin mukautettu luokka Complex, koska tämän työn aikana tällainen luokka ei kuulunut standardi Java API -työkaluihin. Complex-luokka sisältää rakentajia ja apufunktioita monimutkaisen datan käsittelyyn, ja siinä se. tarvittavat toiminnot suorittaa aritmeettisia ja loogisia operaatioita kompleksiluvuilla, koska Java-kielellä ei ole operaattoria, joka ohittaisi nämä toiminnot. Verkkopalvelu vastaanottaa argumentteina kuvauksen piirikomponenteista ja laskentaohjeista ja palauttaa taulukon kuvauksella taajuusominaisuuksien laskennan tuloksista.

    Älä laske vakaan tilan laskemista lineaariset järjestelmät Väitöskirjassa ehdotetaan yleistä metodologiaa vastaavien verkkopalvelujen ohjelmistojen rakentamiseen, joka toteutetaan StaticService_Java-verkkopalvelua luotaessa. Verkkopalvelu vastaanottaa myös argumentteina kuvauksen piirikomponenteista ja laskentaohjeista ja palauttaa taulukon perusmuuttujien ja stationaarisen tilan koordinaattien laskennan tuloksista kuvauksella kaikille epälineaarisille komponenteille (diodit, bipolaariset transistorit, unipolaariset transistorit, operaatiovahvistimet, epälineaariset ohjatut lähteet). Palautetun taulukon nollaelementti on varattu tiedon siirtämiseen asiakaspuolelle, jos konvergenssia ei ole laskentaprosessi, joka edellyttää laskentaohjeiden muuttamista ja verkkopalvelumenetelmän uudelleenkäyttöä.

    Väitöskirjassa tarkastellaan mahdollisia lähestymistapoja menetelmän kehittämiseen web-palveluiden rakentamiseksi linearisoitujen piirien taajuusominaisuuksien laskemiseksi, joiden parametrit riippuvat komponenttien toimintapisteiden koordinaateista. Vertailevan arvioinnin tuloksena valittiin tapa rakentaa integroituun järjestelmään perustuva verkkopalvelu, joka sisältää ohjelmiston epälineaaristen komponenttien linearisointiin lasketuissa toimintapisteissä sekä linearisoidun piirin taajuusominaisuuksien myöhempään laskemiseen. Työssä esitetään yleinen tekniikka tällaisen ongelman ratkaisemiseksi, jonka toteutus suoritetaan StFrqService_Java -verkkopalvelussa. Verkkopalvelu vastaanottaa argumentteina kuvauksen piirin taajuusriippuvaisista ja epälineaarisista komponenteista sekä laskentaohjeita, ja sen työn tuloksena palautetaan taulukko, jossa on kuvaus taajuusominaisuuksien laskennan tuloksista. Vastaavasti, kuten kiinteän tilan laskennassa, palautetun taulukon nollaelementtiä käytetään siirtämään tietoa asiakaspuolelle, mikäli prosessi ei konvergoi.

    Kun kehitetään menetelmää verkkopalvelun rakentamiseksi epälineaaristen järjestelmien dynaamisten moodien laskemiseksi, käytetään piirin matemaattista kuvausta solmupotentiaalien modifioidussa laajennetussa pohjassa, mikä mahdollistaa algebra-differentiaalityyppisen yhtälöjärjestelmän saamisen yleisimmässä muodossa. Johdannaisten eliminointi komponenttiyhtälöistä suoritetaan korjauskaavojen perusteella, jotka johtuvat korkeamman asteen monivaiheisista implisiittisistä menetelmistä, kun taas toisen asteen Gear-menetelmä valitaan päämenetelmäksi, jonka järjestystä on mahdollista nostaa. Komponentit, joiden yhtälöistä on jätetty pois derivaatat, ovat kaksinapaiset tyyppi C ja L, diodit, muuntajat, bipolaariset ja unipolaariset transistorit, operaatiovahvistimet sekä taajuusriippuvaiset ohjatut lähteet. Sellaisten autonomisten lähteiden arvojen laskemiseksi, jotka säilyttävät vastaavien muuttujien arvot edellisissä vaiheissa, rakennetaan apudiskretisointifunktiot dis_cmp kaikille luetelluille cmp-komponenteille, joilla on taajuusriippuvaisia ​​ominaisuuksia.

    Kehitetty tekniikka toteutetaan rakennettaessa Dyn2Service_Java-verkkopalvelua, joka palauttaa asiakaspuolelle taulukon dynaamisten ominaisuuksien laskennan tulosten kuvauksella.

    Kolmannessa luvussa tarkastellaan verkkopalveluiden rakentamista tiedon pakkausmenetelmillä. Näiden kysymysten relevanssin määrää se, että todellisten järjestelmien rakenteelle on ominaista komponenttien välinen heikko yhteys, mikä johtaa niiden matemaattiseen kuvaukseen harvaan matriisien muodossa, joissa vain pienellä osalla elementeistä on merkityksellistä tietoa.

    Tämä seikka asettaa tehtäväksi muuttaa yleisesti hyväksyttyjä lähestymistapoja yhtälöiden muodostamiseen ja ratkaisemiseen muistin säästämiseksi ja suorituskyvyn parantamiseksi, mikä on ratkaisevan tärkeää web-pohjaisten järjestelmien toiminnan kannalta.

    Väitöstyössä suoritettiin analyysi mahdollisten menetelmien tehokkuudesta tiedon muuntamiseksi kompakteiksi matriiseiksi, jonka perusteella todettiin, että kaksivaiheisen prosessin toteuttamiseksi on tarkoituksenmukaista valita Sherman-kompressioon perustuva ja symbolista ja numeerista tietojenkäsittelyä vaativa menetelmä. Hyväksytyn kaksivaiheisen menettelyn olennainen etu on sen jakaminen kahteen itsenäiseen symboliseen ja numeeriseen vaiheeseen. Koska lähes kaikki todelliset piirisuunnitteluongelmat liittyvät muuttumattoman rakenteen piirin monimuuttujalaskentaan, symbolinen vaihe suoritetaan kullekin rakenteelle vain kerran, kun taas numeerinen vaihe toteutetaan kymmeniä, satoja ja joskus tuhansia kertoja.

    Kaksivaiheiselle proseduurille on kuitenkin ominaista varsin monimutkainen ohjelmakoodin rakentamisen logiikka, ja siirryttäessä tiedon pakkaamiseen perustuvaan kuvaukseen, vaaditaan merkittävä muutos aiemmin luotuun ongelman kokonaiskuvaukseen.

    Opinnäytetyössä tarkastellaan lohkokaaviota kaksivaiheisen tiedonkäsittelyn toteutuksesta Java-sovelluksia rakennettaessa, jonka mukaan symbolisen analyysin vaiheessa muodostetaan kokonaislukutyyppinen indeksimatriisi, jolle suoritetaan symbolinen LU-faktorointivaihe, jossa rivit (sarakkeet) järjestetään uusien nollasta poikkeavien elementtien määrän minimoimiseksi. Symbolisen vaiheen viimeisessä vaiheessa tehdään koordinaattimatriisien rakentaminen, jotka sisältävät tietoa indeksimatriisin rakenteesta, minkä seurauksena tämä matriisi voidaan poistaa.

    Numeerisessa vaiheessa muodostetaan tunnetun kuvausformaatin mukaisesti kompaktit matriisit ja suoritetaan niiden virtuaalinen numeerinen LU-tekijälaskenta työssä konstruoidun algoritmin perusteella. LU:n tekijöiden määrittämisen numeerisen vaiheen päätyttyä kaikki järjestelmämuuttujat lasketaan ja koodataan uudelleen symbolisen käsittelyn vaiheessa suoritettujen rivien (sarakkeiden) permutaatioiden mukaisesti. Tällainen tehtävä ratkaistaan ​​yleisen LU-faktorisoinnin tekniikan mukaisesti käyttämällä taaksepäin ja eteenpäin kulkemista alkuperäisen matriisin rivejä pitkin, mutta koska tietojen pakkausta käytettäessä ei ole täydellistä matriisia, sekä eteenpäin- että taaksepäin kulkeminen suoritetaan erityisillä algoritmeilla, jotka toteuttavat nämä tehtävät datapakkauksella.

    Väitöskirja osoittaa, että tiedon pakkaamiseen perustuvien verkkopalveluohjelmistojen kehittämiseen on olemassa kaksi erilaista lähestymistapaa. Ensimmäinen liittyy olemassa olevan ohjelmiston uudelleenkäsittelyyn, joka perustuu täydelliseen matemaattiseen kuvaukseen alkuperäisten harvojen matriisien muodossa modifioidun menetelmän rakentamiseksi kompakteja taulukoita käyttäen. Prototyypin saaminen yksinkertaistaa huomattavasti tiedon pakkaamiseen perustuvan menetelmän luomista, mutta käytettävissä olevan aineiston mahdollisimman tehokkaan hyödyntämisen kannalta tarvitaan metodologiaa verkkopalveluiden modifioitujen versioiden kehittämiseen. Sellainen tekniikka on rakennettu väitöskirjaan ja sen pohjalta muutetaan kaikkia yllä käsiteltyjä verkkopalveluita. Tuloksena on verkkopalvelukehys, joka sisältää kaksi päätyötapaa, joista toinen perustuu mallinnettavan skeeman täydelliseen kuvaukseen ja toinen kompaktia tietojenkäsittelytekniikkaa hyödyntäen.

    Toista lähestymistapaa käytetään tapauksissa, joissa ei ole prototyyppiä tietojen pakkaamiseen perustuvan menetelmän kehittämiseksi. Tässä tapauksessa sekä symbolinen että numeerinen vaihe toteutetaan ilman täydellistä kuvausta simuloidusta piiristä harvan matriisin muodossa, mikä vaikeuttaa huomattavasti ohjelmointiprosessia. Väitöskirjassa toista lähestymistapaa sovelletaan verkkopalveluiden rakentamiseen, jotka toteuttavat piirien vaihteiden ja piirien stationaarimoodimuuttujien herkkyyden laskemisen komponenttiensa parametrien vaihteluille.

    Piiritoimintojen taajuusominaisuuksien herkkyyden laskemiseksi rakennettiin VaryService-verkkopalvelu, joka sisältää yhtälöiden differentiointiin perustuvan menetelmän sekä liitettäviin piireihin perustuvan menetelmän.

    Yhtälöiden differentioinnin perusteella VaryService-verkkopalvelumenetelmä mahdollistaa piiritoimintojen absoluuttisen ja suhteellisen vektoriherkkyyden arvojen laskemisen taajuusalueelle valitulle muuttujaparametrille koko perusmuuttujajoukolle. Muuttuvat parametrit voivat olla R-, C- tai L-tyypin piirin mielivaltaisen kaksinapaisen piirin resistanssin, kapasitanssin tai induktanssin arvot sekä ITUN-, INUN-, ITUT- tai INUT-tyyppisten ohjattujen taajuudesta riippuvien lähteiden siirtoparametrit.

    VaryService-verkkopalvelumenetelmä, jossa käytetään liitettyjä piirejä, mahdollistaa piiritoimintojen sekä absoluuttisen että suhteellisen skalaarisen herkkyyden laskemisen taajuusalueelle suhteessa kaikkiin mahdollisiin muuttujaparametreihin analysoitavan muuttujan valitulle arvolle. Paperissa ehdotetun ohjelmiston lohkokaavion avulla voidaan käyttää pääpiirin kompaktien ryhmien muodostamisen tuloksia liitetyn piirin laskemiseen. Liitäntäkaavioon perustuvan menetelmän muuttuvat parametrit voivat olla samat parametrit kuin yhtälöiden differentiointiin perustuvassa menetelmässä.

    Epälineaaristen piirien stationaarisen tilan määrittävien muuttujien herkkyyden laskemiseksi niiden parametrien vaihtelulle on kehitetty StVaryService-verkkopalvelu, joka sisältää myös kaksi menetelmää, joista toinen perustuu yhtälöiden differentiointiin ja toinen liitettyyn piiriin. Muuttuvana parametrina molemmissa menetelmissä voidaan käyttää vastusten resistanssiarvoja ja ohjattujen lähteiden, kuten ITUN, INUN, ITUT tai INUT, siirtoparametreja.

    Algoritmi kiinteän tilan perusmuuttujien absoluuttisen herkkyyden laskemiseksi yhtälöiden differentiointimenetelmällä mahdollistaa piirin epälineaarisen yhtälön differentioinnin perusmuuttujien ja muuttujaparametrien suhteen, mikä mahdollistaa herkkyysyhtälön saamiseksi, jonka ratkaisu määrittää halutun vektorimuuttujan herkkyyden aseman.

    Menetelmän käytännön toteutus perustuu muuttujakomponenttien yhtälöiden differentiointiin käyttämällä epälineaarisen piirin stationaarisen tilan perusmuuttujien laskentatuloksia.

    Kiinteän tilan muuttujien skalaarisen herkkyyden laskevan menetelmän algoritmi liitännäispiirin avulla mahdollistaa pääpiirin stationaarisen tilan perusmuuttujien laskemisen ja linearisoidun liitännäispiirin perusmuuttujien laskennan, joka suoritetaan pääpiirille aiemmin muodostettujen kompaktien taulukoiden perusteella. Toisen menetelmän tulos on joukko arvoja valitun piirimuuttujan absoluuttisesta ja suhteellisesta herkkyydestä kaikille komponenttien muuttuville parametreille.

    Neljännessä luvussa käsitellään tapoja rakentaa mukautettuja asiakassovelluksia, jotka tarjoavat vuorovaikutusta verkkopalveluiden kanssa, jotka sen jälkeen, kun ne on rakennettu Java-sovelluskehitystyökaluympäristöön, on otettava käyttöön hajautetulla CAD-palvelimella. Jotta voit ottaa verkkopalvelun käyttöön, sinun on tiedettävä sen perusominaisuudet, mukaan lukien palvelun nimi, luokan nimi, menetelmien nimet ja WSDL-asiakirjatyyppi.

    Hajautettua piirisuunnittelujärjestelmää varten kehitetyistä ja yllä kuvatuista verkkopalveluista on oleellista tietoa väitöskirjassa sekä getInf-nimistä tietomenetelmistä, jotka sisältyvät kaikkiin kehitettyihin verkkopalveluihin. Artikkelissa ehdotetaan yksinkertaista tekniikkaa web-palvelujen suoraan käyttöönottamiseksi palvelimella ja käsitellään mahdollisia tapoja tuodaan WSDL-tiedoston asiakaspuolella. Vertailevan analyysin perusteella työ osoittaa, että WSDL-tiedoston toimituksen oikeellisuus etäverkkopalvelusta asiakassovellukseen voidaan varmistaa tehokkaimmin käyttämällä Web Services Explorer -työkalua ja selvitetään optimaalinen järjestys WSDL-tiedoston tuomiselle asiakassovelluksen alkukehykseen.

    Kun WSDL-tiedosto on toimitettu asiakassovellusprojektiin, alkuperäisen projektikehyksen jatkomuunnokset täydelliseksi asiakassovellukseksi ehdotetaan tehtäväksi kahdessa vaiheessa. Tällaisen muunnoksen ensimmäinen vaihe on välityspalvelinobjektin luominen projektin alkukehyksessä ja toinen vaihe on luokkien muodostaminen, jotka sisältävät menetelmiä, jotka tukevat välityspalvelinobjektin toimintaa ja vuorovaikutusta. etäpalvelu asiakassovelluksen kanssa. Ensimmäisen vaiheen toteutus tiivistyy siihen, että projektiin lisätään välityspalvelinobjektin luovia operaattoreita, toinen vaihe suoritetaan WTP-alustan Web Services -työkalulla, jonka tehokkaimmat käyttötavat on esitetty väitöskirjassa.

    Projektin alkuperäisen rungon viimeistely täydelliseksi asiakassovellukseksi voidaan tehdä eri tavoin tämän sovelluksen eri tyypeille. Helpoin tapa ajaa asiakassovelluksia on suunnitella ne konsolisovelluksiksi, joissa ei ole graafista käyttöliittymää. Lehti ehdottaa yleistystä rakennesuunnitelma hajautetun CAD-konsolisovelluksen toteutus elektronisten piirien laskemiseen, jota voidaan käyttää mihin tahansa verkkopalveluun huolimatta mahdollisista erityisratkaisuista.

    Väitöskirjaa tehtäessä toteutettiin asiakaskonsolisovellukset kaikkiin yllä oleviin hajautettuihin CAD-verkkopalveluihin. Niiden lähdetiedostot voidaan toimittaa standardi tarkoittaa Internetin kautta asiakkaalle ja käytetään sekä konsolisovelluksen yksinkertaisimman version rakentamiseen vuorovaikutukseen hajautettujen CAD-palvelujen kanssa että metodologisena oppaana kehittyneempien ikkunasovellusten kehittämiseen.

    Ikkunatyyppiset asiakassovellukset tarjoavat suurin mahdollisuus toimimaan hajautetussa CAD-järjestelmässä, koska ne mahdollistavat graafisten elementtien käytön suurimmassa määrin. Tätä verkkopalvelua varten voit rakentaa erilaisia ​​versioita asiakassovelluksista eri tavoilla järjestää keskustelua käyttäjän kanssa ja näyttää laskentatuloksia. Teoksessa on vähimmäisvalikoima dialogityökaluja, jotka tarjoavat täyden vuorovaikutuksen palvelun kanssa. Tällainen sarja sisältää ikkunavalikon ja joukon valintaikkunoita tietojen syöttämiseen ja laskentatulosten näyttämiseen sekä laskentaohjeiden hallintaan.

    Väitöskirjassa ehdotetaan metodologiaa asiakasverkkosovellusten rakentamiseen, jonka pohjalta kehitettiin JSP-sivupohjia, jotka suorittavat valinnan ja siirtymisen muille sivuille, tietyn muuttujajoukon syöttämisen aloitussivulle siirtymisellä, tietyn muuttujajoukon syöttämisen syklisesti siirtymällä seuraavalle sivulle näiden muuttujien arvojen mukaisesti ja vaativien tulosten näyttämisen. Asiakasverkkosovellusten käyttö mahdollistaa hajautetun järjestelmän koko ohjelmakoodin sijoittamisen verkkoon, kun taas hyväksytystä asiakas- ja palvelinsovellusten verkkoon sijoittamistavasta riippuen palvelua voidaan kutsua joko yhdeltä tai useammalta verkkosivulta.

    Tämän arkkitehtuurin myönteinen piirre on kyky järjestää pääsy hajautettuun CAD-järjestelmään mielivaltaisen verkkoselaimen kautta ilman, että sinun tarvitsee rakentaa omaa asiakassovellusta, tämän hajautetun CAD-järjestelmän järjestämisen lähestymistavan haittana on väistämätön aikaväli, joka tarvitaan järjestelmän komponenttien kuvaamiseen interaktiivisen vuorovaikutuksen prosessissa.

    Opinnäytetyö rakentaa metodologian asiakassovellusten käyttöönottoprosessin organisoimiseksi, jonka tarkoituksena on tarjota mahdollisuus käynnistää asiakassovellus järjestelmän laajuisin keinoin ilman sovelluskehitystyökaluympäristöä, kun taas sekä konsolityyppisille asiakassovelluksille että ikkunatyyppisille asiakassovelluksille käynnistäminen tulisi suorittaa kautta. komentorivi, ja verkkosovelluksille - selaimesta. Tieto verkkopalvelun sijainnista välitetään välityspalvelinluokkaobjektin kautta, joka on ensin konfiguroitava sopivaan URL-osoitteeseen.

    Työssä todetaan, että konsolisovellusta otettaessa on ensin vaihdettava projektin koodisivu, jota varten on vaihdettava koodisivulta, jossa kyrillinen teksti näkyy kaikissa Java-koodilla toimivissa integroiduissa työkalujärjestelmissä, koodisivulle, jossa kyrillinen teksti näkyy normaalisti komentoriviikkunassa.

    Väitöskirja osoittaa, että asiakas-web-sovelluksia käytettäessä voidaan asiakas- ja palvelintietokoneiden välisen viestinnän valitusta rakenteesta riippuen välittää tietoa verkkopalvelun sijainnista sekä proxy-luokan objektin että selaimesta syötetyn URL-osoitteen kautta. Työssä pohditaan myös sopivia vuorovaikutustapoja asiakkaan ja palvelun välillä heidän toiminnallisten tehtäviensä toteuttamisessa valitulle viestintärakenteelle.

    SOAP-standardi mahdollistaa löyhästi kytkettyjen sovellusten yhdistämisen toisiinsa niiden toteutusalustasta riippumatta, mikä mahdollistaa verkkopalveluiden avulla laajan heterogeenisten, löyhästi kytkettyjen resurssien tehokkaan ja optimaalisen käytön hajautetuissa sovelluksissa. Väitöskirja tarjoaa yleisen metodologian ohjelmistojen rakentamiseen vuorovaikutuksessa .NET-sovellusvälityspalvelinluokan objektin kanssa Java/J2EE-ympäristöpalvelun kanssa. Tämän tekniikan pohjalta toteutetaan kehitettyjen Java-verkkopalvelujen vuorovaikutuksen organisointi C#-kieleen pohjautuvaan .NET-ympäristöön rakennettujen Windows-asiakassovellusten kanssa.

    Hajautetun CAD-järjestelmän toimintamahdollisuus heterogeenisissä ympäristöissä laajentaa merkittävästi sen sovellusaluetta.

    Hallussa muotoillaan väitöskirjassa tehdyn tutkimuksen perusteella saadut keskeiset tieteelliset ja käytännön tulokset.

    Päätulokset työt 1. Verkkopalveluihin perustuvan hajautetun palvelukeskeisen CAD:n arkkitehtuuria on kehitetty, jolle on ominaista hajautettu rakenne, alustariippumattomuus ja mahdollisuus yksittäisten osajärjestelmien jatkuvaan modernisointiin niiden ominaisuuksien mukauttamiseksi muuttuviin suunnitteluolosuhteisiin.

    2. Otettiin käyttöön yleinen metodologia Java-verkkopalveluiden ja vastaavien WSDL-dokumenttien rakentamiseen alhaalta ylöspäin sekä niiden toimittamiseen hajautetulle CAD-palvelimelle offline-testauksen jälkeen kehitysympäristössä.

    3. On kehitetty tekniikka Java-verkkopalveluohjelmiston rakentamiseksi tyypillisten jatkuvien järjestelmien mallintamisen ongelmien ratkaisemiseksi elektronisten piirien automatisoidussa suunnittelussa.

    4. Tietojen pakkaamiseen perustuvan Java-verkkopalveluohjelmiston toteuttamiseksi on rakennettu aputoimintojen kirjasto.

    5. Hajautetun piirisuunnittelun automaatiojärjestelmän konsoli- ja ikkunaasiakassovelluksille on kehitetty yleinen metodologia mallien rakentamiseen ja toteutettu hajautetun CAD-järjestelmän toiminnan organisointi asiakasverkkosovellusten avulla.

    6. Hajautettujen CAD-järjestelmien rakentamiseen on kehitetty metodologia, joka varmistaa Java-verkkopalveluiden ja asiakassovellusten vuorovaikutuksen. mielivaltainen tyyppi heterogeenisissä ympäristöissä.

    1. Anisimov D.A. Verkkopalveluihin perustuvien tietokoneavusteisten suunnittelujärjestelmien rakentaminen [Teksti] / Anisimov D.A. Gridin V.N., Dmitrevich G.D. // Teollisuuden automaatio - 2011. - Nro 1 - S. 9-12.

    2. Anisimov D.A. Verkkoteknologioihin perustuvien tietokoneavusteisten suunnittelujärjestelmien rakentaminen [Teksti] / Gridin V.N., Dmitrevich G.D., Anisimov D.A. // Tietotekniikka - 2011. - Nro 5. - S. 23-27.

    3. Anisimov D.A. Verkkopalvelujen rakentaminen piirisuunnittelun automaatiojärjestelmiin [Teksti] / Gridin V.N., Dmitrevich G.D., Anisimov D.A. // Tietotekniikka ja tietokonejärjestelmät - 2012. - Nro 4. - S. 79-84.

    4. Anisimov D.A. Menetelmät rakennusautomaatiojärjestelmiin verkkopalveluihin perustuvaa piirisuunnittelua varten [Teksti] / Anisimov D.A. // Izvestiya SPbGETU "LETI" - 2012. - Nro 10 - Pietari: Pietarin sähköteknisen yliopiston kustantamo "LETI", - S. 56-61.

    5. Anisimov D.A. Pääsy web-resursseihin CAD-muodossa navigointi- ja ohjausjärjestelmille [Teksti] / Laristov D.A., Anisimov D.A. // Gyroskooppi ja navigointi. 2007. Nro 2. -S. 106.

    Web palvelut- uusi sana hajautettujen järjestelmien teknologiassa. Erittely Open Net Environment (ONE) Sun Microsystems Corporation ja aloite. Net, Microsoft tarjoaa infrastruktuurin verkkopalveluiden kirjoittamiseen ja käyttöönottoon. SISÄÄN tällä hetkellä Verkkopalvelumääritelmiä on useita. Web-palvelu voi olla mikä tahansa sovellus, joka käyttää Internetiä, kuten Web-sivu, jolla on dynaamista sisältöä. Suppeammassa merkityksessä verkkopalvelu on sovellus, joka paljastaa julkisen käyttöliittymän, jota muut Web-sovellukset voivat käyttää. ONE Sun -spesifikaatio edellyttää, että Web-palvelut ovat saatavilla HTTP:n ja muiden Web-protokollien kautta, jotta tietoa voidaan vaihtaa XML-sanomien kautta ja löytää erikoispalvelut- hakupalvelut. Web-palveluihin pääsyä varten on kehitetty erityinen protokolla - Yksinkertainen Objektin käyttöoikeus Protokolla (SOAP), joka tarjoaa XML-pohjaisen yhteentoimivuuden monille verkkopalveluille. Verkkopalvelut ovat erityisen houkuttelevia, koska ne voivat tarjota korkeatasoista yhteentoimivuutta eri järjestelmien välillä.

    Sunin ONE-arkkitehtuurin mukaan suunniteltu hypoteettinen verkkopalvelu voisi olla muodossa, jossa palvelurekisteri julkaisee Web-palvelun kuvauksen dokumenttina. .

    Web-palvelujen valtava potentiaali ei riipu niiden luomiseen käytetystä tekniikasta. HTTP, XML ja muut verkkopalveluiden käyttämät protokollat ​​eivät ole uusia. Yhteentoimivuus ja Web-palvelujen skaalautuvuus tarkoittaa, että kehittäjät voivat nopeasti rakentaa suuria sovelluksia ja suurempia Web-palveluita pienemmistä verkkopalveluista. Sun Open Net Environment -spesifikaatiossa kuvataan rakentamisen arkkitehtuuri älykkäät verkkopalvelutÄlykkäät verkkopalvelut käyttävät yhteistä toimintaympäristöä. Jakamalla kontekstin älykkäät verkkopalvelut voivat suorittaa standarditodennuksen rahoitustapahtumille, tarjota suosituksia ja ohjeita, jotka perustuvat hankkeeseen osallistuvien yritysten maantieteelliseen sijaintiin. sähköinen liiketoiminta.

    Jotta voit luoda sovelluksen, joka on verkkopalvelu, sinun on käytettävä useita tekniikoita.

    Näiden tekniikoiden suhde on perinteisesti esitetty kuvassa. 10.1.


    Riisi. 10.1.

    Itse asiassa verkkopalvelut ovat yksi toteutusvaihtoehdoista komponenttiarkkitehtuuri, jossa sovellusta pidetään joukkona komponentteja, jotka ovat vuorovaikutuksessa toistensa kanssa. Kuten on toistuvasti sanottu, käynnissä olevien komponenttien vuorovaikutus eri alustoilla, on melko monimutkainen ongelma, erityisesti se vaatii kehittämistä viestintäprotokolla , joka ottaa huomioon eri alustojen välisen tiedonsiirron erityispiirteet. Yksi Web-palveluiden harkitun teknologian taustalla olevista pääajatuksista on binaarin hylkääminen viestintäprotokolla. Järjestelmän komponenttien välinen sanomien vaihto tapahtuu XML-sanomien välittämisellä. Koska XML-viestit ovat tekstitiedostoja, siirtoprotokolla voi olla hyvinkin erilainen - XML-viestejä voidaan lähettää HTTP-, SMTP-, FTP-protokollien kautta ja erilaisten kuljetusprotokollien käyttö on sovelluksille läpinäkyvää. Kuten jo mainittiin, protokollaa, joka mahdollistaa verkkopalvelujen vuorovaikutuksen, kutsutaan SAIPPUA (Simple Object Access Protocol). Se on määritelty XML:n perusteella. SAIPPUA varmistaa hajautettujen järjestelmien vuorovaikutuksen käytetystä objektimallista tai alustasta riippumatta. Tiedot sisällä SAIPPUA lähetetään erityismuotoisina XML-asiakirjoina. SAIPPUA ei vaadi mitään erityistä siirtoprotokollaa. Kuitenkin sisään oikeita sovelluksia yleisin lähetys SAIPPUA-viestit HTTP-protokollan kautta. Sitä käytetään laajalti myös kuljetusvälineenä SMTP-protokolla, FTP ja jopa "puhdas" TCP. Niin, SAIPPUA määrittää mekanismin, jolla verkkopalvelut voivat kutsua toistensa toimintoja. Tietyssä mielessä tämän protokollan toiminta muistuttaa kutsua etäproseduurille - soittaja tietää verkkopalvelun nimen, sen menetelmän nimen, parametrit, jotka menetelmä hyväksyy, muotoilee kutsun tälle menetelmälle muodossa SAIPPUA-viestit ja lähettää ne verkkopalveluun.

    Kuvattu lähestymistapa soveltuu kuitenkin vain, jos Web-palvelun toteuttamien menetelmien "allekirjoitukset" tunnetaan etukäteen. Mutta entä jos ei ole? Tämän ongelman ratkaisemiseksi verkkopalvelumalliin on lisätty lisäkerros - palvelurajapintojen kuvauskerros. Tämä kerros esitetään kuvauksena WSDL.

    W3C määritelmän mukaan " WSDL - XML-muoto kuvausta varten verkkopalvelut joukkona rajallisia operaatioita, jotka toimivat dokumenttisuuntautuneen tai prosessisuuntautuneen informaation sisältävillä viesteillä. WSDL kuvaa täysin verkkopalvelun käyttöliittymän ulkomaailmaan. Se tarjoaa tietoa palveluista, joita voidaan saada palvelun menetelmillä ja miten niihin pääsee käsiksi. Jos verkkopalvelumenetelmän allekirjoitusta ei siis tarkasti tunneta (esimerkiksi se on muuttunut ajan myötä), kohdeverkkopalvelua voidaan kysyä WSDL-description - tiedosto, johon nämä tiedot sisältyvät.

    Seuraava teknologian kerros on palvelu. Universal Description, Discovery and Integration (UDDI).Tämä tekniikka sisältää verkkopalvelurekisterin ylläpitämisen. Yhdistämällä tähän rekisteriin kuluttaja voi löytää tarpeisiinsa parhaiten sopivat verkkopalvelut. Tekniikka UDDI mahdollistaa halutun palvelun etsimisen ja julkaisun, ja nämä toiminnot voidaan suorittaa sekä henkilö itse että toinen verkkopalvelu tai erityinen asiakasohjelma. UDDI, puolestaan ​​on myös verkkopalvelu.

    Siten verkkopalvelut ovat toinen järjestelmän toteutus väliohjelmisto. Tämän tekniikan erottuva piirre on sen riippumattomuus käytetystä ohjelmistosta ja laitteisto, sekä laajalti käytettyjen avoimet standardit(kuten XML) ja tavallisia viestintäprotokollia.

    Tällä hetkellä Web-palvelut ovat erittäin aktiivisesti edistetty tekniikka, ja ne on asetettu välineeksi useiden ongelmien ratkaisemiseen.

    On huomattava, että niiden käytöllä voidaan rakentaa ns. "standardi" sovelluksia, joissa palvelinosa on suunniteltu web-palveluksi.

    Simple Object Access Protocol (SOAP)

    Perusprotokolla, joka tarjoaa vuorovaikutusta Web-palveluympäristössä, on protokolla

    Luku 1. Yleiset menetelmät verkkopalveluihin perustuvien hajautettujen järjestelmien rakentamiseen

    1.1. Palvelukeskeinen arkkitehtuuri.

    1-2. Tekniikka Java-verkkopalveluiden rakentamiseen.

    1-3. Verkkopalveluiden alustava testaus.

    kappale 2

    2-1. Piirisuunnittelun automaatiojärjestelmien matemaattinen tuki.

    2-2. Verkkopalvelu lineaaristen järjestelmien suunnitteluun taajuusalueella.

    2-3. Verkkopalvelu epälineaaristen järjestelmien stationaarisen järjestelmän laskemiseen.

    2-4. Palvelukeskeinen integroitu järjestelmä linearisoitujen piirien taajuusanalyysiin.

    2-5. Verkkopalvelu epälineaaristen järjestelmien laskemiseen dynaamisessa tilassa.

    Luku 3. Tietojen pakkausmenetelmiin perustuvien verkkopalvelujen rakentaminen.

    3-1. Eliminaatiomenetelmät nolla elementtiä matriisien varastoinnin ja käsittelyn aikana.

    3-2. Tekniikka verkkopalveluiden modifioitujen versioiden kehittämiseen.

    3-2-1. Muutos symbolisessa vaiheessa.

    3-2-2. Muokkaus numeerisessa vaiheessa.

    3-3. Verkkopalvelu piiritoimintojen herkkyyden laskemiseen parametrien vaihteluille.

    3-3-1. Verkkopalvelumenetelmän rakentaminen yhtälöiden differentiointiin.

    3-3-2. Verkkopalvelumenetelmä, joka perustuu liitteenä olevaan skeemaan.

    3-4. Verkkopalvelu kiinteän tilan muuttujien herkkyyden laskemiseen.

    3-4-1. Verkkopalvelumenetelmän rakentaminen muuttujien vektoriherkkyyden laskemiseen.

    3-4-2. Verkkopalvelumenetelmä muuttujien skalaariherkkyyden laskemiseen.

    Luku 4. Menetelmät hajautettujen CAD-asiakassovellusten rakentamiseen.

    4-1. Tekniikka asiakassovellusten rakentamiseen WSDL-dokumenttiin perustuen.

    4-1-1. Verkkopalvelujen käyttöönotto Apache-palvelin kollikissa.

    4-1-2. Tekniikka WSDL-tiedoston tuomiseksi ja asiakassovellusrungon rakentamiseksi.

    4-2. Hajautetun piirisuunnittelujärjestelmän asiakassovellukset.

    4-2-1. Metodologia rakennuskonsoliasiakkaille.

    4-2-2. Metodologia ikkunallisten asiakassovellusten rakentamiseen.

    4-2-3. Metodologia asiakasverkkosovellusten rakentamiseen.

    4-3. Java-asiakassovellusten käyttöönotto.

    4-3-1. Komentoriviltä suoritettavien Java-asiakassovellusten käyttöönotto.

    4-3-2. Verkkoselaimesta käynnistettyjen Java-asiakassovellusten käyttöönotto.

    4-4. Asiakassovellusten ja verkkopalvelujen vuorovaikutuksen organisointi heterogeenisissä ympäristöissä.

    Opinnäytetyön johdanto (osa abstraktia) aiheesta "Menetelmien tutkimus ja kehittäminen verkkopalveluteknologiaan perustuvien hajautettujen tietokoneavusteisten suunnittelujärjestelmien rakentamiseksi"

    Tietokoneavusteisten suunnittelujärjestelmien laajaa käyttöönottoa teknisten ongelmien ratkaisukäytännössä rajoittaa merkittävästi lisensoitujen CAD-ohjelmistojen korkea hinta. Samalla omien tietokoneavusteisten suunnittelujärjestelmien luomiseen liittyy valtavia resurssikustannuksia, eikä sitä voida toteuttaa lyhyessä ajassa, koska nykyaikaisen CAD:n kehittäminen vaatii satoja henkilötyövuosia. Ongelmaa vaikeuttaa myös se, että todellisissa käyttötilanteissa monitoimisia integroituja CAD-järjestelmiä (esimerkiksi Micro-Cap 7, PSPICE, DISPC) käytetään pääsääntöisesti erittäin tehottomasti, koska näiden järjestelmien perusohjelmistojen erityisongelmien ratkaisemisessa käytetään usein korkeintaan 10-20% kunkin osaston erityisimmistä ohjelmistoista.

    Ratkaisu tähän kiireelliseen ongelmaan voi olla CAD-arkkitehtuurin hajauttaminen siirtymällä hajautettuihin suunnittelujärjestelmiin, jotka on rakennettu Internet-teknologioiden pohjalta, jotka toteuttavat sovellusten välisen viestinnän ja tiedonvaihdon tehtäviä. Nämä itsenäisesti hallitut sovellukset ovat itsenäisiä ja voivat olla vuorovaikutuksessa toistensa kanssa suorittaessaan yhteistä tehtävää. Internet-teknologioiden protokollat ​​muodostavat luotettavan perustan alijärjestelmien linkittämiselle, eivätkä ne, toisin kuin Grid-tekniikat, vaadi eri verkkosolmuissa sijaitsevien resurssien koordinoitua käyttöä, mikä yksinkertaistaa huomattavasti hajautetun CAD-järjestelmän rakentamista ja käyttöä. Päävaatimus tällaisen hajautetun järjestelmän toteuttamiselle on rajapintojen johdonmukaisuus, joiden kautta yksittäiset osajärjestelmät voivat olla vuorovaikutuksessa toistensa kanssa. Jos tämä vaatimus täyttyy, eri kehittäjät voivat luoda hajautetun CAD-järjestelmän yksittäisiä komponentteja ja ylläpitää niitä eri toimipisteissä, mistä ne toimitetaan (mahdollisesti kaupallisin perustein) kuluttajille.

    Tehokkain tapa integroida yksittäisiä alijärjestelmiä hajautettuun sovellukseen on palvelukeskeiseen arkkitehtuuriin perustuva etäproseduurikutsu verkkopalveluteknologiaa hyödyntäen. Web-palveluihin perustuva integraatio hajautetun CAD:n kehittämisessä mahdollistaa siirtymisen XML-pohjaisten rajapintojen ja vuorovaikutusten kuvaukseen, joka tarjoaa mahdollisuuden ohjelmistojen muuntamiseen ja kehittämiseen edellyttäen, että valittu käyttöliittymä säilyy. Tämä mahdollistaa yksittäisten alijärjestelmien löysän kytkennän ansiosta varmistaa vuorovaikutuksen eri palvelujen välillä millä tahansa alustalla ja mukauttaa olemassa olevia sovelluksia muuttuviin suunnitteluolosuhteisiin.

    Pääkuorma laskennallisten toimintojen suorittamisessa tällaisella arkkitehtuurilla kohdistuu verkkopalveluihin, jotka ratkaisevat kaikki suunniteltavien järjestelmien mallintamisen ongelmat, asiakassovelluksille osoitetaan vain yksinkertaisimmat toiminnot lähtötietojen valmistelusta ja simulointitulosten näyttämisestä. Verkkopalveluteknologiaan perustuvaa CAD:tä rakennettaessa voidaan toteuttaa seuraavan tyyppisiä asiakassovelluksia: konsolityyppinen sovellus, ikkunatyyppinen sovellus ja verkkosovellus.

    Konsolisovellusten ominaisuus on graafisen käyttöliittymän puute, mutta niiden käyttö voi olla hyödyllistä toteutettaessa yksinkertaisimpia CAD-järjestelmiä pienellä näyttöalalla varustettuihin kämmentietokoneisiin.

    Ikkunasovellukset tarjoavat graafisen käyttöliittymän parhaan mahdollisen toteutuksen ja sopivat parhaiten verkkopalveluteknologiaan perustuvan CAD:n kehittämiseen. Samanaikaisesti mihin tahansa verkkopalveluun on mahdollista rakentaa useita samantyyppisiä sovelluksia erilaisilla dialogivuorovaikutuksen toteutustavoilla.

    Verkkosovellus tarjoaa mahdollisuuden isännöidä kaikkia hajautettuja suunnittelujärjestelmäohjelmistoja Internetissä. Tällaisen rakenteen sovelluksen etuna on avoin pääsy hajautetun CAD:n käyttöön minkä tahansa tyyppisen selaimen kautta, tämän tyyppisen sovelluksen haittana on simuloidun järjestelmän komponenttien kuvauksen kirjoittamiseen tarvittavan ajan pidentyminen, joka johtuu reaktion odottamisesta jokaisessa lähtötietojen syöttämisvaiheessa.

    Kaikille asiakassovelluksille verkkopalveluita kutsutaan samalla tavalla, ja jokaisessa verkkopalvelussa voidaan käyttää mitä tahansa eri ohjelmointikielillä kirjoitettujen asiakassovellusten rakentamismenetelmiä. Tällaisia ​​asiakassovelluksia voidaan tarvittaessa helposti muokata muuttuvien suunnitteluolosuhteiden mukaan, verkkopalvelua on myös mahdollista laajentaa sisällyttämällä sen rakenteeseen lisämenetelmiä.

    Tämän väitöskirjan tarkoituksena on tutkia ja kehittää menetelmiä palvelukeskeiseen arkkitehtuuriin perustuvien alustariippumattomien hajautettujen tietokoneavusteisten suunnittelujärjestelmien rakentamiseen verkkopalveluteknologian avulla. Tiettyä toteutusta varten valittiin tehtäväksi rakentaa hajautettu automaatiojärjestelmä piirisuunnittelua varten, jonka pitäisi suorittaa lineaaristen ja epälineaaristen elektronisten piirien monimuuttujamallinnus stationääritilassa, taajuusalueella, aikatasolla sekä laskea piirien (siirto) funktioiden herkkyys ja stationäärimoodien muuttujien herkkyys parametrien vaihteluille.

    Tehtävän saavuttamiseksi on välttämätöntä:

    Kehitä yhteinen menetelmä Java-verkkopalvelupalvelimen rakentamiseen, itsenäiseen testaukseen ja käyttöönottoon.

    Suorittaa Java-verkkopalveluohjelmistojen tutkimus- ja kehitystyötä hajautetun piirisuunnittelun automaatiojärjestelmään.

    Tutki ja kehitä metodologiaa tiedonpakkausteknologiaan perustuvien Java-verkkopalveluiden rakentamiseen.

    Suorittaa tutkimus- ja kehitystyötä yhteisen metodologian rakentamiseksi konsoli- ja ikkunatyyppien asiakassovelluksiin sekä asiakasverkkosovelluksiin.

    Kehitetään metodologia verkkopalvelujen toiminnan toteuttamiseksi heterogeenisissä ympäristöissä.

    Väitöstyö sisältää johdannon, neljä lukua pääsisällöstä, johtopäätöksen ja 69 otsikkoa sisältävän bibliografian. Teos on esitetty 154 tekstisivulla ja sisältää 21 kuvaa ja yhden taulukon.

    Väitöskirjan johtopäätös aiheesta "Automaatiojärjestelmien suunnittelu (toimialan mukaan)", Anisimov, Denis Andreevich

    Väitöstyön päätulokset ovat seuraavat:

    1. Verkkopalveluihin perustuvan hajautetun palvelukeskeisen CAD:n arkkitehtuuria on kehitetty, jolle on ominaista hajautettu rakenne, alustariippumattomuus ja mahdollisuus yksittäisten osajärjestelmien jatkuvaan modernisointiin niiden ominaisuuksien mukauttamiseksi muuttuviin suunnitteluolosuhteisiin.

    2. Otettiin käyttöön yleinen metodologia Java-verkkopalveluiden ja vastaavien WSDL-dokumenttien rakentamiseen alhaalta ylöspäin sekä niiden toimittamiseen hajautetulle CAD-palvelimelle offline-testauksen jälkeen kehitysympäristössä.

    3. On kehitetty menetelmä Java-verkkopalveluiden ohjelmistojen rakentamiseksi tyypillisten mallinnusongelmien ratkaisemiseksi. jatkuvat järjestelmät elektronisten piirien tietokoneavusteisessa suunnittelussa.

    4. Tietojen pakkaamiseen perustuvan Java-verkkopalveluohjelmiston toteuttamiseksi on rakennettu aputoimintojen kirjasto.

    5. Hajautetun piirisuunnittelun automaatiojärjestelmän konsoli- ja ikkunaasiakassovelluksille on kehitetty yleinen metodologia mallien rakentamiseen ja toteutettu hajautetun CAD-järjestelmän toiminnan organisointi asiakasverkkosovellusten avulla.

    6. Hajautettujen CAD-järjestelmien rakentamiseen on kehitetty metodologia, joka varmistaa Java-verkkopalveluiden ja mielivaltaisen tyyppisten asiakassovellusten vuorovaikutuksen heterogeenisissä ympäristöissä.

    Johtopäätös

    Väitöstyötä tehtäessä pohdittiin menetelmien tutkimusta ja kehittämistä palvelukeskeisen arkkitehtuurin ja alustariippumattomien hajautettujen CAD-järjestelmien rakentamiseen sekä verkkopalveluiden käyttöön. Tällaisen CAD-järjestelmän konkretisoimiseksi valittiin hajautettu järjestelmä piirisuunnittelun ongelmien ratkaisemiseksi.

    Työ osoittaa, että verkkopalveluiden käyttö hajautetun CAD-ohjelmiston rakentamisessa mahdollistaa XML-pohjaisten rajapintojen ja vuorovaikutusten kuvaamisen, mikä mahdollistaa järjestelmän muokkaamisen ja kehittämisen edellyttäen, että tarvittava käyttöliittymä. Näin voit järjestää palveluiden välisen vuorovaikutuksen millä tahansa alustalla ja mukauttaa käytetyt sovellukset muuttuviin suunnitteluolosuhteisiin.

    Tämä artikkeli tarjoaa yleiset menetelmät Java-verkkopalveluiden rakentamiseen, itsenäiseen testaukseen ja käyttöönottoon palvelimella. Tämän metodologian pohjalta on kehitetty Java-verkkopalveluiden ohjelmistototeutus, joka ratkaisee lineaaristen ja epälineaaristen elektronisten piirien laskentaongelmat stationaarisessa tilassa, taajuusalueella, aikatasolla, mukaan lukien piiritoimintojen ja stationääristen tilamuuttujien herkkyyden laskeminen parametrien vaihteluille. Ohjelmiston rakenne perustuu tiedonpakkaustekniikan ja aputoimintojen laajaan käyttöön, jonka kirjasto syntyi väitöstyön aikana.

    Organisoidaksesi tehokkaan vuorovaikutuksen verkkopalvelun kanssa, a yleinen tekniikka Konsoli- ja ikkunatyyppisten asiakassovellusten sekä asiakasverkkosovellusten rakennuspohjat ja web-palvelujen toimivuus heterogeenisissä ympäristöissä toteutetaan.

    Väitöskirjan lähdeluettelo Teknisten tieteiden kandidaatti Anisimov, Denis Andreevich, 2013

    1. Piirisuunnittelun automatisointi: monografia / V. N. Ilyin [ja muut]; toim. V. N. Iljin. M.: Radio ja viestintä, 1987. - 368 s.

    2. Piirisuunnittelun automatisointi minitietokoneella Teksti.: opetusohjelma / V.I. Anisimov [ja muut]. JL: Leningrad Publishing House. un-ta, 1983. - 199 s.

    3. Anisimov, V.I. Interaktiivisten pakettien kokonaisuus analogisten ja digitaalisten elektronisten piirien mallintamiseen IBM/PC Textillä. / V.I. Anisimov, K.B. Skobeltsyn, A.V. Nikitin // Tietokoneavusteinen suunnittelu radioelektroniikassa ja instrumentaatiossa: 1991.-s.3-6.

    4. Anisimov, V.I. Epälineaaristen järjestelmien herkkyys parametrien tekstin vaihtelulle. / V.I. Anisimov, Yu.M. Amahvr // Izv.SPBGETU "LETI". Ser. Informatiikka, johtaminen ja tietotekniikat, -2007. Ongelma 2. - S. 22-26.

    5. Anisimov, V.I. Jatkuvien järjestelmien mallintaminen: oppikirja / V.I. Anisimov. Pietari: LETI, 2006. - 172 s.

    6. Bellignaso, M. Web-sovellusten kehittäminen ASP.NET 2.0 -ympäristössä Teksti: monografia / M. Bellignaso .; per. englannista. toim. Yu.N. Artemenko. M.: I.D. Williams LLC, 2007. - 640 s.

    7. Bellman, R. Johdatus matriisiteoriaan Teksti.: monografia / R. Bellman.; per. englannista. toim. V.B. Lidsky. M.: Nauka, 1969. - 336 s.

    8. Bogdanov, A.B. Palvelukeskeinen arkkitehtuuri: uusia mahdollisuuksia GRID-teknologioiden kehityksen valossa / A.V. Bogdanov, E.N. Stankova, V.V. Mareev (http//www.ict.edu.ru/lib/index.php?idres=5639)

    9. Vlakh, I. Konemenetelmät elektronisten piirien analysointiin ja suunnitteluun: monografia / I. Vlakh, K. Singhal.; per. alkaen eng. M.: Radio ja viestintä, 1988. - 560 s.

    10. Gamma, E. Olio-suunnittelun menetelmät Teksti: monografia / E. Gamma, R. Helm.; per. alkaen eng. Pietari: Pietari, 2001.

    11. I. Gerber, Sh. Täydellinen opas C # Text.: monograph / Sh. Gerber .; per. alkaen eng. Pietari: Piter, 2006. - 740 s.

    12. Gloriozov, E.L. Johdatus piirisuunnittelun automatisointiin: monografia / E.L. Gloriozov, V.G. Sorin, P.P. Sypchuk. M.: Neuvostoliiton radio, 1976. - 232 s.

    13. Dakonta, M. XML ja Java 2. Ohjelmoijan kirjasto Teksti: monografia / M. Dakonta, A. Saganich; per. alkaen eng. Pietari: 2001. - 384 s.

    14. Day, N. Eclipse: Web-Tools Platform Teksti: monografia / N. Day, L. Mandel, A. Rayman; per. englannista. M.:, 2008.- 688 s.

    15. Deitel, H.M. Java-ohjelmointitekniikka 2: Kirja 1. Grafiikka, JavaBeans, käyttöliittymä Teksti: monografia / H.M. Deitel, P.D. Deitel, S.I. Santry; M.: Binom-Press LLC, 2003.-560 s.

    16. Deitel, H.M. Java-ohjelmointitekniikka 2: Kirja 2. Hajautetut sovellukset Teksti: monografia / Kh.M. Deitel, P.D. Deitel, C.I. Santry; M.: Binom-Press LLC, 2003.-464 s.

    17. Deitel, H.M. Java-ohjelmointitekniikka 2: Kirja 3. Yritysjärjestelmät, servletit, JSP:t, verkkopalvelut Teksti: Monografia / H.M. Deitel, P.D. Deitel, S.I. per. alkaen eng. M.: Binom-Press LLC, 2003.- 672 s.

    18. Demidovich, B.P. Laskennallisen matematiikan perusteet: monografia / B.P. Demidovich, I.A. Maron. M.: Fizmatgiz, 1963. - 658 s.

    19. James, O. Iteratiivisia menetelmiä epälineaaristen yhtälöjärjestelmien ratkaisemiseksi Teksti: monografia / O. James, R. Vener.; per. englannista. toim. E.V. Vershkova, N.P. Zhidkova, I.V. Konovaltsev. M.: Mir, 1975.- 551 s.

    20. George, A. Numeerinen ratkaisu suuriin harvaan yhtälöjärjestelmään: monografia / A. George, J. Lu.; per. englannista. H.D. Ikramova M.: Mir, 1984. - 333 s.

    21. Piirisuunnittelun dialogijärjestelmät: monografia / V.I. Anisimov [ja muut]. M.: Radio ja viestintä, 1988. - 287 s.

    22. Dunaev S.B. Java Internetille Windowsissa ja Linux teksti.: monografia / S.B. Dunaev. M.: DIALOG-MEPhI, 2004. - 496 s.

    23. Zelenukhina, V.A. Internet-pohjaisten virtuaalisten laboratorioiden kehittäminen matemaattista mallintamista varten erottamalla laskennalliset ja visualisointitehtävät. / V.A. Zelenukhina, // Tietotekniikka, 2010. Nro 10. - KANSSA.

    24. Zykov, A.A. Graafiteorian perusteet Teksti.: monografia / A.A. Zykov. -M.: Nauka, 1987.-256 s.

    25. Ilyin, V.N. Piirisuunnittelun automaation perusteet Teksti.: monografia / V.N.Ilyin. M.: Energia, 1979. - 391 s.

    26. Tuotantojärjestelmien simulointimallinnus Teksti: monografia / A.A. Vavilov [et al.]. Kyiv: Technique, 1983. - 415 s.

    27. Ohjelmointi XML-tekstissä.: monografia / H.M. Deitel, [ja muut].; per. alkaen eng. M.: CJSC "Kustantamo BINOM", 2001.- 944 s.

    28. Kalitkin, H.H. Numeeriset menetelmät Teksti: monografia / N.N. Kalitkin. -M.: Nauka, 1978, - 519 s.

    29. Knut, D. Tietokoneohjelmoinnin taito Teksti.: monografia / D.Knut.; per. englannista. G.P. Bavenko, Yu.M. Vayakovsky.; toim. K.I. Babenko, V.S. Shtarkman. M.: Mir, 1976. - 734 s.

    30. Christofides, N. Graph Theory. Algoritminen lähestymistapa Teksti: monografia / N. Christofides.; per. alkaen eng. toim. G.P. Gavrilova. M.: Mir, 1978.-432 s.

    31. McDonald, M. Microsoft ASP.NET 2.0 ja esimerkkejä julkaisussa C # 2005 ammattilaisille Teksti: monografia / M. McDonald, M. Shpust; per. alkaen eng. toim. Yu.N. Artemenko. M.: I.D. Williams LLC, 2006. - 1408 s.

    32. Mihailov, V.B. Numeeris-analyyttiset menetelmät superjäykkien differentiaalialgebrallisten yhtälöjärjestelmien ratkaisemiseksi: monografia /V.B.Mihailov. Pietari: Nauka, 2005. - 223 s.

    33. Norenkov, I.P. Johdatus teknisten laitteiden ja järjestelmien tietokoneavusteiseen suunnitteluun: monografia / I.P.Norenkov. -M.: Korkeakoulu, 1986. 302 s.

    34. Norenkov, I.P. CAD:n teorian ja suunnittelun perusteet Teksti: monografia / I.P. Norenkov, V.B. Manichev. M.: 1990. -334 s.

    35. Norenkov, I.P. Elektroniikka- ja tietokonelaitteiden tietokoneavusteisen suunnittelun järjestelmät Teksti: monografia / I.P. Norenkov, V.B. Manichev. -M.: Korkeakoulu, 1983. 272 ​​s.

    36. Naughton, P. Java 2 Teksti: monografia / P. Naughton, G. Schildt. ; per. englannista. Pietari: BHV-Petersburg, 2001. - 1072 s.

    37. Petrenko, A.I. Tietokoneavusteisten suunnittelujärjestelmien rakentamisen perusteet: monografia / A.I. Petrenko, O.I. Semenkov. - Kiova: Korkeakoulu, 1984. 293 s.

    38. Petrenko, A.I. Taulukkomenetelmät elektronisten piirien mallintaminen tietokoneella Teksti.: monografia / A.I. Petrenko, A.I. Vlasov, A.P. Timchenko. - Kiova: Korkeakoulu, 1977. 186 s.

    39. Pissanecki, S. Harvamatriisien tekniikka Teksti.: monografia / S. Pissanecki .; per. alkaen eng. toim. H.D. Ikramova. M.: Mir, 1988. - 410 s.

    40. Razevig, V. Circuit modeling using Micro-Cap 7 Teksti: monografia / V. Razevig. M.: Telecom, 2003. - 368 s.

    41. Hajautettujen sovellusten kehittäminen Microsoft-alustalle. nettokehys Teksti: monografia / S. Morgan [ja muut].; per. englannista. M.: "Venäläinen painos", 2008. - 608 s.

    42. Asiakasverkkosovellusten kehittäminen Microsoft .Net Framework Text.: monografia / Glenn D. [ja muut].; per. englannista. M .: "Venäläinen painos", 2007. - 768 s.

    43. Borland JBuilder Developer's Guide Teksti: monografia / M. Lendy [et al.]; per. englannista. M.: Kustantaja "Viljame", 2004. -864 s.

    44. Rice, J. Matriisilaskelmat ja matemaattiset ohjelmistot: monografia / J. Rice; per. alkaen eng. M.: Mir, 1984. - 264 s.

    45. C# ammattilaisille Teksti.: monografia / Simon Robinson [ja muut].; per. englannista. S. Korotygin [ja muut]. M.: Lori, 2005. - 1002 s.

    46. ​​Simon, P. Microsoft Windows 2000 API. Ohjelmoijan tietosanakirja Teksti.: monografia / R.Simon.; Pietari: DiaSoft, 2002.-1088 s.

    47. Internetin ohjelmoinnin salaisuudet Java-teksti.: monografia / M. Thomas [ja muut].; per. englannista. Pietari: Pietari, 1997. - 640 s.

    48. Sechu, S. Viivakaaviot ja sähköpiirit Teksti: monografia / S.Seshu, M.B.Reid.; per. englannista. M.: Korkeakoulu, 1971. - 448 s.

    49. Sigorsky, V.P. Algoritmit elektronisten piirien analysointiin /

    50. V.P. Sigorsky, A.I. Petrenko. M.: Neuvostoliiton radio, 1976. - 606 s.

    51. Sigorsky, V.P. Insinöörin matemaattinen laite: monografia / V.P. Sigorsky. Kyiv: Technique, 1975. - 765 s.

    52. Slipchenko, V.G. Koneen algoritmit ja ohjelmat elektronisten piirien mallintamiseen Teksti .: monografia / V.G. Slipchenko, V.G. Tabarny - Kiev: Technique, 1976. 157 s.

    53. Neuvostoliitto, B.Ya. Järjestelmien mallintaminen Teksti.: monografia / B.Ya.Sovetov,

    54. S.A. Jakovlev. M.: Korkeakoulu, 1985. - 271 s.

    55. Solnitsev, R.I. Järjestelmäsuunnittelun automaatio automaattinen ohjaus Teksti: monografia / R.I. Solnitsev. M.: Korkeakoulu, 1991. - 328 s.

    56. Solnitsev, R.I. Gyroskooppisten järjestelmien suunnittelun automatisoinnin perusteet. Teksti: monografia / R.I. Solnitsev. M.: Korkeakoulu, 1985. - 240 s.

    57. Stepanenko, I.P. Mikroelektroniikan perusteet: oppikirja. käsikirja yliopistoille Teksti / I.P.Stepanenko. M.: Neuvostoliiton radio, 1980. -567 s.

    58. Tarasik, V.P. Teknisten järjestelmien matemaattinen mallintaminen: monografia / V.P. Tarasik. Minsk: Design PRO, 2004. - 639 s.

    59. Troelsen, E. C# 2005 -ohjelmointikieli ja .NET 2.0 -alusta: monografia / E. Troelsen; per. englannista. toim. A.G. Spivak. M.: I.D. Williams LLC, 2007. - 1168 s.

    60. Tewarson, F.R. Harvat matriisit Teksti.: monografia / F.R. Tewarson.; per. alkaen eng. M.: Mir, 1977. - 189 s.

    61. Fadeev, D.K. Lineaarialgebran laskennalliset menetelmät Teksti.: monografia / D.K. Fadeev, V.N. Fadeev. M .: Kirjallisuuden fysiikan ja matematiikan kustantaja, 1963. - 734 s.

    62. Ferrara, A. Verkkopalveluiden ohjelmointi .NET:lle Teksti: monografia / A. Ferrara, M. McDonald. Pietari: Piter, 2003. - 422 s.

    63. Forsythe, J. Machine Methods matemaattiset laskelmat Teksti: monografia / J. Forsythe, M. Malcolm, K. Moler .; per. englannista. toim. H.D. Ikramova. M.: Mir, 1980. - 277 s.

    64. Cymbal, A.A. Teknologia hajautettujen järjestelmien luomiseen Teksti.: monografia / A.A. Tsimbal, M.L. Anshina. Pietari: Piter, 2003. - 576 s.

    65. Chua, L.O. Elektronisten piirien koneanalyysi Teksti.: monografia / L.O.Chua, Lin.Pen-Min.; per. alkaen eng. -M.: Energy, 1980. 631s.

    66. Heineman, P. PSPICE Elektronisten piirien simulointi: monografia / R. Heineman. -M.: DMK Publishing House, 2005. 327s.

    67. Khabibulin, I. Web-palvelujen kehittäminen Java-tekstiä käyttäen.: monografia / I. Khabibulin. Pietari: BHV-Petersburg, 2003. - 400 s.

    68. Hall, M. Servletit ja JavaServer Pages Teksti: monografia / M. Hall; per. alkaen eng. - Pietari: Piter, 2001. 496 s.

    69. Esterby, O. Suorat menetelmät harvoille matriiseille Teksti.: monografia / O. Esterby, Z. Zlatev.; per. alkaen eng. M.: Mir, 1987. - 111 s.

    70. Young, M.D. Microsoft XML. Askel askeleelta Teksti.: monografia / M.D. Yang.; per. englannista. -M.: ECOM Publishing House, 2002. 384 s.69. http://bigor.bmstu.ru/?doc=080IS/ai006.mod/?cou-140CADedu/CAD.cou

    Huomioi yllä oleva tieteellisiä tekstejä lähetetty tarkastettavaksi ja saatu alkuperäisten väitöskirjatekstien (OCR) tunnustamisen kautta. Tässä yhteydessä ne voivat sisältää virheitä, jotka liittyvät tunnistusalgoritmien epätäydellisyyteen. Toimittamiemme väitöskirjojen ja tiivistelmien PDF-tiedostoissa ei ole tällaisia ​​virheitä.