Úvod
další vlnu technologických inovací musí integrovat propojených organizací a více aplikačních platforem. Vývojáři musí vytvořit jednotné systémy pro správu informací, které využívají world wide web a pokročilé softwarové technologie. Softwaroví agenti, jeden z nejzajímavějších nových vývojů v technologii počítačového softwaru, lze použít k rychlému a snadnému vytváření integrovaných podnikových systémů. Myšlenka mít softwarového agenta, který může provádět složité úkoly naším jménem, je intuitivně přitažlivá. Přirozeným dalším krokem je použití více softwarových agentů, kteří spolu komunikují a spolupracují při řešení složitých problémů a implementaci složitých systémů. Softwaroví agenti poskytují novou výkonnou metodu pro implementaci těchto informačních systémů nové generace.
Co je Agent?
agent je prostě jiný druh softwarové abstrakce, abstrakce stejným způsobem jako metody, funkce a objekty jsou softwarové abstrakce. Objekt je abstrakce na vysoké úrovni, která popisuje metody a atributy softwarové komponenty. Agent je však extrémně vysoká abstrakce softwaru, která poskytuje pohodlný a výkonný způsob popisu složité softwarové entity. Spíše než být definován z hlediska metod a atributů, agent je definován z hlediska jeho chování. To je důležité, protože programování systému založeného na agentovi je primárně otázkou určení chování agenta namísto identifikace tříd, metod a atributů. Je mnohem jednodušší a přirozenější specifikovat chování než psát kód.
existuje minimální sada společných funkcí, které typizují softwarového agenta. Softwarový agent je autonomní; agent je schopen pracovat jako samostatný proces a provádět akce bez zásahu uživatele. Softwarový agent je komunikativní; komunikuje s uživatelem, jinými softwarovými agenty nebo jinými softwarovými procesy. Softwarový agent je vnímavý; je schopen vnímat a reagovat na změny ve svém prostředí.
softwaroví agenti, stejně jako lidé, mohou mít různé úrovně kompetencí při provádění konkrétního úkolu. Například jeden e-mailový softwarový agent může být docela hloupý a schopný předávat e-maily pouze na několik určených míst. Druhý, chytřejší e-mailový agent může mít schopnost automaticky detekovat a odstranit spam. Zatímco softwaroví agenti musí být autonomní, komunikativní a vnímaví, mohou mít různé úrovně kompetencí (inteligence), které určují jejich programy – tj.
Co je agentura?
softwaroví agenti, stejně jako lidé, mohou být nejužitečnější, když pracují s jinými softwarovými agenty při plnění úkolu. Sbírka softwarových agentů, kteří spolu komunikují a spolupracují, se nazývá agentura. Systémoví návrháři používající agenty musí zvážit schopnosti každého jednotlivého agenta a to, jak může více agentů spolupracovat. Přístup založený na agentech umožňuje návrháři systému implementovat systém pomocí více agentů, přičemž každý agent se specializuje na konkrétní úkol. Například aplikace elektronického obchodu může mít agenty kupujícího, agenty prodávajícího, agenty skladování, databázové agenty, e-mailové agenty atd. Všichni tito agenti musí vzájemně komunikovat a musí mít schopnost spolupracovat na dosažení společného souboru cílů.
proč jsou agenti důležití?
vývojáři softwaru a systémoví návrháři používají při vytváření komplexního softwaru abstrakce na vysoké úrovni z jednoho důvodu-ke správě složitosti. Abstrakce se zaměřuje na důležité a základní vlastnosti problému a skrývá vedlejší složky tohoto problému. Agenti poskytují nový způsob řízení složitosti, protože poskytují nový způsob popisu komplexního systému nebo procesu. Pomocí agentů je snadné definovat systém z hlediska procesů zprostředkovaných agentem.
Vezměme si například, systém konstrukce otázek při budování úvěru schválení aplikace, která v sobě spojuje pobočky banky, hlavní banka, úvěr upisování firem, a úvěrové výkaznictví společnosti, a automatizuje hodně procesu schvalování úvěru. Vybudování tohoto systému pomocí současné technologie je složitý a obtížný úkol, protože dekompozice systému nutí vývojáře při definování celkové architektury systému řešit relativně nízké koncepty (např. žádosti o půjčky,zůstatky na účtech, ratingy). Kromě toho musí být věnována značná doba návrhu definování komunikačního protokolu a rozhraní, která umožní bance vyměňovat si data s agenturami pro vykazování úvěrů a upisovateli úvěrů. Při návrhu systému zaměřeného na agenta může systémové řešení zahrnovat agenta zákaznického servisu, agenta analýzy úvěrových aplikací, agenta upisovatele atd. Důraz je kladen na chování každého z těchto agentů a komunikaci mezi agenty. Problém je mnohem jednodušší, protože úroveň abstrakce je mnohem vyšší a problém programování se stává jedním z určení chování agenta.

Více Softwarových Agentů Pro Podnikové Aplikace
agent-based řešení je užitečné a atraktivní, protože různé látky používané v řešení ve své podstatě vědí, jak dělat mnoho věcí. Například agenti vědí, jak komunikovat s jinými agenty. Vývojář systému již nemusí navrhovat komunikační protokoly a formáty zpráv. Agent poskytuje tuto schopnost jako součást základního mechanismu agenta. Agenti mají vlastní schopnost vytvářet modely svého prostředí, sledovat stav tohoto prostředí, rozum a rozhodovat se na základě tohoto stavu. Vše, co vývojář softwaru musí udělat, je jednoduše určit, co mají agenti dělat v dané situaci.
kdy mám používat látky?
softwarové prostředky jsou vhodné pro použití v široké škále aplikací. Mohou usnadnit vytváření mnoha druhů složitých systémů. Návrhář systému si však musí pamatovat, že agenti nejsou dlouho hledanou stříbrnou kulkou, kterou vývojáři hledali. Softwaroví agenti jsou vhodní pro použití při implementaci určitých druhů aplikací; v jiných problémových doménách budou vhodnější jiné technologie. Vývojář musí pečlivě analyzovat systémové požadavky, aby zjistil, zda jsou agenti vhodným implementačním mechanismem.
agenti jsou vhodné pro použití v aplikacích, které zahrnují distribuované výpočty nebo komunikaci mezi komponenty. Technologie agenta je vhodná pro použití v aplikacích, které se týkají zpráv nebo objektů přijatých v síti. To vysvětluje, proč jsou přístupy založené na agentech tak populární v aplikacích, které využívají Internet. Multiagentní systémy jsou také vhodné pro aplikace, které vyžadují distribuované, souběžné možnosti zpracování.
protože agenti udržují popis svého vlastního stavu zpracování a stavu světa kolem sebe, jsou ideální pro automatizační aplikace. Autonomní agenti jsou schopni pracovat bez vstupu nebo zásahu uživatele. Tyto prostředky lze použít v aplikacích, jako je automatizace zařízení a procesů, řízení pracovních postupů, robotika atd.
agenti nejsou omezeni na použití v aplikacích, kde jednotliví agenti spolu komunikují přes LAN nebo Internet. V některých aplikacích má smysl využívat více agentů vykonávající na jednom počítači a komunikují pomocí nějakou formu meziprocesové komunikace (např., RMI). Například vestavěný tovární řadič se může skládat z agenta uživatelského rozhraní, agenta databázového rozhraní, agenta rozhraní obráběcích strojů a agenta pro monitorování a řízení procesů. Všechny tyto agenty by mohly běžet současně na stejném procesoru nebo by mohly být snadno distribuovány mezi více procesory.
agenti jsou opět nejvhodnější pro aplikace, které vyžadují komunikaci mezi komponentami, snímání nebo monitorování prostředí nebo autonomní provoz. Protože agenti mají schopnost rozumu (tj. vyvodit závěry), mohou snadno provádět sekvence složitých operací na základě zpráv, které obdrží, jejich vlastní vnitřní přesvědčení, a jejich celkové cíle a cíle.
jaké systémy mohu vytvořit pomocí agentů a technologie agentů?
činidla jsou ideální pro širokou škálu aplikací. Oni jsou obzvláště dobře-vhodný k:
- proces a automatizaci workflow
- elektronického obchodu
- distribuované řešení problémů
- Internetové aplikace
Pokud Agenti jsou vhodné pro použití v prováděcích můj systém, tak jak mnoho agentů potřebuji?
abych parafrázoval Alberta Einsteina-dobrý design založený na agentech využije tolik agentů, kolik je potřeba, a nic víc. Stejně jako tradiční aplikace vyžadují aplikace založené na agentech pečlivou analýzu a návrh. I když je lákavé mít každou funkci zpracování prováděnou agentem, je to obecně špatný nápad. Návrhář musí při vývoji systémové architektury zvážit problémy, jako jsou požadavky na přenos dat z komunikace, dostupná šířka pásma komunikace, výpočetní výkon, paměť a další omezení počítačových zdrojů.
jak chytří by měli být agenti?
agenti mohou být konstruováni s širokou škálou schopností. Jednou z výhod přístupu založeného na agentech je to, že mnohokrát může být složitá funkce zpracování rozdělena na několik menších, jednodušších. Protože každý jednotlivý agent může být vytvořený tak, aby být expert na řešení konkrétního problému nebo provedení konkrétního úkolu, můžete vytvořit systémy, které vykazují komplexní chování pomocí kolekce relativně jednoduchých agentů.
někdy však potřebujeme vytvořit agenty, kteří jsou docela chytří. S přístupem založeným na agentech můžete implementovat agenty se sofistikovanými intelektuálními schopnostmi, jako je schopnost uvažovat, učit se nebo plánovat. Inteligentní softwaroví agenti mohou navíc využívat rozsáhlé znalosti o své problémové doméně. To znamená, že základní architektura agenta musí podporovat sofistikované uvažování, učení, plánování, a reprezentace znalostí.
Mohu použít agenty se staršími systémy nebo staršími kódy?
softwaroví agenti poskytují ideální mechanismus pro integraci starších systémů s novými datovými systémy. Agenti jsou vhodní pro implementaci těchto middlewarových aplikací. Agenti mohou být použity k provádění překladu dat a implementaci rozhraní datových systémů, které splňují širokou škálu požadavků.
v mnoha aplikacích mají vývojáři systému starší kód, který vykonává nějakou jedinečnou funkci, která je potřebná v jejich nových aplikacích. Softwarový agent může být použit k vyvolání a spuštění tohoto staršího kódu, využití hodnoty existující základny kódu. Uvědomte si, že implementace softwarového agenta musí poskytnout odpovídající podporu, aby umožnila provádění nativního softwaru a staršího kódu.
jsou agenti těžko sestavitelní?
sofistikovaní softwaroví agenti mohou být velmi obtížní, pokud je stavíte od nuly. Budete potřebovat specializované dovednosti a znalosti v různých oblastech, včetně agent architektury, komunikační technologie, uvažování systémy, reprezentace znalostí, agent communication jazyky a protokoly. Pokud chcete přidat schopnosti strojového učení nebo plánování strojů, budete také potřebovat dovednosti v těchto oblastech. Pokud nechcete mít tyto specializované dovednosti a znalosti, měli byste použít agenta stavební toolkit. Sady nástrojů pro konstrukci agentů umožňují vývojářům softwaru bez odborných znalostí agentů rychle a snadno vytvářet softwarové agenty.
jaké nástroje jsou k dispozici, aby mi pomohly vytvořit agenty?
Nejlepší způsob, jak začít budovat systém založený na agentech, je použít integrovanou sadu nástrojů, jako je AgentBuilder. AgentBuilder poskytuje všechny nástroje, které potřebujete pro konstrukci softwarových agentů. Pomocí AgentBuilder, vývojář softwaru potřebuje pouze odborné znalosti problémové domény. AgentBuilder poskytuje podporu pro všechny fáze vývoje softwaru agenta-od systémové analýzy přes ladění systému a testování. AgentBuilder poskytuje grafické programovací prostředí, kde můžete rychle a snadno definovat agentury a agenty a poté určit chování jednotlivých agentů. AgentBuilder je kódován výhradně v Javě a produkuje softwarové agenty založené na Javě.
Leave a Reply