Programming Pervasive and Mobile Computing Applications with the TOTA Middleware
计算机的专业英语选择

标准实用Multiple 11. The keyboard, mouse, monitor, and system unit are:2. Programs that coordinate computer resources, provide an interface, and run applications are known as:3. A browser is an example of a:4. Although not as powerful as a supercomputer, this type of computer is capable of great processing speeds and data storage.5. The smallest type of microcomputer:netbook handheld midrange tablet PC6. RAM is a type of:computer memory network secondary storage7. Unlike memory, this type of storage holds data and programs even aftermainframe midrangenetbookcentermedia specialized programutility programbasic application system application operating systemsutility programsapplication programs storage systems hardware software devices devicesstorage outputelectrical power to the computer system has been turned off.8. The type of file created by word processors to save, for example, memos, term papers, and letters.9. The change in connectivity that uses the Internet and the Web to shift many computer activities from a user ’s computer to computers on the Internet.definitioncomputingnetworkcloud high USB presentationworksheetdocumentdatabase secondary primary RAMROM标准实用10. The largest network in the world is [the]:Multiple 21. The network that connects computers all over the world.2. The rules for exchanging data between computers.3. Client-based e-mail accounts require this special program to be installed on your computer.4. Communities of individuals who share a common interest typically create Facebook:5. E-mail that does not require an e-mail program installed on a user's computer is known as:6. A very well-known microblog.Webmailu t il it y podcastblog profiles clients groups pageshyperlinku t il it y client e-mail JavaprotocolsWWW Web DSL Internet CERN Web LAN Facbeook InternetUSBWeb7. These programs continually look for new information and update search services ’ database programs.8. A type of search engine that submits requests to other search engines, organizes their responses, eliminates duplicate responses, orders hits, and then provides an edited list.ISPspecialized search enginedirectory search metasearch enginespidersf ilt e r s wikis IMWikipedia LinkedIn TwitterMySpace标准实用9. This is the Internet ’s equivalent to traditional cash.10. Using file transfer utility software, you can copy files to your computer from specially configured servers on the Internet. This is called:Multiple 31. This type of software works with end users, application software, and computer hardware to handle the majority of technical details.2. A rectangular area that can contain a document, program, or message.3. Programs that create text-based documents.DBMS suites spreadsheets word processors4. Programs that organize, analyze, and graph numeric data such as budgets and financial reports.DBMS suites spreadsheets word processors5. In a spreadsheet, the intersection of a row and column creates a:window dialog frame form box application general u t il it y purposesystem downloading filteringuploading bloggingdigital cash e-commerce icash Internetdollars6. A collection of related data that is the electronic equivalent of a file cabinet.7. A database tool that will quickly rearrange a ’s records according to tablespreadsheetprocessor f i l t e rword sortdatabasedocumenttable cell functionformulalabel cell a selected field.标准实用8. Programs that combine a variety of visual objects to create attractive, visually interesting presentations.9. The primary disadvantage of this type of package is that the capabilities of each function are not as extensive as in individual programs.10. A type of suite stored at a server on the Internet and available anywhere through Internet access.Multiple 41. These specialized graphics programs combine text and graphics to create publications of professional quality.2. Also known as drawing programs.3. Graphics programs used to create and edit vector images.desktop publishing programs imagegalleries image editorsillustration programsdesktop publishing programs image galleries image editorsillustration programsdesktop publishing programs image galleries image editorsillustration programsintegratedu t ility officecloud integrated softwareu t il it y officepresentation spreadsheetprocessor graphicsword DBMS ACTION4. An essential multimedia feature that allows user participation.5. Special programs used to create multimedia presentations.6. A widely used interactive animation application from Adobe.WYSIWYG FlashFuzzydesktop publishing programs image editors Flash editorsmultimedia authoring programsinteractivityimmersionraster Flash标准实用7. Programs for Web site design and HTML coding are called Web page editors or8. This area of artificial intelligence is also known as expert systems.9. A type of artificial intelligence that uses a database to provide assistance to users.10. Another name for the database used in expert systems that contains specific facts and rules.Multiple 51. What type of software works with users, application software, and computer hardware to handle the majority of technical details?2. The programs that convert programming instructions written by programmers into a language that computers understand and process are language:translators converters linguistsmanagersdapplication desktopsystem Linuxaccess table expert table knowledge base rulebase acoustics expert systems robotics virtualreality acoustics knowledge-based systems robotics virtualreality programseditorseditors HTML apps Web VR3. The ability to switch between different applications stored in memory is called:4. Graphic representations for a program, type of file, or function:softwarediversion programming multitaskinginterferenceoperational imageiconapp标准实用5. This operating system feature is controlled by a mouse and changes shape depending on its current function.6. The operating system based on Linux, designed for Netbook computers, and focused on Internet connectivity through cloud computing:7. The mobile operating system developed by Apple and originally called iPhone OS:Android BlackBerry OS IOS Mac OS8. A utility program that makes copies of files to be used in case the originals are lost or damaged:Backup and Restore Disk Cleanup Disk Defragmenter Compactor9. A troubleshooting utility that identifies and eliminates nonessential files, frees up valuable disk space, and improves system performance:Backup and Restore Disk Cleanup Disk Defragmenter Compactor10. Windows makes it easy to update drivers with Windows:Backup Restore Driver UpdateMultiple 61. This container houses most of the electrical components for a computer system.Windows ChromeUnix Mac pointer dialog mouse menu box2. Similar to notebooks, this system unit specializes in on-the-go Web browsing and e-mail access.chassis desktop media center netbook3. Computers can only recognize this type of electronic signal.analog bus digital maximum4. The main or motherboard is also known as the: carrier packagesystem system tuner board unit TV标准实用5. How many bytes can a 32-bit-word computer access at one time?6. In a microcomputer system, the central processing unit is contained on a single:RAM7. This type of memory divides large programs into parts and stores the parts on a secondary storage device.8. Also known as NIC, this adapter card is used to connect a computer to a:9. This provides a pathway to connect parts of the CPU to each other.bus Plug and Play wired wireless10. Older ports that have largely been replaced by faster, more flexible ports are called:buses expandable legacy renderedMultiple 7expansion graphics network AIArandom-access expanded virtual direct16 4 8 1processor computermobile system system board board module chip bus1. Most keyboards use an arrangement of keys known as:2. The device that controls a pointer displayed on the monitor.3. Also known as a roller ball, this device controls the pointer by rotating a ball with your thumb. trackball cordless joystick stylus mouse printer scanner mouse cordOptiKey QWERTY AlphaDaisy标准实用4. The type of screen that can be touched with more than one finger and supports zooming in and out by pinching and stretching your fingers.5. Flatbed and document are types of:6. Device used by banks to automatically read those unusual numbers on the bottom of checks and deposit slips.7. The most widely used audio- input device.8. The monitor feature that specifies how often a displayed image is updated.9. Handheld, book-sized devices that display text and graphics.10. This technology allows television stations to broadcast their programming directly to smartphones, computers, and digital media players.Mobile HDTV DTV CRTLED whiteboards readerse-book lasers HDTV aspect ratio dot pitch refresh rateresolution ratemicrophone mouseTFT VR MICRFDIC UPC OMR monitors scanners headsetsHDTVs multitouch digitaldynamic OLEDMultiple 81. RAM is sometimes referred to as:2. The actual physical material that holds the data and programs. primary storage media disk access3. Measures how tightly these charges can be packed next to one another on the disk. ratio active memory secondary storage primary storageread only memory标准实用4. When a read/write head makes contact with the hard disk ’s surface, it causes a head:5. This hard-disk performance enhancement anticipates data needs.6. This type of storage uses pits and lands to represent 1s and 0s.7. DVD stands for:8. USB drives are also known as:9. An organizational strategy to promote efficient and safe use of data across the networks.10. A mass storage device that provides access to data archived on tapes.library system systemtape RAID f i l e NAS cloud dynamic data mission statemententerprise storage system RAIDuniversal optical drivesdrives flash ports state bus digital versatile disc dynamic versatile discdigital video data dynamic video disc optical cloudsolid state disk hard file decompression compression cachingdisk RAID f i l e scratch crashland pit cylinders densitysectors tracksMultiple 91. The concept related to using computer networks to link people and resources.2. A high-frequency transmission cable that delivers television signals as well as connects computers in a network.coaxial hi def 3-D twisted pair connectivityTCP/IP Wi-Fi GPS标准实用3. A short- range radio communication standard that transmits data over short distances of up to approximately 30 feet.4. The speed with which a modem transmits data is called its:5. The bandwidth typically used for DSL, cable, and satellite connections to the Internet.6. Every computer on the Internet has a unique numeric address called a(n):7. Sometimes referred to as a LAN adapter, these expansion cards connect a computer to a network.8. A device that allows one LAN to be linked to other LANs or to larger networks.9. Typically using Wi-Fi technology, these wireless access points are typically available from public places such as coffee shops, libraries, bookstores, colleges, and universities.extranets hotspotsLANs PANs gateway network switch PAN IDSPCMCIAserver VPN NIC broadcast addresspacket DNS IP broadband voiceband basebandmedium band digital velocity dynamic rate modular rating transfer r a t eBluetoothbroadband TCP/IP DSL10. Star, tree, and mesh are three types of network:Multiple 101. The three primary privacy issues are accuracy, property, and:ownership s ecurity access e th ic s topologies s t r a te g ie s protocols devices标准实用2. To easily get names, addresses, and other details about a person using only his or her telephone number, government authorities and others use a(n):3. Browsers store the locations of sites visited in a:4. The browser mode that eliminates history files and blocks most cookies.5. The information that people voluntarily post in social networking sites, blogs, and photo- and video-sharing sites is used to create their:6. Computer criminals who specialize in stealing, trading, and using stolen credit cards over the Internet are known as:7. Programs that come into a computer system disguised as something else are called:8. The use of the Internet, cell phones, or other devices to send or post content intended to hurt or embarrass another person is known as:cyber-bullyingsocial media discrimination online harassmentunethical communicationviruseszombies Trojan horses bugsWeb scammersidentity carders thieves t r a d e r scyber card approval f ir e wa llidentityonline access phish privacydetect insertsleep f ir e wa ll h istor y menuto o l bard irectorykeystroke reverse cookie adware loggerworm9. Special hardware and software used to control access to a corporation ’ s private network is known as a(n):10. To prevent copyright violations, corporations often use:WPA DRMVPNACTcommunication gatespyware removal programantivirus program f ir e wa l l标准实用Multiple 111.Which of the basic organizational functions records all financial activity from billing customers to paying employees?accounting marketing production research2.What managerial level has information flow that is vertical,horizontal,and external?top supervisory middle foreman3.Which computer-based information system uses data from TPS and analytical tools to support middle managers?ESS MIS DSS TPS4.Accounts payable refers to money the company owes its suppliers for materials and services it has:created exported inventoried received5.What accounting activity keeps track of all summaries of all transactions?balance sheet general ledgerincome statement inventory control6.What accounting statement lists the overall financial condition of an organization?balance sheet general ledgerincome statement inventory control7.What type of report is produced at regular intervals?demand exception inventory periodic8. A DSS consists of four parts:user,system software,decision models,and:application software data operating systemspreadsheets9.What type of worker is involved with the distribution,communication,and creation of information?标准实用10. What type of program is designed to schedule, plan, and control project resources?Multiple 121. Facts or observations about people, places, things, and events are:data occurrences records tables2. The most basic logical data element such as a single letter, number, or special character is known as a:character element phrase record3. Each record in a database has at least one distinctive field, called the:key field structure type view4. One element of database security is to provide only authorized users with:5. The bridge between the logical and physical views of the data is provided by:passwordsr e la tio ns c lasses nodesschedulers managersa uditing pro jec t dtpinformationexecutive knowledge foreman6. Highly trained computer specialists who interact with the data administration subsystem are known as:7. In a network database, each child node may have more than one parent node; this is known as a:8. Connections between parent nodes and child nodes are provided by:many-to-many relationshiprelational relationshiphierarchy parentrelationshipDBMS data modelers database administrators relational s p e c i a l i s t s recordst a b le s DBMS SQL标准实用9. Two of the most significant advantages of multidimensional databases over relational databases are processing speed and:10. Object-oriented databases organize data by classes, attributes, methods, and:objects relations space timeMultiple 131. An information system is a collection of hardware, software, people, procedures, and:data DBMS specialists system analysts2. What is the first phase in the systems life cycle?3. Which phase in the systems life cycle involves installing the new system and training people?systems analysis systems implementationpreliminaryinvestigationsystems designneeds analysis systems analysis c onceptualization o b je c t if ic a tio n controlformatcharacters pointers objectsDBApreliminaryinvestigationsystem design4. This phase in the systems life cycle is concerned about determining system requirements not in design.systems analysis systems implementation5. Which systems analysis tool shows the relationship between input and output documents?6. These tools relieve the systems analysts of many repetitive tasks, develop clear documentation, and, for larger projects, coordinate team member activities.c hecklis td ecision t a b lechart grid data flowpreliminaryinvestigationsystem design标准实用7. Which systems life cycle phase is concerned with economic, technical, and operationalfeasibility?8. What type of feasibility evaluates whether the people within the organization will embrace or resist a new system?behavioral economic operational techinical9. Which approach to conversion begins by trying out a new system in only one part of an organization?direct pilot parallel phased10. An alternative to the systems life cycle approach using powerful development software, small specialized teams, and highly trained personnel.Multiple 141. A program is a list of instructions for the computer to follow to process:2. The major processing steps identified in a top-down program design are called:software hardware d i r e c t logicdata prototypingCASERAD AAD preliminaryinvestigationsystems design systems analysis systems implementationautomated systems life cycle data flow analyzers CASEflow chartsassembly instructions modules logic3.The programming logic structure in which one program statement follows another.4.One of the best ways to code effective programs is to use the three basic logic structures to create:content-markup programs pseudocodemodular languages structured programsc oncatenation r e p e titio n selec tio nloop标准实用5. Which step in the six-step programming procedure involves desk checking and searching for syntax and logic errors?6. Which step in the six-step programming procedure is the final step?7. Unlike traditional systems development, this software development approach focuses less on the procedures and more on defining the relationships between previously defined procedures.8. Natural languages are considered to be a:9. A compiler converts the programmer ’s procedural language program, called the source code, into a machine language code, called the:10. The 4GL languages that enable nonprogrammers to use certain easily understood commands to search and generate reports from a database.query application generator C11 COBOLMultiple 15interpreter codestructured codeobject code top-down code low- level language procedural language high- level languagemid- level languageobject-oriented context-markup module 2GLprogram documentation program maintenance program designprogram testprogram documentation program test program designprogram maintenance1. People who react to technology by thinking computers are magic boxes capable of solving all kinds of problems that computers really can ’t handle are:cynics frustrated na ï ve proactive2. The type of person that looks at technology in a positive realistic way is: frustrated proactive cynical na ï ve标准实用3. Books, journals, and trade associations are the best sources to help you:4. If your career is in marketing, it makes sense to develop a specialty in:database desktop publishingprogramming systems analysis and design5. What computer professional repairs and installs computer components and systems?computer technician data entry workerdesktop publisher software engineer6. What computer professional designs, tests, and researches encryption procedures?cryptographer network administratorprogrammer software engineer7. What computer professional uses database management software to determine the most efficient ways to organize and access data?cryptographer database administratorprogrammer software engineer8. What computer professional oversees the work of programmers, computer specialists, systems analysts, and other computer professionals?information systems manager network managersoftware engineer technical writerdevelop specialties maintain your computer competencydevelop personal contactslook for innovative opportunities9. What computer professional creates, tests, and troubleshoots computer programs?10. What computer professional plans and designs information systems?programmer systems analyst network managersoftware engineer programmer technical writernetwork managersoftware engineer。
移动手持及平板电脑和网页应用设计UI规范(1)

移动手持及平板电脑和网页应用设计UI规范——IOS Human Interface Guidelines(1)谢丽娟/交互设计师引言:文本主要是对“移动手持及平板电脑和网页应用设计UI规范”中的《iOS Human Interface Guidelines(iOS系统人机界面指南)》引言部分进行翻译学习。
阅读后翻译可以加深对UI规范的理解,同时提高英语阅读理解翻译写作水平。
翻译后的文档也可为其他同事提供参考。
本人也将在后续文档中,陆续翻译该文章的其他章节内容。
Introduction(介绍)iOS Human Interface Guidelines describes the guidelines and principles that help you design a superlative user interface and user experience for your iOS app. (《iOS人机界面指南》主要包括一些设计指导和规则,帮助你设计的iOS apps具有最好的用户界面和用户体验。
)iOS Human Interface Guidelines does not describe how to implement your designs in code. When you’re ready to code, start by reading iOS Application Programming Guide. (《iOS人机界面指南》不包括如何实现将设计代码化的内容,如果你要写相关代码的话,请阅读《iOS应用编程指南》。
)At a Glance(概要)By working with the platform conventions, you’ll be much better positioned to create outstanding iOS apps. (通过学习本内容,你将更容易创造优秀的iOS apps)Great iOS Apps Embrace the Platform and HI Design Principles (好的iOS apps遵从平台和HI设计原则)People appreciate iOS apps that feel as though they were designed expressly for the device. For example, when an app fits well on the device screen and responds to the gestures that people know, it provides much of the experience people are looking for. And, although people might not be aware of human interface design principles, such as direct manipulation or consistency, they can tell when apps follow them and when they don’t. As you begin designing an iOS app, be sure to understand what makes iOS-based devices unique, and learn how to incorporate HI design principles so that you can deliver a user experience people will appreciate. (人们喜欢为特定设备量身打造的iOS apps。
普适计算

过于烦琐;
1.计算机的使用方法不符合人类的习惯; 2.为了完成一项任务,需要与计算机进行的对话
• 基于桌面的使用模式:
1.用户要使用计算机,就需要坐在计算机面前; 2.本质上说是一种私有模式,难以适应一个用户
可能在不同地点和环境,甚至在移动过程中使 用多台计算设备进行工作的情况。
普适计算的特性
• 无所不在的(Pervasive) • 嵌入的(Embedded) • 游牧的(Nomadic) • 自适应的(Adaptable) • 永恒的(Eternal)
普适计算的本质就是力图真正全面实现计算
技术的“以人为本”
介绍内容:
•提出与定义 •如何实现 •研究领域 •结论
各个层次上新的要求和技术挑战
系统软件(Software Infrastructure)
• 对普适计算中大量的联网的设备、物体、计算
实体进行管理,为它们之间的数据交换、消息 交互、服务发现、任务协调、任务迁移等等提 供系统级的支持 • 必须能在我们日常生活的空间中而不是一个特 定的环境中提供上述各种功能和服务 • 这是一个组成、结构都经常变化的工作环境, 并且与此相关的硬件经常是异构的、容易出错 和只具有有限的资源
• 信息空间的状态改变映射到物理空
间中,其最主要形式是数字化信息 可以无缝地叠加在物理空间中/上。
• 例子: • 已经广泛采用的各种电器上的显示屏; • E-Ink公司正在研究的电子纸; • IBM研究院的Everywhere Display;
从两个相对方向看自发的交互
• 信息空间也可以自动地觉察物理空
系统软件的关键问题
• 安全性(Security)
• 普适计算系统的移动设备和基础设施之间自发
南京邮电大学《人工智能概论》2022-2023学年第一学期期末试卷 - 副本

南京邮电大学《人工智能概论》2022-2023学年第一学期期末试卷考试课程:人工智能概论考试时间:120分钟专业:计算机科学与技术专业总分:100分---一、单项选择题(每题2分,共20分)1. 人工智能的创始人之一,被誉为“人工智能之父”的是:A. 阿兰·图灵B. 约翰·麦卡锡C. 杰弗里·辛顿D. 约书亚·本吉奥2. 下列哪种算法主要用于分类和回归问题:A. K-means聚类B. 线性回归C. 支持向量机D. Apriori算法3. 在神经网络中,负责传递信息的基本单位是:A. 神经元B. 权重C. 激活函数D. 损失函数4. 下列哪种机器学习方法属于无监督学习:A. 线性回归B. 决策树C. 聚类分析D. 支持向量机5. 在深度学习中,用于防止过拟合的技术是:A. 学习率衰减B. DropoutC. Batch NormalizationD. 激活函数6. 强人工智能的目标是:A. 实现特定任务的智能B. 模拟人类的智能行为C. 实现全面的智能能力D. 优化计算资源的利用7. 下列哪种语言是专门为人工智能开发的:A. PythonB. LispC. JavaD. C++8. 在强化学习中,智能体根据什么来调整其策略:A. 奖励和惩罚B. 监督数据C. 无监督数据D. 输入输出对9. 机器学习中的“过拟合”是指:A. 模型在训练集上表现很好,但在测试集上表现不好B. 模型在训练集和测试集上都表现不好C. 模型在训练集和测试集上都表现很好D. 模型在测试集上表现很好,但在训练集上表现不好10. 图像识别中的卷积神经网络(CNN)主要是通过什么操作来提取图像特征:A. 全连接操作B. 池化操作C. 卷积操作D. 激活操作---二、判断题(每题2分,共20分)11. 人工智能只能应用于计算机科学领域。
()12. 监督学习需要大量标注数据。
()13. 深度学习中的神经网络层数越多,模型的表现就一定越好。
关于电脑游戏的英语作文

Computer games have become an integral part of modern entertainment,offering a wide range of experiences from actionpacked adventures to strategic challenges and immersive simulations.Here is an essay discussing the various aspects of computer gaming.The Evolution of Computer GamesThe history of computer games dates back to the1950s,with simple textbased games evolving into the complex,graphically rich experiences we enjoy today.Early games like Pong and Space Invaders laid the foundation for the industry,which has since grown to include genres such as roleplaying games RPGs,firstperson shooters FPS,and massively multiplayer online games MMOs.The Impact on SocietyComputer games have had a profound impact on society.They have become a significant part of popular culture,influencing movies,music,and even fashion.Furthermore,they have been used as educational tools,helping to develop problemsolving skills,strategic thinking,and handeye coordination.The Benefits of GamingGaming offers numerous benefits.It can be a source of relaxation and stress relief, allowing players to escape from the pressures of daily life.Additionally,it can foster a sense of community,as many games are designed to be played with others,either competitively or cooperatively.The Challenges of GamingDespite its benefits,computer gaming also presents challenges.Issues such as addiction, where players spend excessive time gaming to the detriment of other aspects of their lives, have been a concern.There are also debates about the impact of violent games on behavior,although research findings on this topic are mixed.Technological AdvancementsThe technology behind computer games is constantly evolving.With advancements in graphics,artificial intelligence,and virtual reality,games are becoming more realistic and immersive.This has opened up new possibilities for storytelling and gameplay,pushing the boundaries of what can be achieved in a digital environment.The Future of GamingLooking ahead,the future of computer gaming is promising.With the rise of cloud gaming and the integration of augmented reality,players can expect even more innovative and interactive experiences.The gaming industry will likely continue to grow, offering new opportunities for creativity and engagement.ConclusionIn conclusion,computer games are more than just a form of entertainment they are a cultural phenomenon that continues to evolve and influence the world in various ways. As technology progresses,the experiences offered by computer games will only become more sophisticated,offering players new challenges and opportunities for enjoyment.It is essential to approach gaming with a balanced perspective,recognizing both its potential benefits and the need for responsible engagement.。
人工智能的领先发展 同等学历英语作文

人工智能的领先发展同等学历英语作文The Rapid Development of Artificial IntelligenceArtificial Intelligence (AI) has been a topic of fascination and speculation for decades. In recent years, the rapid advancements in this field have been truly remarkable. AI systems are now capable of performing tasks that were once thought to be the exclusive domain of human intelligence. From playing complex games like chess and Go to diagnosing medical conditions and driving vehicles, AI has proven its versatility and potential to revolutionize various industries.One of the most significant developments in AI has been the progress made in machine learning. This approach to AI involves the creation of algorithms that can learn from data and improve their performance over time without being explicitly programmed. This has led to the development of powerful AI models, such as deep learning neural networks, which have demonstrated remarkable abilities in areas like image recognition, natural language processing, and predictive analytics.The applications of AI are vast and diverse. In healthcare, AI-powered systems are being used to assist in the early detection of diseases, personalize treatment plans, and streamline administrative tasks. In the financial sector, AI is being leveraged to detect fraud, optimize investment portfolios, and automate trading decisions. In the transportation industry, autonomous vehicles equipped with AI-powered navigation and decision-making capabilities are being developed, with the potential to improve safety, reduce traffic congestion, and lower emissions.Another area where AI is making a significant impact is in the field of scientific research. AI algorithms can analyze vast amounts of data, identify patterns, and generate hypotheses that can guide further investigation. This has led to breakthroughs in fields like materials science, drug discovery, and climate modeling, where AI is helping researchers uncover new insights and accelerate the pace of discovery.The rapid development of AI has also raised important ethical and societal concerns. As AI systems become more sophisticated and integrated into our daily lives, there are concerns about the potential for job displacement, algorithmic bias, and the need for robust privacy and security measures. Policymakers, researchers, and industry leaders are actively working to address these challenges and ensure that the benefits of AI are realized in a responsible andequitable manner.One of the key drivers of the rapid development of AI has been the exponential growth in computing power and data availability. The advent of powerful graphics processing units (GPUs), the proliferation of sensors and connected devices, and the availability of large-scale datasets have all contributed to the rapid advancement of AI technologies. Additionally, significant investments in AI research and development by both the public and private sectors have fueled innovation and pushed the boundaries of what is possible.As AI continues to evolve, it is likely that we will witness even more remarkable advancements in the years to come. Some experts predict that AI will soon surpass human-level performance in many tasks, leading to a new era of "artificial general intelligence" (AGI) –AI systems that can match or exceed human intelligence across a wide range of domains.However, the path to AGI is not without its challenges. Significant technical hurdles, such as the development of robust and reliable AI systems, the ability to handle complex and uncertain environments, and the challenge of imbuing AI with human-like common sense and reasoning, must be overcome. Additionally, the ethical and societal implications of AGI must be carefully considered to ensure that itsdevelopment and deployment are aligned with human values and priorities.Despite these challenges, the potential benefits of advanced AI are vast. Imagine a world where AI-powered systems can help us solve some of the most pressing global challenges, from climate change and disease to poverty and conflict. AI could assist in the development of sustainable energy solutions, the discovery of new medical treatments, and the design of more efficient and equitable social systems. The possibilities are truly endless.In conclusion, the rapid development of AI is a testament to the ingenuity and creativity of human beings. As we continue to push the boundaries of what is possible, it is crucial that we do so in a responsible and ethical manner, ensuring that the benefits of AI are shared equitably and that its risks are mitigated. By embracing the potential of AI while addressing its challenges, we can unlock a future that is more prosperous, sustainable, and fulfilling for all.。
程序的英语作文怎么写
程序的英语作文怎么写Writing an English essay on programming involvesseveral key steps to ensure clarity and coherence in your composition. Here's a guide to help you craft a well-structured essay without revealing your prompt:Title: Exploring the World of Programming。
Introduction:Programming is a ubiquitous aspect of modern society, influencing various facets of our lives from communicationto entertainment, finance, and healthcare. In this essay,we delve into the intricacies of programming, exploring its significance, evolution, and impact on contemporary society.Body:1. The Foundation of Programming:Programming serves as the backbone of technology, enabling the creation of software applications, websites, and systems that power our digital world. At its core, programming involves writing instructions for computers to execute tasks efficiently and accurately.2. Evolution of Programming Languages:Since the inception of programming, numerous languages have emerged, each with its syntax, features, and applications. From the early days of machine language and assembly to high-level languages like Python, Java, and C++, the evolution of programming languages reflects the ever-changing needs and advancements in technology.3. Applications of Programming:The applications of programming are diverse and far-reaching. From developing mobile apps and video games to analyzing big data, automating processes, and powering artificial intelligence, programming plays a pivotal rolein driving innovation across industries.4. Programming Paradigms:Programming paradigms represent different approaches to solving problems and organizing code. Object-oriented programming (OOP), functional programming, and procedural programming are among the most prevalent paradigms, each offering unique advantages and methodologies for software development.5. Challenges and Opportunities:While programming unlocks a myriad of possibilities, it also presents challenges such as debugging code, managing complexity, and staying abreast of rapid technological advancements. However, these challenges also foster opportunities for continuous learning, innovation, and problem-solving.6. Ethical Considerations:As programming becomes increasingly intertwined withour daily lives, ethical considerations emerge regarding data privacy, algorithmic bias, and the societal impact of technology. It is imperative for programmers to uphold ethical standards and consider the broader implications of their work.Conclusion:In conclusion, programming serves as a cornerstone of modern civilization, shaping the way we interact with technology and navigate the digital landscape. From its humble origins to its pervasive influence today, programming continues to evolve, presenting both challenges and opportunities for innovation and progress.Final Thoughts:Writing an essay on programming allows you to explore its multifaceted nature and significance in contemporary society. By following a structured approach and covering key aspects such as language evolution, applications, paradigms, challenges, and ethical considerations, you cancraft a comprehensive and insightful essay without revealing your initial prompt.。
软技能和硬技能的英语作文
软技能和硬技能的英语作文Soft skills are essential for success in any field. They include communication, teamwork, problem-solving, and adaptability. These skills are not easily quantifiable, but they are crucial for building strong relationships and navigating complex work environments.On the other hand, hard skills are specific, teachable abilities that can be defined and measured. They often include technical knowledge and practical abilities, such as coding, data analysis, or project management. Hardskills are important for performing specific tasks and duties within a job or industry.Soft skills are often considered more difficult to develop than hard skills, as they require self-awareness, empathy, and emotional intelligence. However, they are highly valued by employers because they contribute to a positive work culture and effective collaboration among team members.In contrast, hard skills are typically easier to learn through formal education, training programs, or on-the-job experience. They are often the minimum requirements for many job positions, as they demonstrate a candidate'sability to perform the necessary tasks and responsibilities.In conclusion, both soft skills and hard skills are important for professional success. While hard skills demonstrate a person's technical abilities, soft skills are crucial for building relationships, resolving conflicts,and adapting to change in the workplace. Employers often seek a balance of both types of skills when evaluating potential candidates for a position.。
ai对围棋的影响英语作文
ai对围棋的影响英语作文The Impact of AI on Go。
Introduction。
Artificial Intelligence (AI) has significantly influenced various aspects of human life, including board games like Go. Go, an ancient Chinese board game, has been played for centuries and is known for its complexity and strategic depth. With the advent of AI, particularly with the development of deep learning algorithms, the game of Go has undergone a remarkable transformation. This essay explores the impact of AI on Go, discussing its historical context, technological advancements, and societal implications.Historical Context。
The history of AI's influence on Go can be traced back to the development of computer programs designed to playthe game. Early attempts to create Go-playing algorithms faced numerous challenges due to the game's vast search space and the difficulty of evaluating board positions. However, breakthroughs in AI, such as IBM's Deep Blue defeating world chess champion Garry Kasparov in 1997, inspired researchers to tackle the Go challenge.Technological Advancements。
计算机专业英语第二版 译文
《计算机英语》参考译文(精读部分)目录第1单元课文A:计算机概览 (3)一、引言 (3)二、历史 (3)三、硬件 (4)四、编程 (5)五、未来的发展 (5)第2单元课文A:计算机硬件 (5)一、引言 (5)二、输入硬件 (6)三、输出硬件 (6)四、存储硬件 (7)五、硬件的连接 (7)第3单元课文A:操作系统 (8)一、引言 (8)二、操作系统是怎样工作的 (8)三、当前的操作系统 (8)五、未来的技术 (10)第4单元课文A:编程语言 (11)一、引言 (11)二、语言类型 (11)三、高级语言的分类 (12)四、语言的结构与成分 (12)五、历史 (13)第5单元课文A:计算机程序 (13)一、引言 (13)二、程序开发 (14)三、程序元素 (14)四、程序功能 (15)五、历史 (16)六、未来 (16)第6单元课文A:软件生命周期 (17)第7单元课文A:进入关系数据库的世界 (19)一、什么是关系数据库? (19)二、数据库管理系统的介绍 (20)三、不同的计算模型 (21)第8单元课文A:电信与计算机 (22)第9单元课文A:计算机网络 (24)一、引言 (24)二、调制解调器与计算机管理局 (24)三、局域网 (24)四、路由器与桥接器 (25)五、广域网 (25)六、分布式计算 (25)七、安全与管理 (26)第10单元课文A:因特网是如何工作的? (26)一、因特网访问 (27)二、信息打包 (27)三、网络编址 (27)四、电子邮件 (28)五、传输模式 (28)六、带宽 (28)第11单元课文A:信息革命 (29)一、引言 (29)二、社会与技术发展 (29)三、信息革命的方向 (29)四、就业趋势 (30)五、信息技术与消费者 (31)六、信息革命的问题 (31)第12单元课文A:电子商务简介 (32)一、定义 (32)二、需求与服务 (32)第13单元课文A:计算机安全 (34)一、计算机安全面临的威胁 (34)二、保护计算机安全的措施 (36)第14单元课文A:比尔•盖茨文摘 (37)第1单元课文A:计算机概览一、引言计算机是一种电子设备,它能接收一套指令或一个程序,然后通过对数值数据进行运算或者对其他形式的信息进行处理来执行该程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Programming Pervasive and Mobile Computing Applicationswith the TOTA MiddlewareMarco Mamei, Franco ZambonelliDISMI – Università di Modena e Reggio Emilia – Via Allegri 13 – Reggio Emilia – ITALY { mamei.marco, franco.zambonelli }@unimo.itAbstractPervasive computing calls for suitable middleware and programming models to deal with large software systems dived in dynamic mobile network environments. Here we present the programming model of TOTA (“Tuples On The Air”), a novel middleware for supporting adaptive context-aware activities in pervasive computing scenarios. The key idea in TOTAis to rely on spatially distributed tuples, propagated across a network on the basis of application-specific rules, for both representing contextual information and supporting uncoupled interactions between application components. As shown with the help of a case study scenario, TOTA promotes a simple programming model and can effectively facilitate access to distributed information, navigation in complex networks, and achievement of complex coordination tasks in a fully distributed and adaptive way.1. IntroductionComputing is becoming intrinsically pervasive and mobile [15]. Computer-based systems are going to be embedded in all our everyday objects and in our everyday environments. These systems will be typically communication enabled, and capable of interacting with each other in the context of complex distributed applications, e.g., to support our cooperative activities [13], to monitor and control our environments [3], and to improve our interactions with the physical world [9]. Also, since most of the embeddings will be intrinsically mobile, as a car or a human, distributed software processes and components (from now on, we adopt the term “agents” to generically indicate the active components of a distributed application) will have to effectively interact with each other and orchestrate their activities despite the network and environmental dynamics induced by mobility.The above scenario introduces peculiar challenging requirements in the development of distributed software systems: (i) since new agents can leave and arrive at any time, and can roam across different environments, applications have to be adaptive, and capable of dealing with such changes in a flexible and unsupervised way; (ii) the activities of the software systems are often contextual, i.e., strictly related to the environment in which the systems execute (e.g., a room or a street), whose characteristics are typically a priori unknown, thus requiring to dynamically enforce context-awareness; (iii) the adherence to the above requirements must not clashes with the need of promoting a simple programming model possibly requiring light supporting infrastructures.Unfortunately, current practice in distributed software development, as supported by currently available middleware infrastructures, is unlikely to effectively address the above requirement: (i) application agents are typically strictly coupled in their interactions (e.g., as in message-passing models and middleware), thus making it difficult to promote and support spontaneous interoperations; (ii) agents are provided with either no contextual information at all or with only low-expressive information (e.g., raw local data or simple events), difficult to be exploited for complex coordination activities; (iii) due to the above, the results is usually in an increase of both application and supporting environment complexity.The approach we propose in this paper builds on the lessons of uncoupled coordination models like event-based [5] and tuple space programming [4] and aims at providing agents with effective contextual information that – while preserving the lightness of the supporting environment and promoting simplicity of programming – can facilitate both the contextual activities of application agents and the definition of complex distributed coordination patterns. Specifically, in the TOTA (“Tuples On The Air”) middleware, all interactions between agents take place in a fully uncoupled way via tuple exchanges. However, there is not any notion like a centralized shared tuple space. Rather, tuples can be “injected” into the network from any node and can propagate and diffuse accordingly to tuple-specific propagation patterns. The middleware takes care of propagating the tuples and of adapting their shapeaccordingly to the dynamic changes that can occur in the network (as due by, e.g., mobile or ephemeral nodes). Agents can exploit a simple API to define and inject new tuples in the network and to locally sense both tuples and events associated with changes in the tuples’ distributed structures (e.g., arrival and dismissing of tuples).2. Motivations and Case StudyTo sketch the main motivations behind TOTA, we introduce a simple case study scenario and try to show the inadequacy of traditional approaches in this context. 2.1. Case Study ScenarioLet us consider a big museum, and a variety of tourists moving within it. We assume that each of them is provided with a wireless-enabled computer assistant (e.g., a PDA). Also, it is realistic to assume the presence, in the museum, of a densely distributed network of computer-based devices, associated with rooms, corridors, art pieces, alarm systems, climate conditioning systems, etc. Such devices can be exploited for both the sake of monitoring and control, as well as for the sake of providing tourists with information helping them to achieve their goals. For tourists, such goals may include retrieving information about art pieces, effectively orientate themselves in the museum, and meeting with each other (in the case of organized groups). In the following, we will concentrate on two specific representative problems: (i) how tourists can gather and exploit information related to an art piece they want to see; (ii) how tourists can meet in the museum.In any case, whatever specific application problem has to be addressed in the above scenario, it should meet the requirements identified in the introduction. (i)Adaptivity: tourists move in the museum. They are likely to come and go at any time. Art pieces can be moved around the museum during special exhibitions or during restructuring works. Thus, the topology of the overall network can change with different dynamics and for different reasons, all of which have to be preferably faced without human intervention. (ii)Context-awareness: as the environment (i.e., the museum map and the location of art pieces) may not be know a priori (tourists can be visiting the museum for the first time), and it is also likely to change in time (due to restructuring and exhibitions), application agents should be dynamically provided with contextual information helping their users to move in the museum and to coordinate with each other without relying on any a priori information; (iii)Simplicity: PDAs may have limited battery life, as well as limited hardware and communication resources. This may require a light supporting environment and the need for applications to achieve their goal with limited computational and communication efforts.We emphasize the above sketched scenario exhibits characteristics that are typical of a larger class of pervasive computing scenarios. Among the others, traffic management and manufacturing control systems [9], mobile robots and sensor networks [15]. Therefore, also all our considerations are of a more general validity, besides the addressed case study.2.2. Inadequacy of Traditional ApproachesMost coordination models and middleware used so far in the development of distributed applications appear inadequate in supporting coordination activities in pervasive computing scenarios.In direct communication models, a distributed application is designed by means of a group of agents that are in charge of communicating with each other in a direct and explicit way. Systems like Jini [7], as well as FIPA agent-based systems [1], support such a direct communication model. One problem of this approach is that agents, by having to interact directly with each other, can hardly sustain the openness and dynamics of pervasive computing scenarios: explicit and expensive discovery of communication partners - typically supported by some sort of directory services - has to be enforced. Also, agents are typically placed in a “void” space: the model, per se, does not provide any contextual information, agents can only perceive and interact with (or request services to) other agents, without any higher contextual abstraction. In the case study scenario, tourists have to explicitly discover the location of art pieces, or of other tourists. Also, to orchestrate their movements, tourist must explicitly keep in touch with each other and agree on their respective movements via direct negotiation. These activities require notable computational and communications efforts and typically end up with ad-hoc solutions – brittle, inflexible, and non-adaptable – for a contingent coordination problem.Shared data-space models exploit localized data structures in order to let agents gather information and interact and coordinate with each other. These data structures can be hosted in some centralized data-space (e.g., tuple space), as in EventHeap [8], or they can be fully distributed over the nodes of the network, as in MARS [4]. In these cases, agents are no longer strictly coupled in their interactions, because tuple spaces mediate interactions and promote uncoupling. Also, tuple spaces can be effectively used as repositories of local, contextual information. Still, such contextual information can only represent a strictly local description of the context that can hardly support the achievement of global coordination tasks. In the case study, one can assume that the museum provides a set of data-spaces, storinginformation such as nearby art pieces as well as messages left by the other agents. Tourists can easily discover what art pieces are nearby them, but to locate a farther art piece they should query either a centralized tuple space or a multiplicity of local tuple spaces, and still they would have to internally merge all the information to compute the best route to the target. Similarly, tourists can build an internal representation of the other people distribution by storing tuples about their presence and by accessing several distributed data-spaces. However, the availability of such information does not free them from the need of negotiating with each other to orchestrate movements. In other words, despite the availability of some local contextual information, a lot of explicit communication and computational work is still required to the application agents to effectively achieve their tasks.In event-based publish/subscribe models, a distributed application is modeled by a set of agents interacting with each other by generating events and by reacting to events of interest. Typical infrastructures rooted on this model are: Siena[5] and Jini Distributed Events [7]. Without doubt, an event-based model promotes both uncoupling (all interactions occurring via asynchronous and typically anonymous events) and a stronger context-awareness: agents can be considered as embedded in an active environment able of notifying them about what is happening which can be of interest to them (as determined by selective subscription to events). In the case study example, a possible use of this approach would be to have each tourist notify its movements across the building to the rest of the group. Notified agents can then easily obtain an updated picture of the current group distribution in a simpler and less expensive way than required by adopting shared data spaces. However, this approach still relies on agents for negotiating the coordinated movements and does not alleviate their computational tasks (i.e., in the case study, tourists still have to explicitly negotiate their movements).3. The Tuples on the Air ApproachThe definition of TOTA is mainly driven by the above considerations. It gathers concepts from both tuple space approaches [4, 8] and event-based ones [5, 7] and extends them to provide agents with a unified and flexible mechanism to deal with both context representation and components’ interaction.In TOTA, we propose relying on distributed tuples for both representing contextual information and enabling uncoupled interaction among distributed application components. Unlike traditional shared data space models, tuples are not associated to a specific node (or to a specific data space) of the network. Instead, tuples are injected in the network and can autonomously propagate and diffuse in the network accordingly to a specified pattern. Thus, TOTA tuples form a sort of spatially distributed data structure able to express not only messages to be transmitted between application components but, more generally, some contextual information on the distributed environment.To support this idea, TOTA is composed by a peer-to-peer network of possibly mobile nodes, each running a local version of the TOTA middleware. Each TOTA node holds references to a limited set of neighbor nodes. The structure of the network, as determined by the neighborhood relations, is automatically maintained and updated by the nodes to support dynamic changes, whether due to nodes’ mobility or to nodes’ failures. The specific nature of the network scenario determines how each node can found its neighbors: e.g., in a MANET scenario, TOTA nodes are found within the range of their wireless connection.Upon the distributed space identified by the dynamic network of TOTA nodes, each component is capable of locally storing tuples and letting them diffuse through the network. Tuples are injected in the system from a particular node, and spread hop-by-hop accordingly to their propagation rule. In fact, a TOTA tuple is defined in terms of a “content”, and a “propagation rule”. T=(C,P). The content C is an ordered set of typed fields representing the information carried on by the tuple. The propagation rule P determines how the tuple should be distributed and propagated across the network. This includes determining the “scope” of the tuple (i.e. the distance at which such tuple should be propagated and possibly the spatial direction of propagation) and how such propagation can be affected by the presence or the absence of other tuples in the system. In addition, the propagation rules can determine how tuple’s content should change while it is propagated. In fact, tuples are not necessarily distributed replicas: by assuming different values in different nodes, tuples can be effectively used to build a distributed overlay data structure expressing some kind of contextual and spatial information (see figure 1). So, unlike event based models, propagation of tuples is not driven by a publish-subscribe schema, but it is directly encoded in tuples’ propagation rule and, unlike an event, can change its content during propagation.The spatial structures induced by tuples propagation must be maintained coherent despite network dynamism (see figure 1). To this end, the TOTA middleware supports tuples propagation actively and adaptively: by constantly monitoring the network local topology and the income of new tuples, the middleware automatically re-propagates tuples as soon as appropriate conditions occur. For instance, when new nodes get in touch with a network, TOTA automatically checks the propagation rules of the already stored tuples and eventuallypropagates the tuples to the new nodes. Similarly, when the topology changes due to nodes’ movements, the distributed tuple structure automatically changes to reflect the new topology. For instance, figure 1 shows how the structure of a distributed tuple can be kept coherent by TOTA in a MANET scenario, despiteapplication components live in an environment in which they can inject tuples that autonomously propagate and sense tuples present in their local neighborhood. The environment is realized by means of a peer-to-peer network in which tuples propagates by means of a multi-hop mechanism. (Bottom) when the tuple source moves, tuples are updated to take into account the new topology From the application components’ point of view, executing and interacting basically reduces to inject tuples, perceive local tuples and local events, and act accordingly to some application-specific policy. Software components on a TOTA node can inject new tuples in the network, defining their content and their propagation rule. They have full access to the local content of the middleware (i.e., of the local tuple space), and can query either the local tuple space or the one-hop neighbor tuple spaces to check for the presence of specific tuples. In addition, components can be notified of events (e.g., changes in tuple space content) occurring either locally orin the one-hop neighborhood.3.1. The Case Study in TOTALet us consider the case study introduced in Section 2. We recall that we assume that the museum is properly instrumented with a reasonably dense number of wireless TOTA peers, e.g., associated with museum rooms and corridors as well as with art pieces, and that tourists are provided with wireless enabled PDAs running the TOTA middleware. All these devices, by connecting in ad-hoc network, define the structure of the TOTA space. Moreover, we make the following assumptions: (i) devices are provided with localization mechanisms enabling them to know neighbors’ coordinates in a private local coordinate frame. (ii) The rough topology of the ad-hoc network being formed by TOTA devices resembles the museum floor-plan. This means that there are not network links between physical barriers (like walls). To achieve this property, we suppose that either the devices are able to detect and drop those network links crossing physical barriers (e.g. relying on signal strength attenuation or some other sensors installed on the device) or that the museum building is pre-installed with a network backbone – reflecting its floor-plan – and that all the nodes can connect only to the backbone. And there are not long-range, wired backbones in the network. To achieve this property it is possible to rely on the natural physical attenuation of radio-based signals (in wireless communication), or to constrain the addressable space of wired nodes, to let them able to talk only with close peers.Coming back to the case study, the first problem we face is that of enabling a tourist to discover the presence and the location of a specific art piece. TOTA makes this very simple, we could consider that art pieces can sense the income of tuples propagated by tourists – and describing the art piece they are looking for – and are programmed to react to these events by propagating backward to the requesting tourists a tuple containing their own location information. In particular, Query and Answer tuples could be defined as described in figure 2. Since TOTA keeps the tuple shape coherent despite node movements, Query tuples create gradients leading to their sources even if the sources move. Thus Answer tuples can reach a tourist while he/she is in movement.The second problem we consider involves a “meeting” service whose aim is to help a group of tourists to find and move towards the most suitable room for a meeting. Even if several different policies can be though related to how a group of tourists should meet, here we will concentrate on having a group of tourists that wants to meet in the room that is between them (their “barycenter”). To this purpose, each tourist involved in the meeting can inject the Meeting tuple described in figure 2.Then, any tourist can follow downhill the tuple propagated by the farther other tourist in the group. In this way all tourists “fall” towards each other, and they meet in their barycenter room. It is interesting to notice,that this room is evaluated dynamically and the process takes into account unexpected situations (e.g. crowded areas). So if some tourists encounter crowd in their path to the meeting room, the meeting room is automatically changed to a room closer to these unlucky tourists.Query tupleC= (description , distance)P=(propagate to all peers hop by hop, increasing the “distance” field by one at every hop)Answer tupleC = (description, location, distance)P = (propagate following downhill the “distance” of the associated query tuple, incrementing distancevalue by one at every hop)Meeting tupleC= (tourist_name, distance)P=(propagate to all peers hop by hop, increasing the “distance” field by one at every hop)Figure 2: General description of the tuples involved in the case study scenario: Query Tuple, Answer Tuple and Meeting Tuple3.2. ImplementationFrom an implementation point of view, we developed a first prototype of TOTA running on Compaq IPAQs, running Linux (Familiar distribution) and equipped with 802.11b and Java 2 Micro Edition (J2ME, CDC, Personal profile). IPAQs connect locally in the MANET mode (i.e. without requiring access points) creating the skeleton of the TOTA network. Moreover, we have implemented a simulator to analyze TOTA behavior in presence of hundreds of nodes. The simulator, developed in Java, enables examining TOTA behavior in a MANET scenario, in which nodes topology can be rearranged dynamically either by a drag and drop user interface or by autonomous nodes’ movements. The strength of our simulator is that, by adopting well-defined interfaces between the simulator and the application layers, the same code “installed” on the emulated devices can be installed on real devices. This allow to test applications first in the simulator, then to upload them directly in a network of real devices. Further details on the implementation can be found in [10].4. TOTA ProgrammingWhen developing applications upon TOTA, one has basically to know: (i) what are the primitive operations to interact with the middleware; (ii) how to specify tuples and their propagation rule; (iii) how to exploit the above to code agents. public void inject (TotaTuple tuple);public Vector read (Tuple template);public Vector readOneHop (Tuple template);public Tuple keyrd (Tuple template);public Vector keyrdOneHop(Tuple template);public Vector delete (Tuple template);public void subscribe (Tuple template, ReactiveComponent comp, String rct);public void unsubscribe (Tuple template, ReactiveComponent comp);Figure 3: TOTA APIpublic class ToyAgent implements AgentInterface {private TotaMiddleware tota;/* agent body */public void start() {/* create a tuple and inject it*/FooTuple foo = new FooTuple(“Hello World!”);tota.inject(foo);/* define a template tuple */FooTemplTuple t = new FooTempTuple();/* read local tuples matching the template */Vector v = tota.read(t);/* subscribe to changes in tuples matching t*/ tota.subscribe(t,this,””);}/* code of the reaction to the subscrption */public void react(String reaction, Stringevent) { System.out.pritnln(event);}}Figure 4: Example code of a ToyAgent accessing the TOTA API4.1. TOTA PrimitivesTOTA is provided with a simple set of primitive operations to interact with the middleware (see figure 3). inject is used to inject the tuple passed as an argument in the TOTA network. Once injected the tuple starts propagating accordingly to its propagation rule (embedded in the tuple definition). The read primitive accesses the local TOTA tuple space and returns a collection of the tuples locally present in the tuple space and matching the template tuple passed as parameter. The readOneHop primitive returns a collection of the tuples present in the tuple spaces of the node’s one-hop neighborhood and matching the template tuple. Each TOTA distributed tuple is also marked with an unique id (invisible at the application level) enabling a fast access to the tuple, disregarding its content. The keyrd and keyrdOneHop methods serve to this purpose, they look for tuples with the same id of the tuple passed as argument. The typical usage of these methods is to evaluate how a specific tuple has changed in the neighborhood. Specifically in the case of tuples with a numeric content, it allows to evaluate the tuple’s gradient. The delete primitive extracts from the local middleware all the tuples matching the template and returns them tothe invoking agent. In addition, subscribe and unsubscribe primitives are defined to handle events. These primitives rely on the fact that any event occurring in TOTA (including: arrivals of new tuples, connections and disconnections of peers) can be represented as a tuple. Thus: the subscribe primitive associates the execution of a reaction method in the agent in response to the occurrence of events matching the template tuple passed as first parameter. Specifically, when the a matching event happens, the middleware invokes on the agent a special react method passing as parameters, the reaction string and the matching event. The unsubscribe primitives removes matching subscriptionsThe simple application agent in figure 4 clarifies the above concepts.4.2. Specifying TuplesRelying on an object oriented methodology, TOTA tuples are actually objects: the object state models the tuple content, while the tuple’s propagation has been encoded by means of a specific propagate method.When a tuple is injected in the network, it receives a reference to the local instance of the TOTA middleware, then its code is actually executed (the middleware invokes the tuple’s propagate method) and if during execution it invokes the middleware move method, the tuple is actually sent to all the one-hop neighbors, where it will be executed recursively. During migration, the object state (i.e. tuple content) is properly serialized to be preserved and rebuilt upon the arrival in the new host.Following this schema, we have defined an abstract class TotaTuple, that provides a general framework for tuples programming (see figure 5).abstract class TotaTuple {protected TotaInterface tota;/* the state is the tuple content */…/* this method inits the tuple, by giving a reference to the current TOTA middleware */public void init(TotaInterface tota) {this.tota = tota; }/* this method codes the tuple actual actions */ public abstract void propagate();/* this method enables the tuple to react to happening events… see later in the article */ public void react(String reaction, String event) {}}Figure 5: The structure of the TotaTuple class It is worth noting that a tuple is not thread by its own, it is actually executed by the middleware, that runs the tuple’s init and propagate methods. The point to understand is that when the middleware has finished the execution of the tuple’s methods, the tuple (on that node) becomes a ‘dead’ data structure eventually stored in the middleware local tuple space.Tuples, however, must remain active even after the middleware has run their code. This is fundamental because their maintenance algorithm – see Section 5 - must be executed whenever the right conditions appear (e.g. a new peer has been connected). To this end, tuples can place subscriptions, to the TOTA event engine as provided by the standard TOTA API. These subscriptions let the tuples remain ‘alive’, being able to execute upon triggering conditions.This model for tuples gives the maximum flexibility. However, the problem is that it is too complex, and we do not foster the idea of having the programmer to write tuples code form scratch. For this reason, we have developed a tuples’ class hierarchy from which the programmer can inherit to create custom tuples without worrying about most of all the intricacies of dealing with tuple propagation and maintenance.The only child of the TotaTuple class, is the class StructureTuple. This class is a template to create distributed data structures over the network. However, StructureTuples are NOT maintained by the middleware. This means that if the topology of the network changes the tuple local values are left untouched. This class inherits from TotaTuple and implements the superclass method propagate (see figure 6).public final void propagate() {if(decideEnter()) {boolean prop = decidePropagate();changeTupleContent();this.makeSubscriptions();tota.store(this);if(prop) tota.move(this); }}Figure 6: Standard implementation of the propagate method in the StructureTuple class The class StructureTuple implements the methods: decideEnter, decidePropagate, changeTupleContent and makeSubscriptions so as to realize a breadth first, expanding ring propagation. The result is simply a tuple that floods the network without changing its content. Specifically, when a tuple arrives in a node (either because it has been injected or it has been sent from a neighbor node) the middleware executes the decideEnter method that returns true if the tuple can enter the middleware and actually execute there, false otherwise. The standard implementation returns true if the middleware does not already contain that tuple.If the tuple is allowed to enter the method decidePropagate is run. It returns true if the tuple has to be further propagated, false otherwise. The standard implementation of this method returns always true, realizing a tuple’s that floods the network being recursively propagated to all the peers.。