Objekty v pohybu - NeXTSTEP 3.2

Z Multimediaexpo.cz

Autor: Michal Pohořelský
Uveřejněno: CHIP 06/94, strana 142-143


Operační systém DOS se dnes pomalu připravuje na úlohu exponátu v národním technickém muzeu. Po 12 letech "usilovného" vývoje u firmy Microsoft je jasné, že původní koncepci DOSu 3.0 nelze kvůli zpětné kompatibilitě podstatně vylepšit. Současná verze DOS 6.2 se vyznačuje pouze hromadou kosmetických úprav (kromě komprese DoubleSpace) a nepřináší nic nového. V roce 1995 by měl vedle Windows 4.0 existovat i DOS 7.0, ale to bude zřejmě tečka za jeho vývojem.

Naproti tomu operační systém NeXTSTEP, jenž vznikl v roce 1989, byl pro uživatele PC až do 10. února 1993 poměrně málo známý systém, jenž pracoval pouze na pracovních stanicích NeXT. Tehdy se rozhodl Steve Jobs a jeho tým převést OS NeXTSTEP z prostředí procesoru Motorola 68040 na procesor Intel 80486. NeXTSTEP 3.1 přesto vyvolal okamžitě obrovský rozruch, protože jeho objektově orientovaná koncepce je neuvěřitelně komplexní. Uživatelské prostředí je vynikající a zcela překrývá příkazovou řádku integrovaného BSD UNIXu 4.3, který má původ na univerzitě v Berkeley.

Po roce působení na platformě INTEL je již jasné, že NeXTSTEP se počítá mezi nejlepší a nejprogresivnější operační systémy, jaké si člověk dnes může pořídit. Proto je potěšující, že firma NEXT Computer Inc. předvedla na výstavě CeBIT'94 v Hannoveru (16 až 23. března) NEXTSTEP 3.2 spolu s novou technologií PDO. Následně uspořádala firma OASA Computers Ltd., jediný distributor OS NeXTSTEP v českých zemích, 30. března 1994 seminář na téma: NEXTSTEP - Operační systém vhodný pro vývoj kritických aplikací.

Seminář zahájil, v 9 hodin ráno, pan Ing. Peter Wojtovič, vedoucí střediska SW služeb, který nese odpovědnost za kompletní podporu systému NeXTSTEP u nás. Poté pan Rainer Bernert, z pobočky NeXT Europe, posluchačům představil pomocí středoevropské angličtiny s německým přízvukem všechny produkty firmy NEXT a zmínil se vývoji systému NeXTSTEP od roku 1989. Potom se nám až dokonce věnoval pan Manavedra Thakur, zastupující pobočku NEXTu ve Velké Británii. Téměř celý seminář byl veden v odborné angličtině.


Změny v NeXTSTEPu 3.2


NeXTSTEP 3.2 nepřináší žádné výrazné novinky, avšak na procesoru Intel se nyní nabízí velké množství ovladačů pro procesorové sběrnice (VL-BUS, EISA a PCI), pevné disky (IDE a SCSI), grafické karty (S3, ATI68800, Wingine, ET4000 a další), zvukové karty (MS Sound System). U některých nástrojů v NeXTSTEPu byla podstatně vylepšena jejich dokumentace a byly odstraněny zjištěné anomálie systému. Podle očekávání se s NeXTSTEPem také dodává omezená verze emulátoru pro DOS a Windows 3.1 od Insignia Software. Vedle toho si již můžete koupit nabízené programy od nezávislých softwarových firem. Ceny nabízených aplikací od třetích stran se pohybují od 4 364 Kč do 288 764 Kč. U firmy OASA si můžete pořídit následující varianty NeXTSTEPu:

1. Uživatelské prostředí, jenž slouží pouze ke spouštění některých nástrojů OS a hotových aplikací (Runtime). Dodává se na CD-ROM s anglickou, francouzskou nebo německou dokumentací za 29 470 Kč.

2. Programátorské prostředí, které obsahuje všechny vývojové nástroje a mnoho dalších podpůrných utilit pro vytváření, udržování a další zdokonalování aplikací. Dodává se na CD-ROM s anglickou, fracouzskou nebo německou dokumentací za:

  • zaváděcí cenu: 45 000 Kč (Promotion KIT)
  • pevnou cenu: 94 885 Kč

3. Akademickou verzi programátorského prostředí - určeno školám, která rovněž obsahuje všechny vývojové nástroje a utility za 11 295 Kč.

Pokud si přejete pracovat v českém prostředí, musíte vydat další peníze:

  • CS podpora: 2 850 Kč
  • 12 řezů PS fontů: 6 870 Kč


Objektově orientované programování


I v prostředí DOSu existují prostředky pro tvorbu objektově orientovaných aplikací (třeba Borland C++ 4.0), ale základním problémem je spolupráce s ostatními aplikacemi. Vytvořit a odladit rozsáhlou, uživatelsky přítulnou, objektovou aplikaci je nepochybně kus kumštu, ale vývojové týmy mohou používat objekty pouze uvnitř vytvářené aplikace. Přitom snahy o integraci několika aplikací od různých výrobců v počítačové síti jsou stále silnější. Posílat objekty cizím aplikacím ve Windows NEJDE. A nic na tom nezmění ani berličky typu DDE nebo OLE 1.0. Z toho je zřejmé proč celý softwarový průmysl volá po objektově orientovaném systému.

Dalším podstatným důvodem pro objekty je přirozená snaha již vytvořenou aplikaci dále vylepšovat a udržovat, což se relativně samostatnými objekty jde neporovnatelně jednodušeji. Důkazem může být na semináři prezentovaný graf, který zobrazoval množství programového kódu pro aplikace v prostředí Windows 3.1 a NeXTSTEP. Dobrá aplikace (spreadsheet Lotus Improv) v NeXTSTEPu obsahuje v průměru pouze 20 procent kódu nutného ve Windows ! Začíná být zřejmá krize tradičního procedurálního programování, které se nemůže dále rozvíjet.


Portable Distributed Objects


Přenosné distribuované objekty (PDO) jsou novou unikátní technologií, která není přímo součástí NeXTSTEPu 3.2. PDO je prvním produktem, který dovoluje provozovat heterogenní klient/server aplikace založené na objektové technologii. NeXTSTEP aplikace, které se spoléhají na objektovou strukturu NeXTSTEPu (skládájící se z objektů obsahujících data a specifické chování) mohou komunikovat s čímkoliv jiným přes systém zpráv. Tato architektůra nabízí vyjímečně dobré klient/server prostředí, jenž eliminuje nutnost neustálého předělávání původní modelu, což je vyžadováno při používání tradičního strukturovaného programování. Objekty organizované do bloků mohou být prováděny na hardwaru klienta nebo řídícího serveru, kdykoliv to vyžaduje spuštěná úloha. PDO uskutečnuje rozvinutí objektů serveru na pracovních stanicích s odlišným operačním systémem (HP-UX 9.0) ! Tyto objekty mohou používat rozmanité klient aplikace, pokud jsou data a centrální jádro probíhajících procesů umístěné na vysoce výkonném serveru. PDO dále dovoluje rozšířit tuto strukturu o bezešvou objektovou strukturu NeXTSTEPu, kterou používají vývojový programátoři pro lokální i distribuované objekty. Vývojáři NeXTSTEP aplikací se nemusí učit nic nového, poněvadž PDO nástroje a objektové knihovny jsou podmnožinou stávajících nástrojů a knihoven NeXTSTEPu. Detaily síťové komunikace nejsou vůbec důležité, protože PDO obsahuje nízkoúrovňové protokoly a vytváření zpráv pro lokální klient objekty. Technologie PDO se skládá z následujících komponent:

  1. Objective C – Má mnoho vlastností SmallTalku s výkonností Céčka. Objektové C nabízí možnost dynamického vytváření programů, což je podstatné při programování flexibilního GUI a distribuovaných zpráv pro jiný počítač v rámci počítačové sítě. Rozšířené výhody objektu v distribuovaném počítačovém prostředí dovolují aplikacím zasílat zprávy jiným aplikacím v síti. To přináší možnost řídit událostmi celou počítačovou síť. Zdrojový kód programu je automaticky optimalizován a uložen v proveditelném formátu. Objective C je založeno na GCC verze 2.4 od firmy Free Software Foundation Inc.
  2. ANSI C – Průmyslový standard ANSI C je zařazen pouze kvůli zpětné kompatibilitě.
  3. GDB Debugger – Umožňuje ladit optimalizovaný kód s pomocí přerušovacích bodů. GDB Debugger je plně integrován s editorem EDIT a Project Builderem včetně podpory myši při nastavování přerušovacích bodů, zkušebních dat, zastavování a spouštění programů a při dalších ladících operacích.
  4. Objekty jádra NeXTSTEPu – API, které je součástí všech NeXTSTEP aplikací. Objekty jádra poskytují strukturu pro ovládání datových struktur, jenž jsou běžné ve většině aplikací. Můžeme využívat všechny objekty a jejich chování lze libovolně modifikovat nebo rozšiřovat pomocí dodatečných podtříd v jazyku Objective-C.
  5. Distribuované objekty NeXTSTEPu – Objekty vysoké úrovně, které mají v sobě zapouzdřeny detaily síťových protokolů, dovolují distribuci procesů, sdílení objektových služeb a komunikaci mezi aplikacemi (viz předchozí text).
  6. DOEventLoop – Koordinuje vícenásobné vstupy a oznamuje ovladačům, kde jsou dostupná data pro čtení, pokud na portu čeká zpráva jádra MACH. DOEventLoop je objekt vytvářející strukturu pro textově orientované aplikace na serveru.
  7. Přenosný nmserver – Dovoluje transparentní komunikaci přes TCP/IP s dalšími implementacemi nmserveru bez nutnosti dodatečně instalovat software na straně klienta. Objektům pracujícím na síti poskytuje možnost vyhledávání jednoduchých jmen v servisní databázi.
  8. NeXTSTEP souborové funkce – Poskytují transparentní nezávislý přístup k původnímu souborovým systémům. Jedná se o API vybavené pro čtení, zapisování a modifikování proudů dat nezávisle na původních souborech, obsahu paměti apod.
  9. NeXTSTEP Zone malloc – Jde o flexibilní zprávu paměti pomocí funkcí obsazujících pamět podle přání programátora.
  10. Přenosný BuildServer – Nabízí vývojářům Project Builder, který dovoluje vytvářet PDO objekty na cílové platformě. Project Builder slouží k vytváření, ladění a udržování projektu aplikace. Udržuje všechny soubory a zdroje spojené s aplikací. Project Builder dovede sám připravit základní rozhraní, které je potom společné většině aplikací. Generuje i Makefile, což je velmi silný nástroj pro zprávu projektů. Když se při kompilaci projektu objeví chyba, kritická část kódu se okamžitě přenese do integrovaného editoru EDIT, kde chybu opravíme.
  11. Systém nastavení NeXTSTEPu – Nastavuje funkce a programy pro čtení a zápis standartních nastavení uživatele pro NeXTSTEP i hostitelský operační systém.

PDO verze 1.0 vyžaduje NeXTSTEP 3.1 nebo vyšší. U firmy OASA si můžete pořídit tyto varianty technologie PDO verze 1.0 na CD-ROM:

  1. PDO pro HP-UX 9.0, HP Server Mod. 715 nebo 725 – 78 300 Kč
  2. PDO pro HP-UX 9.0, HP Server Mod. 735 nebo 755 – 155 800 Kč
  3. PDO pro HP-UX 9.0, HP Server Mod. 890 /1,2,3,4 – 310 800 Kč


Závěr


Samotný NeXTSTEP 3.2 nic převratného nepřinesl. Technologie PDO 1.0 je však nový revoluční prvek v počítačovém světě. Bill Gates bude muset vyvinout nadlidské usílí, pokud se rozhodne dohnat náskok firmy NEXT Computers Inc. v objektové technologii. PDO zatím umí spolupracovat pouze se systémem Hewlett Packard, ale očekává se brzy napojení i na pracovní stanice SUN, popřípadě Digital Alpha. Nechme se proto vývojem událostí překvapit...