Kdybyste chtěl ušetřit a nevyžadoval normativní texty, je na Internetu ke stažení kniha s velice podrobným popisem ASN.1:
http://www.oss.com/asn1/bookreg2.html
Jako největší problém ASN.1 vidím špatnou dostupnost free implementací parserů pro ASN.1 data. Nevím jak teď, ale před pár lety byly k dispozici jen komerční parsery a ASN toolkity, jejichž cena byla podstatně vyšší než cena ISO norem. Oproti tomu je k dispozici zdarma mnoho parserů XML.
Aspoň bych zmínil že ASN.1 používá i SNMP nebo LDAP. Dál když už autor nadefinuje ASN.1 entitu, proč neukáže jak vypadá zakódovaný záznam (aspoň v BERu)? A hlavně v anketě trestuhodně chybí volba CSV soubor.
Myslím, že se bohužel musíme smířit s tím, že většina vývojářů zkrátka Lisp používat nebude, byť je to v mnoha ohledech nepřekonaný jazyk a koncept.
Nevím, co vám přijde tak složitého na práci s XML. Když použijete vhodnou knihovnu/parser, XML se vám automaticky namapuje na datové struktry použitého jazyka.
Jste trdlo, když chcete něco implementovat pořádně, udělejte to podle nějakých open source zdrojáků, nikdy podle těch ukecaných iso referencí. Mimochodem v jejich referenční implementaci BER parseru byl pěkný buffer overflow. :)
Uvedu jiný příklad "jména a příjmení", řekněme jen pro SIZE(1..20)
Někdo se teď (v Evropské unii) bude jmenovat František Løkenbundn - je to nebo není na 20 znaků?
To se podle mě bez informací o kódu nedá správně naimplementovat, pouze tvůrci teorie to ještě nepochopili (a asi už nepochopí, jak je vidět i ze standardů a doporučení vydávaných u nás.)
Čtení XML je samozřejmě pomalejší než u nějakého binárního formátu. Na druhou stranu s daty, která se přečtou, se většinou následně dělá tolik operací, že samotné rychlejší načtení na celkovou dobu zpracování nemá podstatný vliv.
Neee, cteni BLBEHO formatu (s komplikovanym quotingem a slozitymi pravidly) je pomalejsi. A treba takovy vzdaleny senzor teploty s dotazem mnoho operaci nedela. A i kdyby delal, to ze je neco jineho implementovano spatne nikdy neni omluva.
Ačkoli se zřejmě překlad „abstraktní syntaktická notace“ pro ASN.1 opravdu používá, úplně si nejsem jist, že je to dobře. Pokud bych to měl přeložit, řekl bych spíš „notace pro abstraktní syntaxi“, tzn. abstraktní se IMHO váže k syntaxi, nikoli k notaci, jak se mi zdá naznačovat „abstraktní syntaktická notace“.
Zní to příjemně, skoro jako reklama. Aniž bych si chtěl nárokovat nějakou vlastní absolutní pravdu, zkusím jen vyložit svůj pohled.
Vzhledem k četným referencím mám dojem, že standard ASN.1 vznikl v těsné kooperaci s ostatními projekty ISO OSI sítí. Kdo někdy například absolvoval přednášku o sítích od Jiřího Peterky, má v souvislosti s projekty OSI zafixovanou v paměti jedinou věc - návrh "od stolu". Bez širšího testování a zpětných vazeb. Všechny standardy jsou samozřejmě ISO, nebo ITU-T, nebo dokonce obojí, ale v praxi živořící na pokraji zájmu vedle volně dostupných specifikací jako jsou např. RFC, které se standardy mohou stát až při existenci dvou nezávislých implementací a širším testování.
S ASN.1 jsem se setkal poněkud nedobrovolně. Chtěl jsem trochu prozkoumat protokol SNMP a mimo jiné i zjistit proč je jeho volně dostupných implementací tak poskrovnu. Pohled do příslušného RFC nastíní, že SNMP je opravdu "simple", ale je definováno v ASN.1 a bez jeho znalosti se až ke konkrétnímu způsobu kódování údajů nedostanete.
Dobrá tedy, následoval jsem odkazy na dva ISO standardy z roku 1987 - ISO 8824 (ASN.1) a ISO 8825 (Basic Encoding Rules for ASN.1). A hle, tyto verze už nejsou platné a neprodávají se. Místo toho tu máme nové standardy 8824-1 až 8824-4 s několika doplněními v celkové ceně 600 CHF (asi 11000 Kč?) a standard 8825-1 s doplněním v celkové ceně 122 CHF (něco přes 2000 Kč?). Ano, jsou tam ještě specifikace dalších kódování - ISO 8825-2 až 8825-5 v celkové ceně 786 CHF (skoro 15000 Kč), ale těm jsem už opravdu nevěnoval žádnou pozornost.
Po kratším řádění na Googlu jsem zjistil, ze ty původní verze standardů z roku 1987 jsou obsahově stejné jako standardy ITU-T X.208 a X.209, které se ještě dají koupit. (Všimněte si, že se téměř musím doprošovat, aby mi někdo PRODAL něco, co mě zároveň nutí používat!) Po ještě delším řádění zjišťuji, že mi někdo ušetřil peníze a (nelegálně) je zveřejnil na Internetu. (Díky.)
Po pročtení standardů už je mi celkem jasné proč implementace tak jednoduchého protokolu, jakým je SNMP, už není ani zdaleka tak jednoduchá a proč bylo v novějších verzích specifikace SNMP nutné věnovat tolik místa vymezování podmnožiny ASN.1, která se pro definice smí použít.
Mně ta notace připadá jako syntakticky nešťastná, pokud se její uživatel dost nesnaží tak i nejednoznačná a její "základní" kódování zbytečně složité. Nemluvě o tom, že přečíst si pár stránek za v nové verzi už téměř pár desítek tisíc korun k tomu abych implementoval volně specifikovaný a jednoduchý Internetový protokol, to mi připadá už trochu moc. :-(