# Transceiver Intelligence Platform (TIP) ## Das massivste Transceiver & Switch Database Projekt der Welt **Version:** 1.0 — 2026-03-27 **Author:** Rene Fichtmueller / Context X **Repository:** github.com/renefichtmueller/transceiver-db **Integration:** EO Global Pulse (Flexoptix) --- ## 1. VISION Eine lebendige Intelligence-Plattform die alles vereint: - **159+ Transceiver** (bestehende npm DB) als Seed-Daten - **Echtzeit-Preisüberwachung** aller Wettbewerber weltweit - **Lagerbestände live** von FS.com bis chinesischen OEMs - **Digitalisierte Handbücher** aller 400+ Switch-Hersteller per MCP durchsuchbar - **Hype Cycle Engine** basierend auf Norton-Bass Multigenerational Diffusion Model - **FAQ/Troubleshooting Knowledge Base** aus gescannten Vendor-FAQs - **Automatische Blog-Generierung** aus Marktdaten und Trends - **Freitext-Suche** für Sales ("Kunde hat Cisco Nexus 93180, braucht 10km Transceiver") - **Template-Matching** (FlexBox Coding + Switch-Konfiguration) - **News-Aggregation** von OFC, ECOC, CIOE, Photonics West - **Fabrik-Monitoring** aller Transceiver-Hersteller weltweit **Kein statisches Nachschlagewerk — eine sich selbst aktualisierende Competitive Intelligence Engine.** --- ## 2. ARCHITEKTUR ### 2.1 System-Übersicht ``` ┌─────────────────────────────────────────────────────────────────────────┐ │ CLOUDFLARE EDGE LAYER │ │ │ │ Workers R2 Storage KV Cache Queues │ │ ┌─────────┐ ┌──────────┐ ┌─────────┐ ┌──────────┐ │ │ │ API GW │ │ PDFs │ │ Hot │ │ Scrape │ │ │ │ MCP Srv │ │ Manuals │ │ Product │ │ Jobs │ │ │ │ FAQ Chat│ │ Images │ │ Cache │ │ OCR Pipe │ │ │ │ Blog API│ │ Exports │ │ Prices │ │ Alerts │ │ │ └─────────┘ └──────────┘ └─────────┘ └──────────┘ │ │ │ │ │ │ │ └─────────┼──────────────┼──────────────────┼───────────────┼─────────────┘ │ Cloudflare Tunnel │ │ ┌─────────▼──────────────▼──────────────────▼───────────────▼─────────────┐ │ ERIK SERVER (.82) — Core Engine │ │ │ │ ┌───────────────────────────────────────────────────────────────────┐ │ │ │ PostgreSQL 17 + TimescaleDB + pgvector │ │ │ │ │ │ │ │ CORE TABLES: │ │ │ │ vendors · transceivers · switches · compatibility · │ │ │ │ documents · knowledge_base · standards · form_factors · │ │ │ │ templates · factories · news_articles · blog_drafts │ │ │ │ │ │ │ │ TIME-SERIES (Hypertables): │ │ │ │ price_observations · stock_observations · market_metrics │ │ │ │ │ │ │ │ FULL-TEXT SEARCH: │ │ │ │ tsvector auf allen durchsuchbaren Feldern │ │ │ └───────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌───────────────────────────────────────────────────────────────────┐ │ │ │ Qdrant (Docker, Port 6333) — Vector Search Engine │ │ │ │ │ │ │ │ Collections: │ │ │ │ product_embeddings · datasheet_chunks · faq_embeddings · │ │ │ │ manual_chunks · troubleshooting_embeddings · news_embeddings │ │ │ │ │ │ │ │ Payload Filtering: vendor, form_factor, speed, category, reach │ │ │ └───────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌───────────────────────────────────────────────────────────────────┐ │ │ │ Scraper Orchestrator (Node.js + Crawlee + Playwright, PM2) │ │ │ │ │ │ │ │ Job Scheduler: pg-boss (PostgreSQL-backed) │ │ │ │ Echtzeit: Preise + Stock (5-15 Min Intervall) │ │ │ │ Täglich: News, Messen, Blog-Feeds │ │ │ │ Wöchentlich: Handbücher, Datasheets, FAQs │ │ │ │ Monatlich: Factory-Updates, Vendor-Websites │ │ │ │ Change Detection: SHA-256 Content Hashing │ │ │ │ Adaptive Scheduling: Häufige Änderungen → kürzere Intervalle │ │ │ └───────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌───────────────────────────────────────────────────────────────────┐ │ │ │ Hype Cycle Engine (TypeScript) │ │ │ │ │ │ │ │ Norton-Bass Multigenerational Diffusion Model │ │ │ │ + Media Sentiment Analysis │ │ │ │ + Phase Classification (5 Phasen) │ │ │ │ = Automatische Hype Cycle Berechnung pro Technologie │ │ │ └───────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌───────────────────────────────────────────────────────────────────┐ │ │ │ OCR Pipeline: Docling → Chunk → Embed → Store │ │ │ │ Embeddings: Ollama nomic-embed-text auf .213 (zero cost) │ │ │ └───────────────────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────────────┘ ┌─────────────────────────────────────────────────────────────────────────┐ │ MAC STUDIO (.213) — AI Layer │ │ Ollama: nomic-embed-text (Embeddings), qwen2.5:14b (Blog/FAQ) │ └─────────────────────────────────────────────────────────────────────────┘ ┌─────────────────────────────────────────────────────────────────────────┐ │ EO GLOBAL PULSE — Frontend │ │ Transceiver LLM Chat · Sales Advisor · Hype Cycle Dashboard │ │ Compatibility Checker · Price Comparison · Template Finder │ └─────────────────────────────────────────────────────────────────────────┘ ``` ### 2.2 Warum diese Architektur | Anforderung | Komponente | Begründung | |---|---|---| | Relationale Daten | PostgreSQL 17 | Bewährt, Team kennt es, FK-Constraints, ACID | | Zeitreihen (Preise/Stock) | TimescaleDB Extension | Hypertable-Kompression (20x), Continuous Aggregates für Trends | | Vektor-Suche mit Filtern | Qdrant | Payload-Filtering: "Zeige Transceiver WHERE vendor=Cisco AND form_factor=QSFP28 ORDER BY similarity" — pgvector kann das nicht effizient | | Dokument-Storage | Cloudflare R2 | S3-kompatibel, keine Egress-Kosten, global verfügbar | | Hot-Cache | Cloudflare KV | Sub-ms Reads für häufig abgefragte Produkte | | API Layer | Cloudflare Workers | Global Edge, MCP-Server-Host, Multi-Tenant Routing | | Scraping | Crawlee + Playwright auf Erik | Crawlee (18k+ Stars) — Request-Queuing, Auto-Retry, Anti-Bot, Session-Management out of the box | | OCR | Docling v2.81 (bereits installiert) | Beste OSS-Option für technische PDFs mit Tabellen | | Embeddings | Ollama nomic-embed-text auf .213 | 768 Dimensionen, 8192 Token Context, zero API-Kosten | | Blog-Generierung | Ollama qwen2.5:14b auf .213 | Lokale LLM-Generierung, keine API-Kosten | ### 2.3 Kosten (monatlich) | Komponente | Hosting | Kosten | |---|---|---| | PostgreSQL + TimescaleDB + Qdrant | Erik (.82, existiert) | 0 EUR | | Cloudflare Workers (API) | Workers Paid Plan | ~5 EUR | | Cloudflare R2 (~100GB PDFs/Manuals) | R2 Storage | ~1.50 EUR | | Cloudflare KV (Hot Cache) | KV Namespace | ~0.50 EUR | | Residential Proxies (Scraping) | Bright Data / Geonode | 50-100 EUR | | Ollama Embeddings + LLM | Mac Studio .213 (existiert) | 0 EUR (Strom) | | **Gesamt** | | **~55-105 EUR/Monat** | --- ## 3. DATENBANK-SCHEMA ### 3.1 Core Tables (PostgreSQL) ```sql -- ============================================================ -- VENDORS (Hersteller, Distributoren, Reseller, OEMs) -- ============================================================ CREATE TABLE vendors ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), name TEXT NOT NULL UNIQUE, slug TEXT NOT NULL UNIQUE, -- URL-safe identifier type TEXT NOT NULL, -- manufacturer|distributor|oem|reseller|compatible headquarters TEXT, country TEXT, website TEXT, shop_url TEXT, -- Webshop URL für Scraping api_available BOOLEAN DEFAULT FALSE, api_endpoint TEXT, logo_r2_key TEXT, founded_year INTEGER, revenue_usd BIGINT, -- Letzte bekannte Jahresumsatz employee_count INTEGER, market_position TEXT, -- "Top 3 Global", "Regional Leader", etc. specialties TEXT[], -- ["400G", "Coherent", "CWDM"] scrape_config JSONB, -- Scraper-spezifische Config (Selektoren, etc.) last_scraped TIMESTAMPTZ, is_competitor BOOLEAN DEFAULT FALSE, -- Wettbewerber von Flexoptix is_factory BOOLEAN DEFAULT FALSE, -- Eigene Fertigung factory_locations TEXT[], -- ["Shenzhen", "Thailand", "Vietnam"] certifications TEXT[], -- ["ISO 9001", "RoHS", "TAA"] created_at TIMESTAMPTZ DEFAULT NOW(), updated_at TIMESTAMPTZ DEFAULT NOW() ); -- ============================================================ -- TRANSCEIVERS (Haupttabelle — erweitert bestehende npm DB) -- ============================================================ CREATE TABLE transceivers ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), vendor_id UUID REFERENCES vendors(id), part_number TEXT NOT NULL, standard TEXT, -- IEEE/MSA Referenz form_factor TEXT NOT NULL, -- SFP, SFP+, QSFP28, QSFP-DD, OSFP... speed_gbps NUMERIC NOT NULL, speed_label TEXT, -- "100G", "400G", "800G" lanes INTEGER, lane_rate_gbps NUMERIC, modulation TEXT, -- NRZ, PAM4, Coherent reach_meters INTEGER NOT NULL, reach_label TEXT, -- "SR", "LR", "ER", "ZR" fiber_type TEXT, -- SMF, MMF, Copper wavelengths TEXT, -- "850nm", "1310nm", "CWDM4" connector TEXT, -- LC, SC, MPO-12, MPO-16, CS, SN power_consumption_w NUMERIC, temp_range TEXT, -- COM (-0/70°C), IND (-40/85°C) category TEXT, -- DataCenter, Metro, LongHaul, DCI, CWDM, DWDM... dom_support BOOLEAN DEFAULT TRUE, digital_diagnostics TEXT, -- DDM, CMIS, SFF-8472, SFF-8636 -- CWDM/DWDM spezifisch wdm_type TEXT, -- CWDM, DWDM, null für non-WDM channel_count INTEGER, -- Anzahl Wellenlängen channel_spacing_ghz NUMERIC, -- 100GHz, 50GHz für DWDM tunable BOOLEAN DEFAULT FALSE, itu_grid TEXT, -- ITU-T G.694.1/G.694.2 -- Coherent spezifisch coherent BOOLEAN DEFAULT FALSE, baud_rate_gbaud NUMERIC, fec_type TEXT, -- oFEC, cFEC, KP4, RS-FEC dsp_vendor TEXT, -- Broadcom, Marvell, Inphi -- Lifecycle & Markt year_introduced INTEGER, year_mainstream INTEGER, -- Wann Massenmarkt erreicht year_peak INTEGER, -- Peak-Shipments year_decline INTEGER, -- Beginn Rückgang market_status TEXT, -- Mainstream, Growth, Emerging, Legacy, EOL hype_cycle_phase TEXT, -- InnovationTrigger, Peak, Trough, Slope, Plateau generation TEXT, -- "Gen1", "Gen2", "Next-Gen" -- Pricing price_tier TEXT, -- Budget, Standard, Premium msrp_usd NUMERIC, -- Listenpreis street_price_usd NUMERIC, -- Aktueller Marktpreis (von Scraper) -- Technische Details operating_case_temp TEXT, max_link_length TEXT, optical_budget_db NUMERIC, tx_power_min_dbm NUMERIC, tx_power_max_dbm NUMERIC, rx_sensitivity_dbm NUMERIC, extinction_ratio_db NUMERIC, -- Meta datasheet_r2_key TEXT, -- PDF in R2 image_r2_key TEXT, tags TEXT[], notes TEXT, created_at TIMESTAMPTZ DEFAULT NOW(), updated_at TIMESTAMPTZ DEFAULT NOW(), UNIQUE(vendor_id, part_number) ); -- ============================================================ -- SWITCHES (Alle Netzwerk-Switches aller Hersteller) -- ============================================================ CREATE TABLE switches ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), vendor_id UUID REFERENCES vendors(id), model TEXT NOT NULL, series TEXT, -- "Nexus 9000", "QFX5000", "7280R3" category TEXT, -- DataCenter, Campus, Edge, Core, SP layer TEXT, -- L2, L3, L2/L3 managed BOOLEAN DEFAULT TRUE, -- Port-Konfiguration ports_config JSONB, -- {"48x10G SFP+": 48, "6x100G QSFP28": 6} total_ports INTEGER, uplink_speed_gbps NUMERIC, max_speed_gbps NUMERIC, -- Höchste Port-Geschwindigkeit -- Leistungsdaten switching_capacity_tbps NUMERIC, forwarding_rate_mpps NUMERIC, latency_ns NUMERIC, buffer_mb NUMERIC, -- ASIC Info asic_vendor TEXT, -- Broadcom, Marvell, Cisco, NVIDIA asic_model TEXT, -- Tomahawk 4, Jericho2, Silicon One asic_generation TEXT, -- Features poe_support TEXT, -- None, PoE, PoE+, PoE++, UPoE stacking_support BOOLEAN DEFAULT FALSE, vxlan_support BOOLEAN DEFAULT FALSE, evpn_support BOOLEAN DEFAULT FALSE, bgp_support BOOLEAN DEFAULT FALSE, mpls_support BOOLEAN DEFAULT FALSE, openconfig_support BOOLEAN DEFAULT FALSE, sonic_compatible BOOLEAN DEFAULT FALSE, macsec_support BOOLEAN DEFAULT FALSE, -- Lifecycle release_date DATE, eos_date DATE, -- End of Sale eol_date DATE, -- End of Life last_support_date DATE, lifecycle_status TEXT, -- Active, EoS Announced, EoL, Legacy successor_model TEXT, -- Physisch rack_units NUMERIC, max_power_w NUMERIC, typical_power_w NUMERIC, weight_kg NUMERIC, airflow TEXT, -- F2B, B2F -- Pricing msrp_usd NUMERIC, street_price_usd NUMERIC, -- Dokumentation manual_r2_key TEXT, -- Digitalisiertes Handbuch in R2 datasheet_r2_key TEXT, config_guide_r2_key TEXT, compatibility_list_url TEXT, -- Vendor Compatibility Matrix URL -- Meta tags TEXT[], created_at TIMESTAMPTZ DEFAULT NOW(), updated_at TIMESTAMPTZ DEFAULT NOW(), UNIQUE(vendor_id, model) ); -- ============================================================ -- COMPATIBILITY (Switch ↔ Transceiver Kompatibilität) -- ============================================================ CREATE TABLE compatibility ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), switch_id UUID REFERENCES switches(id), transceiver_id UUID REFERENCES transceivers(id), verified_by TEXT, -- "Flexoptix Lab", "Vendor Matrix", "Community" verification_date DATE, verification_method TEXT, -- "tested", "vendor_matrix", "datasheet", "community" status TEXT DEFAULT 'compatible', -- compatible, incompatible, partial, unknown notes TEXT, firmware_min TEXT, -- Minimum Firmware für Kompatibilität known_issues TEXT, source_url TEXT, -- Link zur Quelle created_at TIMESTAMPTZ DEFAULT NOW(), UNIQUE(switch_id, transceiver_id) ); -- ============================================================ -- TEMPLATES (FlexBox Coding + Switch-Konfiguration) -- ============================================================ CREATE TABLE templates ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), type TEXT NOT NULL, -- flexbox_coding | switch_config name TEXT NOT NULL, description TEXT, switch_vendor TEXT, -- Für welchen Switch-Hersteller switch_series TEXT, -- Für welche Switch-Serie transceiver_type TEXT, -- Für welchen Transceiver-Typ speed_gbps NUMERIC, technology TEXT, -- CWDM, DWDM, SR, LR, ZR template_content TEXT NOT NULL, -- Der eigentliche Template-Code/Config variables JSONB, -- Platzhalter-Variablen tags TEXT[], created_at TIMESTAMPTZ DEFAULT NOW(), updated_at TIMESTAMPTZ DEFAULT NOW() ); -- ============================================================ -- DOCUMENTS (PDFs, Handbücher, Datasheets in R2) -- ============================================================ CREATE TABLE documents ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), entity_type TEXT NOT NULL, -- transceiver | switch | vendor | standard entity_id UUID, doc_type TEXT NOT NULL, -- manual | datasheet | config_guide | compatibility_list | faq | whitepaper title TEXT, filename TEXT, r2_key TEXT NOT NULL, -- Pfad in R2 source_url TEXT, -- Original-Download-URL file_size_bytes BIGINT, page_count INTEGER, ocr_status TEXT DEFAULT 'pending', -- pending | processing | completed | failed ocr_text TEXT, -- Extrahierter Volltext language TEXT DEFAULT 'en', content_hash TEXT, -- SHA-256 für Change Detection last_checked TIMESTAMPTZ, created_at TIMESTAMPTZ DEFAULT NOW(), updated_at TIMESTAMPTZ DEFAULT NOW() ); -- ============================================================ -- KNOWLEDGE BASE (FAQs, Troubleshooting, Best Practices) -- ============================================================ CREATE TABLE knowledge_base ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), category TEXT NOT NULL, -- troubleshooting | faq | best_practice | known_issue | compatibility_tip subcategory TEXT, -- optical_power | link_flap | temperature | firmware | interop question TEXT NOT NULL, answer TEXT NOT NULL, source_vendor TEXT, -- Von welchem Vendor-FAQ gescannt source_url TEXT, applies_to_form_factors TEXT[], -- ["QSFP28", "QSFP-DD"] applies_to_speeds TEXT[], -- ["100G", "400G"] applies_to_vendors TEXT[], -- ["Cisco", "Juniper"] severity TEXT, -- critical | high | medium | low | info resolution_steps JSONB, -- Strukturierte Lösungsschritte last_verified TIMESTAMPTZ, helpful_count INTEGER DEFAULT 0, -- Upvotes von Nutzern tags TEXT[], created_at TIMESTAMPTZ DEFAULT NOW(), updated_at TIMESTAMPTZ DEFAULT NOW() ); -- ============================================================ -- STANDARDS (IEEE, OIF, MSA — erweitert bestehende npm DB) -- ============================================================ CREATE TABLE standards ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), name TEXT NOT NULL UNIQUE, -- "IEEE 802.3bs", "OIF 400ZR" body TEXT, -- IEEE, OIF, MSA type TEXT, -- ieee_amendment | oif_ia | msa | de_facto speed_gbps NUMERIC, lanes INTEGER, lane_rate_gbps NUMERIC, modulation TEXT, fiber_type TEXT, wavelength TEXT, max_reach_meters INTEGER, fec_required BOOLEAN, form_factors TEXT[], year_draft INTEGER, year_ratified INTEGER, year_revised INTEGER, status TEXT, -- draft | ratified | revised | superseded superseded_by TEXT, member_count INTEGER, -- Für MSAs notes TEXT, url TEXT, created_at TIMESTAMPTZ DEFAULT NOW() ); -- ============================================================ -- FACTORIES (Fertigungsstätten weltweit) -- ============================================================ CREATE TABLE factories ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), vendor_id UUID REFERENCES vendors(id), name TEXT NOT NULL, country TEXT NOT NULL, city TEXT, factory_type TEXT, -- manufacturing | assembly | r_and_d | headquarters products TEXT[], -- ["SFP+", "QSFP28", "Coherent"] capacity_units_month INTEGER, -- Geschätzte Monatskapazität employee_count INTEGER, certifications TEXT[], expansion_planned BOOLEAN DEFAULT FALSE, expansion_details TEXT, source_url TEXT, last_verified TIMESTAMPTZ, created_at TIMESTAMPTZ DEFAULT NOW(), updated_at TIMESTAMPTZ DEFAULT NOW() ); -- ============================================================ -- NEWS (Aggregierte Nachrichten von Messen, Trade Press) -- ============================================================ CREATE TABLE news_articles ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), title TEXT NOT NULL, source TEXT NOT NULL, -- "Lightwave", "Light Reading", "OFC 2026" source_url TEXT NOT NULL UNIQUE, published_at TIMESTAMPTZ, author TEXT, summary TEXT, full_text TEXT, category TEXT, -- product_launch | market_report | standard | m_and_a | factory | event event TEXT, -- OFC, ECOC, CIOE, Photonics West mentioned_vendors TEXT[], mentioned_products TEXT[], mentioned_standards TEXT[], sentiment_score NUMERIC, -- -1.0 bis +1.0 relevance_score NUMERIC, -- 0-100 content_hash TEXT, tags TEXT[], created_at TIMESTAMPTZ DEFAULT NOW() ); -- ============================================================ -- BLOG DRAFTS (Auto-generierte Entwürfe) -- ============================================================ CREATE TABLE blog_drafts ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), title TEXT NOT NULL, topic TEXT, -- hype_cycle | price_trend | new_product | comparison | tutorial target_audience TEXT, -- sales | technical | customer | seo outline JSONB, draft_content TEXT, data_sources JSONB, -- Welche DB-Queries haben den Draft gefüttert status TEXT DEFAULT 'draft', -- draft | review | approved | published generated_by TEXT, -- "hype_cycle_engine" | "price_alert" | "news_digest" word_count INTEGER, seo_keywords TEXT[], created_at TIMESTAMPTZ DEFAULT NOW(), updated_at TIMESTAMPTZ DEFAULT NOW() ); ``` ### 3.2 TimescaleDB Hypertables (Echtzeit-Zeitreihen) ```sql -- ============================================================ -- PRICE OBSERVATIONS (Echtzeit-Preise aller Wettbewerber) -- ============================================================ CREATE TABLE price_observations ( time TIMESTAMPTZ NOT NULL, transceiver_id UUID NOT NULL, source_vendor_id UUID NOT NULL, -- Von welchem Shop/Vendor price NUMERIC NOT NULL, currency TEXT DEFAULT 'USD', stock_level TEXT, -- "in_stock", "low_stock", "out_of_stock", "on_request" quantity_available INTEGER, lead_time_days INTEGER, min_order_qty INTEGER, url TEXT, -- Direkt-Link zum Produkt content_hash TEXT -- Change Detection ); SELECT create_hypertable('price_observations', 'time', chunk_time_interval => INTERVAL '1 day'); -- Continuous Aggregate für tägliche Durchschnitte CREATE MATERIALIZED VIEW price_daily WITH (timescaledb.continuous) AS SELECT time_bucket('1 day', time) AS bucket, transceiver_id, source_vendor_id, AVG(price) AS avg_price, MIN(price) AS min_price, MAX(price) AS max_price, last(stock_level, time) AS latest_stock, COUNT(*) AS observation_count FROM price_observations GROUP BY bucket, transceiver_id, source_vendor_id; -- Retention Policy: Rohdaten 90 Tage, Aggregates 5 Jahre SELECT add_retention_policy('price_observations', INTERVAL '90 days'); -- ============================================================ -- MARKET METRICS (Hype Cycle Input-Daten) -- ============================================================ CREATE TABLE market_metrics ( time TIMESTAMPTZ NOT NULL, technology TEXT NOT NULL, -- "800G OSFP", "400G QSFP-DD", "CPO" metric_type TEXT NOT NULL, -- vendor_count | shipment_share | asp_decline_rate | media_hype_index | patent_filings value NUMERIC NOT NULL, source TEXT, -- "LightCounting", "Crehan Research", "Google Trends" notes TEXT ); SELECT create_hypertable('market_metrics', 'time', chunk_time_interval => INTERVAL '30 days'); ``` ### 3.3 Qdrant Vector Collections ``` Collection: product_embeddings - vector: 768 dim (nomic-embed-text) - payload: {product_id, vendor, form_factor, speed_gbps, category, fiber_type, reach_label} - Use: Freitext-Suche ("10km Transceiver für Cisco Nexus") Collection: datasheet_chunks - vector: 768 dim - payload: {document_id, entity_type, entity_id, page, section, chunk_text_preview} - Use: "Was ist der Tx-Power Range des QSFP-DD 400G LR4?" Collection: manual_chunks - vector: 768 dim - payload: {document_id, switch_vendor, switch_model, section, topic} - Use: "Wie konfiguriere ich DWDM auf Juniper MX?" Collection: faq_embeddings - vector: 768 dim - payload: {kb_id, category, subcategory, question_preview, severity} - Use: "Transceiver zeigt niedrige Rx Power, was tun?" Collection: news_embeddings - vector: 768 dim - payload: {article_id, source, published_at, category, event} - Use: "Was wurde auf der OFC 2026 über 1.6T vorgestellt?" ``` --- ## 4. DATENQUELLEN & CRAWLER-STRATEGIE ### 4.1 Echtzeit-Preise & Stock (5-15 Min Intervalle) | Quelle | Typ | Methode | Preise | Stock | Besonderheiten | |--------|-----|---------|--------|-------|----------------| | **FS.com** | Reseller | Web Scraping (Crawlee/Playwright) | Öffentlich | Öffentlich | Größter Wettbewerber, transparenteste Preise | | **Optcore** | Reseller | Web Scraping | Öffentlich (ab $5.50) | Öffentlich | Sehr transparente Preisgestaltung | | **QSFPTEK** | Reseller | Web Scraping | Öffentlich | Öffentlich | Chinesischer Reseller | | **10Gtek** | Reseller/Mfr | Web Scraping | Öffentlich | Öffentlich | Eigene Fertigung in China | | **Edgeium** | Reseller | Web Scraping (Optics Finder) | Öffentlich | Öffentlich | Optics Finder Tool durchsuchbar | | **Hummingbird Networks** | Reseller | Web Scraping | Öffentlich | Öffentlich | US-Reseller | | **EDGE Optical** | Reseller | Web Scraping | Öffentlich | Öffentlich | | | **ProLabs** | Compatible | Web Scraping | Quote-based | Begrenzt | Legrand-Tochter | | **Champion ONE** | Compatible | Web Scraping | Quote-based | Begrenzt | Legrand-Tochter | | **Smartoptics** | Reseller | Web Scraping | Quote-based | Auf Anfrage | Fokus DWDM | | **NADDOD** | Reseller | Web Scraping | Öffentlich | Öffentlich | Chinesischer Reseller | | **Solid Optics** | Compatible | Web Scraping | Öffentlich | Begrenzt | | | **AddOn Networks** | Compatible | Web Scraping | Öffentlich | Begrenzt | | | **Worldwide Supply** | Refurbished | Web Scraping | Quote-based | Auf Anfrage | Refurbished OEM-Optics | | **Nexar/Octopart API** | Aggregator | GraphQL API | Ja (317 Distributoren) | Ja | Einzige echte API, aber optische Module evtl. begrenzt | ### 4.2 OEM-Kompatibilitätstools (Wöchentlich) | Quelle | URL / Tool | Methode | |--------|-----------|---------| | **Cisco TMG Matrix** | tmgmatrix.cisco.com | Web Scraping — durchsuchbar nach Device/Transceiver/Speed/Reach | | **Juniper HCT** | apps.juniper.net/hct | Web Scraping — durchsuchbar nach Produkt/Kategorie | | **Arista** | arista.com (PDF Guides) | PDF Download → Docling OCR | | **HPE/Aruba** | support.hpe.com | Web Scraping — QuickSpecs Portal | | **Dell** | dell.com/support | Web Scraping | | **Nokia** | Behind Customer Portal | Begrenzt — öffentliche Specs scrapen | | **Extreme Networks** | extremenetworks.com | Web Scraping | | **Huawei** | support.huawei.com | Web Scraping — Compatibility Matrix | ### 4.3 Transceiver-Hersteller weltweit (Monatlich) **Top-Tier (Revenue > $500M):** | Hersteller | Land | Methode | Fokus | |-----------|------|---------|-------| | InnoLight | China | Website + Press Releases | #1 weltweit, $3.3B Revenue, 114% Wachstum | | Coherent (II-VI/Finisar) | USA | Investor Relations + Website | Kohärente Optik, VCSEL | | Lumentum | USA/Thailand | Investor Relations + Website | Laser, 3D-Sensing, AI DC | | Eoptolink | China | Website | #3 weltweit, $1.2B, 175% Wachstum | | Broadcom (ex-Avago) | USA | Website | Embedded Optics, ASIC | | Cisco (Acacia) | USA | Website + TMG Matrix | Kohärente Optik nach Acacia-Übernahme | | Zhongji Innolight | China | Website | Cloud-fokussiert | **Mid-Tier ($50M - $500M):** | Hersteller | Land | Methode | |-----------|------|---------| | Source Photonics | China | Website | | Accelink | China | Website | | HGGenuine | China | Website — einziger vertikal integrierter chinesischer Hersteller | | Gigalight | China | Website | | ATOP Technology | China/Malaysia | Website | | Wolontek | China | Website | | ETU-Link | China | Website | | Skylane Optics | Belgien | Website | | Smartoptics | Norwegen | Website | | EFFECT Photonics | Niederlande | Website — Silicon Photonics | | Sicoya/Marvell | Deutschland/USA | Website — Silicon Photonics | **SE-Asien Fabriken (Vierteljährlich):** | Land | Fabriken | Output | |------|----------|--------| | Thailand | Lumentum (6000+ MA), Fabrinet, InnoLight/Terahop, Eoptolink | >800k units/Monat | | Vietnam | Coherent (Primary non-China Hub) | >400k units/Monat | | Malaysia | Coherent (R&D), ATOP (Manufacturing) | >300k units/Monat | ### 4.4 News & Messen (Täglich) | Quelle | Typ | Methode | Update | |--------|-----|---------|--------| | **Lightwave** | Trade Press | RSS + Scraping | Täglich | | **Light Reading** | Trade Press | RSS + Scraping | Täglich | | **Fibre Systems** | Trade Press | RSS + Scraping | Täglich | | **Laser Focus World** | Trade Press | RSS + Scraping | Täglich | | **optics.org** | Trade Press | RSS + Scraping | Täglich | | **Data Center Dynamics** | Trade Press | RSS + Scraping | Täglich | | **SDxCentral** | Trade Press | RSS + Scraping | Täglich | | **OFC** | Leitmesse | Post-Event Scraping | Jährlich (März) | | **ECOC** | Leitmesse | Post-Event Scraping | Jährlich (September) | | **CIOE** | Leitmesse (China) | Post-Event Scraping | Jährlich (September) | | **Photonics West** | Leitmesse | Post-Event Scraping | Jährlich (Januar) | | **Google Trends** | Hype Tracking | API | Wöchentlich | ### 4.5 FAQ/Troubleshooting-Quellen (Wöchentlich) | Quelle | URL | Content | |--------|-----|---------| | FS.com Knowledge Center | community.fs.com | Troubleshooting Guides, Best Practices | | FS.com Transceiver Manual | resource.fs.com (PDF) | 1G/10G/25G/40G/100G Troubleshooting, DDM | | FluxLight Blog | blog.fluxlight.com | Transceiver Troubleshooting | | Cisco Support Forums | community.cisco.com | Transceiver-Probleme, Kompatibilität | | Juniper Knowledge Base | kb.juniper.net | Transceiver Issues | | Arista Docs | arista.com/docs | Optics Support | | Wolontek Guides | wolontek.com | OTDR Testing, Power Meter Guides | | Reddit r/networking | reddit.com/r/networking | Community-Wissen, Erfahrungsberichte | | NetworkEngineering SE | networkengineering.stackexchange.com | Q&A | ### 4.6 Change Detection Strategie ``` Für JEDEN Scrape-Zyklus: 1. HTTP Request mit If-None-Match / If-Modified-Since Headers 2. Wenn 304 Not Modified → Skip (kein Bandwidth-Kosten) 3. Wenn 200 → Extrahiere Preis/Stock → SHA-256 Hash berechnen 4. Hash vergleichen mit gespeichertem Hash 5. Wenn Hash geändert → Write to TimescaleDB + Trigger Alert 6. Wenn Hash unverändert → Nur last_checked Timestamp updaten Adaptive Scheduling: - Produkte mit häufigen Änderungen → 5 Min Intervall - Produkte stabil seit 7+ Tagen → 30 Min Intervall - Produkte stabil seit 30+ Tagen → 2 Std Intervall → Reduziert DB-Writes um 80-90% ``` --- ## 5. HYPE CYCLE ENGINE ### 5.1 Mathematisches Modell: Norton-Bass Multigenerational Diffusion Das Norton-Bass Model (1987, Management Science) ist die quantitative Basis, weil es sukzessive Generationen (1G → 10G → 40G → 100G → 400G → 800G → 1.6T) nativ modelliert. **Kern-Gleichung:** ``` S(t) = L / (1 + e^(-k(t - t0))) Wobei: - L = Marktpotenzial (Total Addressable Port Shipments) - k = Wachstumsrate - t0 = Inflection Point - S(t) = Kumulative Adoption zum Zeitpunkt t ``` **Bass Diffusion Parameter:** ``` f(t) / [1 - F(t)] = p + q * F(t) p = Innovationskoeffizient (~0.03 für Netzwerk-Hardware) q = Imitationskoeffizient (~0.3-0.5) m = Gesamtmarktpotenzial ``` ### 5.2 Phase Classification Engine **Composite Score Formel:** ``` Phase_Score = 0.30 × Normalize(PortShipment_share) + 0.20 × Normalize(ASP_decline_rate) + 0.15 × Normalize(Standards_maturity) + 0.15 × Normalize(InteropValidation_level) + 0.10 × Normalize(VendorCount_trajectory) + 0.10 × Normalize(MediaSentiment_score) ``` **Phase-Determination (Pseudocode):** ```typescript function determinePhase(technology: string): HypeCyclePhase { const shipmentShare = getPortShipmentShare(technology); const aspDecline = getASPDeclineRate(technology); const vendorTrend = getVendorCountTrend(technology); const standardsStatus = getStandardsStatus(technology); const mediaHype = getMediaHypeIndex(technology); const interopLevel = getInteropLevel(technology); if (shipmentShare < 0.01 && standardsStatus === 'draft') return 'INNOVATION_TRIGGER'; if (shipmentShare < 0.05 && mediaHype > 70 && vendorTrend === 'increasing') return 'PEAK_OF_INFLATED_EXPECTATIONS'; if (aspDecline > 30 && vendorTrend === 'decreasing' && mediaHype < 40) return 'TROUGH_OF_DISILLUSIONMENT'; if (shipmentShare >= 0.05 && shipmentShare <= 0.30 && aspDecline >= 10 && aspDecline <= 25 && vendorTrend === 'stable') return 'SLOPE_OF_ENLIGHTENMENT'; if (shipmentShare > 0.30 && aspDecline < 10) return 'PLATEAU_OF_PRODUCTIVITY'; return calculateNearestPhase(compositeScore); } ``` ### 5.3 Aktuelle Hype Cycle Positionen (März 2026) | Technologie | Phase | Evidenz | |---|---|---| | 10G SFP+ | Plateau (Declining) | Commodity, sinkende Shipments, wird verdrängt | | 40G QSFP+ | Late Plateau / Legacy | Kaum noch neue Deployments | | 100G QSFP28 | Plateau of Productivity | >30% Marktanteil, Commodity-Preise | | 400G QSFP-DD | Slope → Plateau Übergang | Breite Adoption, ~33% Revenue mit 800G | | 800G OSFP/QSFP-DD800 | Peak → Slope Übergang | Explosives Wachstum (3x in Q2'25), AI-getrieben | | 1.6T | Innovation Trigger | Standards in Entwicklung, erste OFC-Demos | | CPO (Co-Packaged Optics) | Peak of Inflated Expectations | Viel Presse, wenige Deployments | | LPO (Linear Pluggable Optics) | Slope of Enlightenment | Erste Produktions-Deployments 2025-26 | | 400ZR Coherent | Plateau of Productivity | Erfolgreichste kohärente Technologie | | 800ZR Coherent | Innovation Trigger → Peak | OIF IA veröffentlicht Okt 2024 | --- ## 6. MCP SERVER — TOOL DEFINITIONS Der MCP Server macht die gesamte Plattform für LLMs (EO Global Pulse, FAQ Chat) zugänglich: ```typescript // Tool Definitions für den MCP Server tools: [ { name: "search_transceivers", description: "Suche Transceiver nach Freitext, Specs oder Kompatibilität", parameters: { query: "string — Freitext ('10km für Cisco Nexus')", form_factor: "optional — SFP+, QSFP28, etc.", speed_gbps: "optional — 10, 100, 400, 800", reach_label: "optional — SR, LR, ER, ZR", fiber_type: "optional — SMF, MMF", wdm_type: "optional — CWDM, DWDM", vendor: "optional — Vendor-Filter", max_results: "optional — Default 10" } }, { name: "check_compatibility", description: "Prüfe Kompatibilität: Switch + Transceiver", parameters: { switch_model: "string — z.B. 'Cisco Nexus 93180YC-FX3'", transceiver_query: "optional — Transceiver Part Number oder Beschreibung", speed_gbps: "optional", reach: "optional" } }, { name: "get_pricing", description: "Aktuelle Preise + Verfügbarkeit über alle Quellen", parameters: { part_number: "string", vendor: "optional — nur bestimmten Vendor zeigen", include_history: "optional — Preis-History über Zeit" } }, { name: "compare_prices", description: "Preisvergleich: Flexoptix vs. Wettbewerber", parameters: { transceiver_query: "string", competitors: "optional — Liste spezifischer Wettbewerber" } }, { name: "get_hype_cycle", description: "Hype Cycle Status für Technologie/Produkt", parameters: { technology: "string — z.B. '800G OSFP', 'CPO', '400ZR'", include_forecast: "optional — Norton-Bass Prognose" } }, { name: "search_knowledge_base", description: "Troubleshooting, FAQs, Best Practices durchsuchen", parameters: { query: "string — z.B. 'niedrige Rx Power bei QSFP28'", category: "optional — troubleshooting, faq, best_practice", severity: "optional — critical, high, medium, low" } }, { name: "search_manuals", description: "Switch-Handbücher und Konfig-Anleitungen durchsuchen", parameters: { query: "string — z.B. 'DWDM Konfiguration Juniper MX'", vendor: "optional", doc_type: "optional — manual, config_guide, compatibility_list" } }, { name: "get_templates", description: "FlexBox Coding Templates oder Switch-Konfig-Templates finden", parameters: { type: "flexbox_coding | switch_config", switch_vendor: "optional", transceiver_type: "optional", technology: "optional — CWDM, DWDM, SR, LR" } }, { name: "suggest_alternatives", description: "Alternative Transceiver vorschlagen (ähnliche Specs, anderer Vendor/Preis)", parameters: { part_number: "string", optimize_for: "optional — price, availability, performance" } }, { name: "get_competitor_stock", description: "Live-Lagerbestand eines Wettbewerbers", parameters: { competitor: "string — z.B. 'FS.com'", product_query: "optional — Filter", out_of_stock_only: "optional — nur fehlende Produkte (Sales-Chance!)" } }, { name: "get_market_news", description: "Aktuelle News und Messe-Berichte", parameters: { query: "optional", event: "optional — OFC, ECOC, CIOE", days_back: "optional — Default 30" } }, { name: "generate_blog_draft", description: "Blog-Entwurf aus Marktdaten generieren", parameters: { topic: "hype_cycle | price_trend | new_product | comparison | tutorial", technology: "optional — z.B. '800G'", target_audience: "sales | technical | customer | seo" } } ] ``` --- ## 7. ANWENDUNGSFÄLLE ### 7.1 Sales Advisor (Freitext-Suche) **User:** "Kunde hat Cisco Nexus 93180YC-FX3 und braucht einen Transceiver für 10km Singlemode" **System:** 1. Vector-Suche in `product_embeddings` → Top-5 passende Transceiver 2. `compatibility` Check → Verifiziert für diesen Switch 3. `price_observations` → Aktueller Preis bei Flexoptix + Wettbewerber 4. `knowledge_base` → Bekannte Issues mit diesem Switch/Transceiver **Antwort:** "Für den Nexus 93180YC-FX3 empfehle ich den 10G-SFP-LR (10km, SMF, LC). Verifiziert kompatibel. Unser Preis: 39 EUR. FS.com: $12.50. Hinweis: Firmware 10.2(3) oder höher erforderlich." ### 7.2 Hype Cycle Dashboard - Interaktive Visualisierung aller Technologien auf der Gartner-Kurve - Norton-Bass Prognose: Wann erreicht 800G den Plateau? → ~2029 - Klickbar: Details pro Technologie (Vendor Count, ASP Trend, Shipment Share) - Export als Blog-Post oder Präsentation ### 7.3 Competitor Alert System **Trigger:** FS.com Out-of-Stock bei 100G QSFP28 LR4 **Alert:** "FS.com hat 100G-QSFP28-LR4 nicht auf Lager (seit 2 Stunden). Lead Time: 14 Tage. → Sales-Chance: 47 Kunden haben dieses Produkt in den letzten 90 Tagen bei FS.com gekauft." ### 7.4 Blog-Generierung **Input:** `generate_blog_draft(topic="hype_cycle", technology="800G")` **System:** 1. Holt aktuelle Hype Cycle Daten aus `market_metrics` 2. Holt Preis-Trends aus `price_observations` 3. Holt News aus `news_articles` 4. Generiert Draft via Ollama qwen2.5:14b auf .213 5. Speichert in `blog_drafts` zur Review ### 7.5 Template Finder **User:** "Welchen FlexBox Code brauche ich für einen CWDM 10G auf Juniper EX4300?" **System:** 1. `templates` WHERE type='flexbox_coding' AND switch_vendor='Juniper' AND technology='CWDM' 2. `compatibility` Check → Verifiziert 3. `knowledge_base` → Best Practices für CWDM auf Juniper --- ## 8. IMPLEMENTIERUNGS-ROADMAP ### Phase 0: Foundation (Woche 1-2) - [ ] PostgreSQL 17 + TimescaleDB auf Erik (.82) installieren - [ ] Qdrant Docker Container auf Erik starten - [ ] Schema deployen (alle Core Tables + Hypertables) - [ ] Bestehende npm DB (159 Transceiver) als Seed-Daten importieren - [ ] Basis-API (Node.js/Express/PM2) mit CRUD-Endpoints - [ ] Cloudflare Tunnel einrichten (transceiver-db.context-x.org) ### Phase 1: Data Ingestion (Woche 3-5) - [ ] Crawlee Scraper Framework auf Erik einrichten - [ ] Erster Scraper: FS.com (Preise + Stock + Produkte) - [ ] Scraper 2-5: Optcore, QSFPTEK, 10Gtek, Edgeium - [ ] Cisco TMG Matrix Scraper - [ ] Juniper HCT Scraper - [ ] Change Detection mit Content Hashing - [ ] pg-boss Job Scheduler konfigurieren - [ ] Adaptive Scheduling implementieren ### Phase 2: Intelligence Layer (Woche 6-8) - [ ] OCR Pipeline: Docling → Chunk → Embed → Qdrant - [ ] Erste Transceiver-Datasheets verarbeiten (Top 50) - [ ] Erste Switch-Handbücher verarbeiten (Cisco, Juniper, Arista) - [ ] Vector Search Endpoints mit Payload Filtering - [ ] Full-Text Search via PostgreSQL tsvector - [ ] Knowledge Base: FAQ-Scraping starten (FS.com, Cisco, FluxLight) - [ ] MCP Server (Basis-Tools) ### Phase 3: Hype Cycle Engine (Woche 9-10) - [ ] Norton-Bass Model implementieren - [ ] Historische Daten laden (Port Shipments, ASP, Vendor Count) - [ ] Phase Classification Engine - [ ] Media Sentiment Tracking (Google Trends + News) - [ ] Hype Cycle Visualisierung - [ ] Erste Prognosen generieren ### Phase 4: Scale Crawlers (Woche 11-14) - [ ] Alle 60+ identifizierten Quellen anbinden - [ ] Chinesische Hersteller-Websites (InnoLight, Eoptolink, HGGenuine...) - [ ] SE-Asien Factory Monitoring - [ ] News Aggregation (Lightwave, Light Reading, optics.org...) - [ ] Messe-Coverage (OFC, ECOC Archive) - [ ] Proxy-Rotation einrichten (Bright Data / Geonode) - [ ] Alert System implementieren ### Phase 5: Customer-Facing (Woche 15-18) - [ ] Cloudflare Workers API Gateway - [ ] FAQ Chatbot (RAG über Knowledge Base) - [ ] EO Global Pulse Integration - [ ] Sales Advisor Tool - [ ] Template Finder - [ ] Price Comparison Dashboard - [ ] Blog Draft Generator - [ ] Multi-Tenant Access Control ### Phase 6: Domination (Woche 19+) - [ ] Alle 400+ Switch-Hersteller (Flexoptix Vendor Page) als Daten - [ ] Alle Datasheets aller Transceiver verarbeitet - [ ] Alle Switch-Handbücher digitalisiert - [ ] Vollständige Kompatibilitätsmatrix - [ ] Automatische Blog-Veröffentlichung - [ ] API für externe Partner - [ ] Mobile App (EO Global Pulse) --- ## 9. KRITISCHE ERFOLGSFAKTOREN ### 9.1 Rechtliche Aspekte Scraping - `robots.txt` immer respektieren - Rate-Limiting: Max 1-2 Requests/Sekunde pro Domain - Legitimer User-Agent - Kein Scraping hinter Authentication (ohne Account) - Aggressiv cachen — keine unveränderten Seiten erneut abfragen - Offizielle APIs bevorzugen wo verfügbar (Nexar/Octopart, Mouser, DigiKey) ### 9.2 Datenqualität - Jeder Datenpunkt braucht `source_url` und `last_verified` - Automatische Anomalie-Detection bei Preissprüngen (>50% Änderung → Review) - Community-Verifizierung für Kompatibilität - Regelmäßige Stichproben durch Flexoptix-Team ### 9.3 Markt-Chance **Es gibt KEINEN Octopart/FindChips-Äquivalent für optische Transceiver-Module.** Kein Preisvergleichs-Aggregator. Keine öffentliche API die mehrere Optical-Transceiver-Vendor abdeckt. **TIP könnte dieses Vakuum füllen.** --- ## 10. BESTEHENDE DATEN-INTEGRATION Das aktuelle npm Package `transceiver-db` (159 Transceiver, 39 Standards, 16 Form Factors) wird als **Seed-Daten** importiert: ```typescript // Migration: npm DB → PostgreSQL import { getAllTransceivers, getAllStandards } from 'transceiver-db'; const transceivers = getAllTransceivers(); const standards = getAllStandards(); // Insert into PostgreSQL with vendor_id mapping for (const t of transceivers) { await db.query(` INSERT INTO transceivers (part_number, standard, form_factor, speed_gbps, ...) VALUES ($1, $2, $3, $4, ...) `, [t.id, t.standard, t.formFactor, t.speedGbps, ...]); } ``` Das npm Package bleibt als **Open-Source Lightweight-Version** auf GitHub bestehen. TIP wird die **Enterprise Intelligence Layer** darüber. --- ## ZUSAMMENFASSUNG | Dimension | Scope | |-----------|-------| | **Transceiver** | Alle Generationen (1G SFP → 1.6T), CWDM, DWDM, Coherent, AOC, DAC, Breakout | | **Switches** | 400+ Hersteller, alle Serien, Specs, Lifecycle, ASIC Info | | **Kompatibilität** | Switch ↔ Transceiver Matrix, verifiziert + Community | | **Preise** | Echtzeit von 60+ Quellen weltweit | | **Stock** | Live-Lagerbestände aller Wettbewerber | | **Handbücher** | Auto-Crawl, OCR, MCP-durchsuchbar | | **Datasheets** | Alle technischen Specs aller Transceiver | | **FAQs** | Gescannt von allen Vendor-Portalen | | **Templates** | FlexBox Coding + Switch-Konfiguration | | **Hype Cycle** | Norton-Bass basiert, automatisch aktualisiert | | **News** | OFC, ECOC, CIOE, Photonics West, Trade Press | | **Fabriken** | Alle Fertigungsstätten weltweit | | **Blog** | Auto-generiert aus Marktdaten | | **Alerts** | Out-of-Stock, Preisänderungen, neue Produkte | **Es gibt nichts Vergleichbares auf dem Markt. Das wird das Referenzwerk der Optical Networking Industrie.**