Mapping Object Descriptions to Behaviours 1

合集下载

Autodesk Nastran 2022 用户手册说明书

Autodesk Nastran 2022 用户手册说明书
DATINFILE2 ......................................................................................................................................................... 10
MPA, MPI (design/logo), MPX (design/logo), MPX, Mudbox, Navisworks, ObjectARX, ObjectDBX, Opticore, Pixlr, Pixlr-o-matic, Productstream,
Publisher 360, RasterDWG, RealDWG, ReCap, ReCap 360, Remote, Revit LT, Revit, RiverCAD, Robot, Scaleform, Showcase, Showcase 360,
TrueConvert, DWG TrueView, DWGX, DXF, Ecotect, Ember, ESTmep, Evolver, FABmep, Face Robot, FBX, Fempro, Fire, Flame, Flare, Flint,
ForceEffect, FormIt, Freewheel, Fusion 360, Glue, Green Building Studio, Heidi, Homestyler, HumanIK, i-drop, ImageModeler, Incinerator, Inferno,
Autodesk Nastran 2022
Reference Manual
Nastran Solver Reference Manual

分层分包的缩写

分层分包的缩写
hibernate里的Criteria 就相当于一个QO;
在使用hibernate的时候我们会定义一些查询的方法,这些方法写在接口里,可以有不同的实现类.而这个接口就可以说是个DAO.
个人认为QO和DTO差不多.
----------------------------------------
DAO(data access object) 数据访问对象
是一个sun的一个标准j2ee设计模式,这个模式中有个接口就是DAO,它负持久层的操作。为业务层提供接口。此对象用于访问数据库。通常和PO结合使用,DAO中包含了各种数据库的操作方法。通过它的方法,结合PO对数据库进行相关的操作。夹在业务逻辑与数据库资源中间。配合VO, 提供数据库的CRUD操作...
VO:值对象、视图对象
PO:持久对象
QO:查询对象
DAO:数据访问对象
DTO:数据传输对象
----------------------------------------
struts 里的 ActionForm 就是个VO;
hibernate里的 实体bean就是个PO,也叫POJO;
QO,是把一些与持久性查询操作与语句放入。。
VO,V层中用到的基本元素与方法等放其中。如果要其调用BO,则要做BO转换VO,VO转换BO操作。VO的好处是其页面的元素属性多于BO,可起到很好的作用。。。。
-----------------------------------------
楼上的不对吧,PO是持久化对象。BO=business object—业务对象。
----------------------------------------------------

哈姆林中心杨广中实验室

哈姆林中心杨广中实验室

Predictive Cardiac Motion Modeling and Correction with PLSR Predictive cardiac motion modeling and correction based on partial least squares regression to extract intrinsic relationships between three-dimensional (3D) cardiac deformation due to respiration and multiple one-dimensional real-time measurable surface intensity traces at chest or abdomen. - see IEEE TMI 23(10), 2004
Myocardial Strain and Stain Rate Analysis Virtual tagging with MR myocardial velocity mapping - IEEE TMI Strain rate analysis with constrained myocardial velocity restoration Review of methods for measuring intrinsic myocardial mechanics - JMRI Atheroma Imaging and Analysis The use of selective volume excitation for high resolution vessel wall imaging (JMRI, 2003;17(5):572-80). 3D morphological modeling of the arterial wall Feature reduction based atheroma classification Volume Selective Coronary Imaging A locally focused MR imaging method for 3-D zonal echo-planar coronary angiography using volume selective RF excitation. Spatially variable resolution was used for delineating coronary arteries and reducing the effect of residual signals caused by the imperfect excitation profile of the RF pulse. The use of variable resolution enabled the derivation of basis functions having variable spatial characteristics pertain to regional object details and a significantly smaller number of phase encoded signal measurements was needed for image reconstruction. Gatehouse PD, Keegan J, Yang GZ, Firmin DN. Magn Reson Med, 2001 Nov;46(5):1031-6. Yang GZ, Burger P, Gatehouse, PD, Firmin DN. Magn Reson Med, 41, 171-178, 1999. Yang GZ, Gatehouse PD, Keegan J, Mohiaddin RH, Firmin DN. J. Magn Reson Med, 39: 833-842, 1998.

Neo4j中文使用手册以及例子

Neo4j中文使用手册以及例子

目录前言I. 简介1. Neo4j的亮点2. 图数据库概要3. Neo4j图数据库II. 教程4. 在Java应用中使用Neo4j5. Neo4j远程客户端库6. 遍历查询框架7. 数据模型范例8. 多语言支持9. 在Python应用中使用Neo4j10. 扩展Neo4j服务器III. 参考11. 性能12. 事务管理13. 数据导入14. 索引15. Cypher查询语言16. 图形算法17. Neo4j服务器18. REST API19. 在Python中使用Neo4j嵌入模式IV. 操作20. 安装和部署21. 配置和调优22. 高可用性模式23. 备份24. 安全25. 监视服务器V. 工具集26. 基于Web的Neo4j图数据库管理工具27. Neo4j命令行VI. 社区28. 社区支持29. 促进Neo4j发展A. 联机帮助页A.1. neo4jA.2. neo4j-shellA.3. neo4j-backupA.4. neo4j-coordinatorA.5. neo4j-coordinator-shellB. 常见问题第 1 章Neo4j的亮点作为一款强健的,可伸缩的高性能数据库,Neo4j最适合完整的企业部署或者用于一个轻量级项目中完整服务器的一个子集存在。

它包括如下几个显著特点:完整的ACID支持高可用性轻易扩展到上亿级别的节点和关系通过遍历工具高速检索数据适当的ACID操作是保证数据一致性的基础。

Neo4j确保了在一个事务里面的多个操作同时发生,保证数据一致性。

不管是采用嵌入模式还是多服务器集群部署,都支持这一特性。

更多详细的介绍,请参考章节:transactions。

可靠的图型存储可以非常轻松的集成到任何一个应用中。

随着我们开发的应用在运营中不断发展,性能问题肯定会逐步凸显出来,而Neo4j不管应用如何变化,他只会受到计算机硬件性能的影响,不受业务本身的约束。

部署一个neo4j服务器便可以承载上亿级的节点和关系。

将对象映射到关系数据库

将对象映射到关系数据库

________________________________________
满江红翻译团队:
-5-
图 3. 在一个类图里包含"shadow 信息"
我还没有讨论的一种 shadow 信息是用一个 boolean 类型的标志来表示当前一个 对象是否存在于数据库中。这里的问题是当你把数据保存到一个关系型数据中, 如果原先的对象是从数据库中获取出来的,你需要使用一个 SQL update 语句来 保存数据,否则应该使用 SQL insert 语句。一个普通的解决方法是为每个类实 现一个 isPersistent 的 boolean 型信号标志(图 3 里没有显示),当数据是从 数据库里面读取的时候把它的值设置成 true,如果对象是新创建的话则设置为 false。
最简单的映射就是把一个属性映射到一个字段。当双方拥有一样的基本类型的时 候,这甚至可以变得更简单。例如,双方都是 date 类型,或者属性是 string 类型而字段是 char 型,或者属性是 number 类型而字段是 float 类型。
映射术语
映射 (动词). 指的是如何把对象和对象之间的关系持久化到永久存储设备(这在里是关系 型数据库)中的行为。
将对象映射到关系数据库:对象/ 关系映射(O/R Mapping)详解
大多数现代商业应用开发项目使用面向对象技术,比如采用Java或者C#来创建应 用软件,同时使用关系型数据库来存储数据。但这并不是要说你没有其它选择, 也有许多应用程序是使用面向过程的语言开发,比如COBOL,而且也有许多系统 使用对象型数据库或者XML数据库来存储数据。然而,因为面向对象和关系数据 库技术到目前为止已经成为一种事实上的标准,在本章节中我假设你正在使用这 些技术。如果你采用其它的存储技术,本文里的许多概念仍然适用,只需要做一 点点修改(不必担心,Realistic XML总括了对象与XML映射的相关问题)。

翻译理论与实践-多元系统理论

翻译理论与实践-多元系统理论
systems • Authors and other writers • Differing literary systems • Differing sociological aspects
(eg:publishing,distribution) Advantage of the systemic approach: more applicable.
• She s shifts on a microstructural level(eg: words, clauses, setences),relates the consequences of the microlevel shifts on the macrostructural level(eg: characters, events, time), and categorizes them.
The very definition of translation is dependent upon norms and how they work in any given system/society.
(P133)
5、Kitty Van Leuven-Zwart 凯蒂.范.路文兹瓦特
• She is a Dutch scholar, former head of the Translation Studies Deparment(翻译研究部) at the University of Amsterdam.
• Contribution: Their system theory work helped translation studies break down certain conceptual barriers and find a method for better describing translations.

测绘专业英语翻译

测绘专业英语翻译

目录1.3.3 Origin of Geomatics ..................................................................................错误!未定义书签。

2.3 Map projections地图投影 ..........................................................................错误!未定义书签。

2.4 Datums and coordinate system基准和坐标系统.......................................错误!未定义书签。

2.4.1 Horizontal and vertical datums水平基准和高程基准 ....................错误!未定义书签。

1.Horizontal datums水平基准..........................................................错误!未定义书签。

2.Vertical datum高程基准 ................................................................错误!未定义书签。

4.4 Trigonometric leveling三角高程.................................................................错误!未定义书签。

4.4.1 Instruments of trigonometric leveling三角高程测量仪器..............错误!未定义书签。

4.4.2 Principle of trigonometric leveling三角高程测量的原理 ...............错误!未定义书签。

用思维导图描述家庭成员的英语作文

用思维导图描述家庭成员的英语作文

用思维导图描述家庭成员的英语作文全文共3篇示例,供读者参考篇1My Family Mind MapI recently had to do an assignment for my English class where I had to create a mind map describing my family members.I found the mind map to be a really useful way to organize and visualize the different relationships and details about each person. Let me walk you through how I constructed my family mind map.In the center, I wrote "My Family" in a big circle. Radiating out from that central circle, I drew branches for my immediate family - one for my mom, one for my dad, one for my younger brother, and one for my older sister. On each of those branches, I filled in key details and traits about that family member.For my mom's branch, I wrote things like "hardworking", "good cook", "kind", and "good planner." She really is the glue that holds our family together with her organization skills and nurturing personality. I also noted some of her favorite hobbies like gardening and reading fiction novels.My dad's branch had descriptors like "funny", "tech-savvy", "athletic", and "disciplined." He's the jokester of the family who always keeps us laughing, but he's also really into fitness and working with computers and gadgets. I included some of his interests like running, playing tennis, and building computers.For my little brother's branch, I put "energetic", "curious", "loves sports", and "mischievous." He's only 10 but has so much youthful exuberance and gets into everything! I noted that he plays soccer, basketball, and video games voraciously. Under "mischievous" I gave some examples of his classic prankster behavior like putting plastic wrap on the toilet.My older sister's branch contained descriptors like "studious", "artistic", "fashionable", and "sarcastic." She's two years older than me and is really focused on academics and getting into a top university. But she's also a talented artist and very trendy and put together in her style. Her sarcastic wit comes through with her biting one-liners too.Extending off the main branches for each immediate family member, I created sub-branches for extended family members. For example, under my mom's branch I created smaller branches for her parents (my grandparents), her sister (my aunt), and her sister's kids (my cousins). I filled in names, ages, locations wherethey live, occupations, and other key details about those extended relatives.The same sub-branching structure extended from my dad's branch too, with sections for his parents, siblings, and their kids. I tried to capture everyone's unique personalities, backgrounds, and my connection to them. For instance, I noted how my uncle on my dad's side is an avid fisherman and VW van enthusiast. Little descriptors like that help bring out each person's individuality.As my mind map radiated further and further out, I captured more distant relatives as well - great aunts and uncles, second cousins, and so on. The branches became harder to decipher the more extended and convoluted the relationships became! But having the clear roots and main branches in the center made it easier to logically extend out to the farther reached parts of my family tree.In addition to describing individual relatives, I also used my mind map to depict some key family events, traditions, and dynamics. For example, I created a separate branch for "Family Vacations" where I could note things like our annual trips to the beach house, summer road trips out west, or even just lazy days at the lake swimming and barbecuing as a family unit.Another branch focused on "Family Celebrations" like birthdays, anniversaries, holidays, graduations, and other major events that bring everyone together. I used icons, colors, and imagery on the branches to make them more vibrant and visual. Like little cartoon pictures of birthday cakes and Christmas trees.My mind map also captured some of the funny family jokes, quotable moments, and long-running family traditions. Like my uncle's famous phrase about being as "busy as a dog watching TV" or the way we all do impersonations of my grandpa's southern drawl and cheesy one-liners. The recurring gag gifts exchanged at Christmas got a shoutout too!One branch focused on "Family Roles" where I explored each person's role or place within the family structure. I noted how my oldest cousin is seen as the "matriarch" keeping everyone informed and organized. My youngest cousin is definitely the "baby" that gets doted on. And my own role as the "middle child" always having to share and compromise. Getting those family dynamics and quirky labeled roles onto the mind map made me chuckle.As I look back at my sprawling, chaotic, yet lovingly detailed mind map, it really captures the zany, fun, complicated bunch of people that make up my family. The mind map format, with itsradiating branches and ability to depict connections through both visuals and text, made it the perfect format for describing my family unit.The mind map allowed me to logically organize and categorize all the different people and subgroups. But it also gave me the flexibility to illustrate the intricate relationships, shared histories, and idiosyncrasies that make my family what it is. It's such a tangled beautiful mess, and I feel like my mind map paid homage to the organized chaos!Creating this mind map was a really insightful exercise that made me appreciate my family even more. Digging into describing each person's roles, backgrounds, quirks, and how we're all connected reinforced how lucky I am to be part of this weird, wonderful, loving family of mine. I may take my relatives for granted sometimes in day-to-day life, but spending time intentionally depicting them opened my eyes anew. Hooray for family and mind maps!篇2My English Composition: Describing Family Members with a Mind MapFor this week's English composition assignment, we were tasked with creating a mind map to describe the members of our family. I have to admit, when I first heard about using a mind map for this essay, I was a bit skeptical. How could a bunch of bubbles and lines effectively capture the richness and complexity of my family members? But as I started putting pencil to paper, I realized mind maps are the perfect tool for this task. Their visual nature and free-flowing form allowed me to let my thoughts roam and make surprising connections I may have otherwise missed.At the center of my mind map, I drew a large bubble with the words "My Family" written inside. Branching off from this central bubble, I sketched out smaller bubbles for each individual family member - mom, dad, younger sister, grandparents, aunts, uncles, and cousins galore. The beauty of mind maps is you can organize information however makes most sense to you, so I opted to group family members by their relation to me - nuclear family, grandparents, mom's side, dad's side, and so on.As I studied each family member's bubble, structuring my descriptions in concise yet descriptive phrases, a vivid portrait began to emerge. Take my mom for instance - her bubble reads "creative soul, always painting, loves dancing." Just three simpleterms, but they succinctly summarize some of her core traits and interests. My dad's bubble says "logical thinker, good with numbers, awful dancer." This contrasting depiction highlights the yin and yang of my parent's personalities.With my nuclear family mapped out, I moved on to extended relatives, discovering interesting parallels and divergences along the way. My aunt's bubble notes "loves painting like mom" with an arrow linking it to my mom's "creative soul" bubble. But her bubble also says "shy, quiet" which differs from my mom's outgoing nature. Looking at bubbles for my paternal grandfather ("hardworking farmer") versus my maternal grandmother ("social butterfly"), I was struck by their vastly dissimilar lifestyles and temperaments despite being approximately the same age.While bubbles convey topline personalities, mind maps also allowed me to go deeper through sub-branches and annotations. For example, under my sister's main bubble of "studious, smart, violin prodigy", I drew offshoots detailing her 4.0 GPA, accomplishments like winning the state violin competition, and personality quirks like her penchant for weird-flavored potato chips. With my cousins, I used symbols and colors to signify different traits - a green dollar sign for my business-savvy cousin,a basketball for my athletic cousin, and a theatre mask for the cousin obsessed with drama club.As my mind map grew more intricate and complex, I realized creating this comprehensive key was an invaluable exercise in truly knowing my family members - their hopes, fears, strengths, flaws, and idiosyncrasies. A traditional essay could have conveyed some of this, but the mind map's spatial formatting encouraged me to identify outward appearances versus inward realities, as well as how different relatives interconnect and diverge from one another.I also found mind mapping to be a refreshing creative release amidst the rigid structure of typical school writing assignments. Free from the constraints of Topic Sentence > Body > Conclusion formulas, I could let my thoughts flow freely across the page, circling back to add new nuggets or epiphanies as I had them. Rather than mechanically transcribingpre-outlined notions, the mind map pushed me to think more holistically about my subjects. And since mind mapping uses the entire blank canvas rather than thin lined sections, it almost felt like creating a piece of abstract art at times.In the end, the value of mind mapping for this family description exercise extended far beyond just fulfilling theprompt. It provided revelatory insights into my closest kin and deepened my personal connections to them. My finalized mind map, with densely clustered bubbles and an intricate webbing of branches and annotations, tells a vibrant story not just through words, but also colors, shapes, spacing, and visual flows. A traditional essay could never capture the dynamic dimensionality of the mind map.While I initially doubted the merits of mind mapping for this particular assignment, I'm now a firm convert. Mind maps will certainly be my go-to tool for future brainstorming, analysis, and ideation across all subjects. Maybe I'll even create mind maps for my mind maps! The possibilities seem limitless when you can break free from the linear constraints of traditional outlines and open your creativity up to bloom across an endlessly expansive canvas.篇3My Family Mind MapAs a high school student, one of the most interesting assignments I've had recently was to create a mind map describing the members of my family. At first, I wasn't sure how to approach it in a creative way that would make it stand out. Butafter giving it some thought, I realized a mind map is the perfect format to capture the diverse personalities, roles, and relationships that make up my family. Here is my attempt at using a mind map to depict the special individuals who make up my family.In the center of my mind map, I have the core concept of "My Family." Branching off from that are the main categories or branches - Parents, Siblings, Grandparents, Aunts/Uncles, and Cousins.Under the Parents branch, I first have my mom represented with a sub-branch. Some of the descriptors I've included are: nurturing, artistic, patient, open-minded, and great cook. My mom is one of the most caring people I know, and she helped foster my creativity by encouraging me to explore art, music, and writing from a young age. She has infinite patience, especially when I was struggling as a kid, and has always been very accepting of me exploring my interests and individuality.For my dad's sub-branch under Parents, I've highlighted qualities like: intelligent, rational, hardworking, good listener, and great sense of humor. My dad is brilliant and has an analytical mind that I really admire. He works incredibly hard to provide for our family. But he also knows how to balance thatwith plenty of fun, laughter, and quality family time. I can always count on him to lend an understanding ear.The Siblings branch has sub-branches for my older brother and younger sister. For my brother, I noted traits like: athletic, adventurous, resilient, supportive, and tech guru. He was a star athlete growing up and has stayed very active and fit into adulthood. He also embraced a passion for coding and all things tech from an early age. I look up to his perseverance through challenges, and he's always been incredibly supportive of me.My sister's sub-branch describes her as: compassionate, creative, bubbly, resourceful, and kind-hearted. She's a couple years younger than me but is remarkably caring, empathetic, and emotionally intelligent for her age. She's also a free spirit, talented artist, and just has an infectious happy energy about her.I admire how she celebrates her individuality and uses her creativity to solve problems.The Grandparents category was really important for me to include, as they've had such a big influence on my life and family. For my maternal grandmother, I noted: patient, wise, devout, family-oriented, keeper of traditions. She is the rock that grounds our family, passing down cherished cultural traditionsand being a constant source of wisdom and perspective. I have so much respect for her resilience and steadfast faith.My maternal grandfather (who passed away when I was young) is described as having been: mischievous, good-humored, skilled craftsman, hardworking, great storyteller. From the stories I've heard, he had a sly sense of humor and loved to tease but was also amazingly handy and could fix or build anything. I wish I could have known him better and heard more of his tales.For my paternal grandmother, the qualities I captured are: loving, generous, spunky, perceptive, young-at-heart. She showers us with unconditional love and always looks for reasons to celebrate. But she's no pushover either – she's feisty, mentally sharp, and has a great sense for seeing people's true selves. Her youthful spirit and zest for life at her age is admirable.Sadly, I never had the chance to meet my paternal grandfather who passed before I was born. But I depicted him based on the stories as: witty, charismatic, patriotic, disciplined, and dedicated father. By all accounts, he had a vibrant personality, loved his family and country deeply, and led his household with structure and devotion.The Aunts/Uncles section captures my extended family members, each of whom adds something unique. I have twopaternal aunts – one described as fashionable, bold, charitable, successful in business, and a role model for strong women. The other is depicted as down-to-earth, great listener, caregiver, always putting family first, and having a warm spirit.My uncle on my mom's side is summed up as: funny, loyal, grounded, intellectual, and "fun uncle." He may be quiet at times, but he has a steady, calming presence and admirable sense of integrity. Yet he also knows how to crack hilarious jokes and create fun memories with us kids when we were younger.Lastly, the Cousins branch depicts my different cousins in brief but captures their core personalities. There's athletic, adventurer, and laid-back casual for one. Another is shown as creative, unique spirit, passionate performer. A cousin I'm very close with is noted for caring, wise soul, deep thinker, and supportive friend. I feel fortunate to have such a diverse array of personalities in my extended family that allows me to experience the world in unique ways through their different lenses.In reflecting on creating this mind map of my family members, I realize even more how lucky I am to have such a richly diverse, loving, and supportive family. Trying to distill the unique traits and personalities of each person through descriptive words and visuals was a fun challenge. It caused meto appreciate how no two people are alike, yet together, our individual traits blend into a colorful, complementary, and strong family tapestry.At the center, we all share core family values like loyalty, love, hard work, and celebrating individuality. But radiating out from that center are all the diverse qualities, talents, stories, and personal journeys that make each relative remarkable in their own way. Some are quirky, some traditional, some nurturing, others adventurous or deep thinkers – but together these different pieces create a beautifully complex, multi-dimensional family system.I'm grateful this mind map exercise gave me a new perspective on my family. Yes, we have our disagreements and idiosyncrasies like any family. But at our core, we are a richly interwoven group who complements and uplifts each other through our diversity of experiences and perspectives. Our unconditional love, loyalty, and support for one another allows each unique individual to shine. This mind map is a vibrant celebration of the remarkable people who made me who I am today.。

java英语笔试试题及答案

java英语笔试试题及答案

java英语笔试试题及答案Java英语笔试试题及答案1. What is the difference between a class and an object in Java?A class is a blueprint or template that defines the properties and methods of an object. An object is an instance of a class, created at runtime.2. What is the purpose of the 'public static voidmain(String[] args)' method in Java?The 'public static void main(String[] args)' method is the entry point of a Java application. It is the first methodthat gets executed when the program starts.3. What is the difference between a method and a function in Java?In Java, a method is a block of code that is used to perform a specific task. A function is a term that is often used interchangeably with method, but technically, a function can return a value whereas a method does not necessarily do so.4. What is the 'this' keyword used for in Java?The 'this' keyword in Java is a reference to the current object. It can be used to access instance variables and methods of the current object.5. What is an interface in Java?An interface in Java is a completely abstract class that can contain only abstract methods and constants. It is used to achieve abstraction and to define a contract for classes to implement.6. What is the difference between a checked exception and an unchecked exception in Java?A checked exception is a type of exception that a method must either handle with a try-catch block or declare it with the 'throws' keyword. An unchecked exception is not required to be handled or declared, and includes RuntimeException and its subclasses.7. What is the 'final' keyword used for in Java?The 'final' keyword in Java can be used in three different contexts: to declare a class as final (cannot be subclassed), to declare a method as final (cannot be overridden), or to declare a variable as final (cannot be reassigned).8. What is a constructor in Java?A constructor in Java is a special method that is used to initialize objects. It has the same name as the class and is called when an object is created.9. What is the purpose of the 'super' keyword in Java?The 'super' keyword in Java is used to refer to the parent class's methods and variables. It is often used in constructors to call a superclass's constructor.10. What is the difference b etween '==’ and 'equals()' inJava?The '==' operator is used to compare primitive data types by value and object references by reference, whereas the'equals()' method is used to compare objects by content, and it can be overridden to provide custom comparison logic.Answers:1. A class is a blueprint, an object is an instance of a class.2. It is the entry point of a Java application.3. A method is a block of code in Java, a function is a more general term and can return a value.4. It refers to the current object.5. An interface is an abstract class with only abstract methods and constants.6. Checked exceptions must be handled or declared, unchecked do not.7. It is used to declare classes, methods, or variables as final.8. It initializes objects.9. It refers to the parent class's methods and variables.10. '==' compares by value or reference, 'equals()' compares by content.。

拜访一个城市前需要了解什么信息英语作文

拜访一个城市前需要了解什么信息英语作文

拜访一个城市前需要了解什么信息英语作文全文共3篇示例,供读者参考篇1Here's an essay of around 2000 words about what information you need to know before visiting a city, written in English from the perspective of an elementary school student:Visiting a New City: What You Need to KnowHey there! Are you planning a trip to a new city? That's so exciting! I love exploring new places and seeing different sights. But before you go, there are a few things you should know so you can have the best time ever. Let me tell you all about it!First things first, you gotta figure out how you're getting there. If it's a long way from home, you might need to take a plane or a train. Or maybe your family will drive there in a car. Either way, make sure you know the details – when you're leaving, how long it'll take to get there, and what stuff you need to pack for the journey.Once you've sorted out the travel part, it's time to learn about the city itself! The first thing I like to do is look at a map. That way, I can see where the city is located and what's around it.Are there any cool natural landmarks nearby, like mountains, lakes, or beaches? Knowing that can help you decide what kind of activities you might want to do.Next, do some research on the city's history and culture. When was it founded? What kind of people live there? Are there any famous museums, landmarks, or events that celebrate the city's heritage? Learning about these things can make your visit much more interesting and meaningful.Of course, you'll also want to know about the best places to eat! Every city has its own unique cuisine and favorite dishes. Ask your parents or look online for recommendations on the tastiest restaurants or food trucks. Don't forget to find out if there are any special dietary options you might need, like vegetarian or gluten-free choices.Speaking of eating, it's a good idea to learn a few key phrases in the local language, even if most people there speak English. Knowing how to say things like "thank you," "excuse me," and "where is the bathroom?" can go a long way in making you feel more comfortable and respectful.Another important thing to research is the weather and climate of the city you're visiting. Will it be hot and sunny, or cold and rainy? Knowing this will help you pack the right clothes andgear so you can stay comfortable and prepared for any weather conditions.Safety is also something to think about, especially if you're traveling with your family. Look into the safest areas of the city and any neighborhoods you should avoid. Learn about local emergency numbers and how to contact help if you need it.Finally, make a list of all the cool things you want to see and do in the city! Are there any famous museums, parks, or landmarks you want to check out? What about fun activities like going to a sports game, visiting an amusement park, or taking a cooking class? Having a plan for the things you're most excited about will help make sure you don't miss out on anything.Whew, that's a lot of information to take in! But trust me, doing your research ahead of time will make your trip so much smoother and more enjoyable. You'll feel like a total expert on the city, and you'll be able to make the most of your time there.So get out your notebook and start jotting down all the important details. And don't forget to pack your sense of adventure – you're about to embark on an amazing journey to a brand new place!篇2Visiting a New City: What You Need to KnowTraveling to a new city can be super exciting, but it's also important to do your homework first! There are lots of things you'll want to learn about before you go. Being prepared will help make your trip way more fun and avoid any surprises. Here are some key things to research when planning to visit a new place:Where is it located?The first basic thing to know is where exactly the city is situated. What country and state/province is it in? Is it near any famous landmarks like mountains, rivers or an ocean? Knowing the geographic location will give you a better sense of the landscape and scenery. It will also help you understand the climate and weather to expect. A city near the beach will likely be warmer than one high up in the mountains.How do you get there?Once you know where the city is, you'll need to figure out how to get there. Will you be flying, taking a train, or going by car? Look into the transportation options to reach your destination. If flying, which airport is closest? If driving, roughlyhow many miles or hours away is it? Mapping out the travel logistics is crucial.What is the history and culture?Every city has its own unique history and cultural traditions. Before visiting, do some research on the backstory of how the city was founded and developed over time. Who were the original settlers or indigenous groups? When did it really start to grow and why? What are some of the city's cultural influences when it comes to art, music, food and events? Understanding the roots will give you a deeper appreciation.What are the top attractions?Of course, one of the biggest priorities is figuring out what sites and activities you'll want to check out! Make a list of the most famous tourist attractions, whether it's museums, parks, sports arenas or historical monuments. Read descriptions to get a sense of what sparks your interest. But also ask friends or relatives if they've been and have any insider recommendations off the beaten path.Are there any special events?As you're picking travel dates, see if there are any festivals, holidays or special events happening during your visit. These canbe extraordinarily fun to experience, like a music festival or cultural celebration. But they can also mean bigger crowds and higher prices. On the flip side, some attractions may have limited hours or even be closed during major events. It's good to know the local event calendar.What's the weather forecast?No matter when you plan on visiting, take a close look at the typical weather patterns and forecast. Is it the rainy season? Or will it be sweltering hot? Knowing the advance weather will ensure you pack appropriately with the right clothing, accessories and supplies. You don't want to show up unprepared for a heat wave or monsoon!How is the public transportation?While you may take a car, plane or train to get to the city itself, relying on public transit like buses, subways and rideshares is often the best way to navigate around once you're there. Do some homework on the city's public transportation system - how extensive and efficient is it? Where are the main hubs and routes located? Having this intel will make getting around a breeze.What's the local cuisine like?Part of the fun of traveling is trying new and delicious local foods! Research some of the signature dishes, delicacies and cuisines that the city is known for. Maybe it's deep dish pizza in Chicago, fresh seafood in Seattle or spicy curry in Thailand. Knowing the must-try foods will let you better plan where you'd like to have meals. You can also look up any fun food truck scenes or neighborhood restaurant districts.How's the shopping scene?If you enjoy shopping and finding local treasures, figure out the main shopping areas and markets in the city you'll be visiting. Are there cool antique markets, outlet malls or funky neighborhood boutiques? Mapping out potential shopping stops beats aimlessly wandering in search of stores.Where are the hotels and neighborhoods?Speaking of mapping, spend some time getting oriented to the general layout of the city and its various neighborhoods and hotel zones. Try to pick a central area or home base that's convenient to the attractions and activities that interest you most. Understanding the neighborhood vibes will also help you feel more comfortable once you arrive.What is the local currency?This is an easy one to overlook for international travel, but so important! Find out what currency the city uses - whether it's dollars, euros, pesos or something else. Knowing the monetary system will help you plan budgets and expenses. It's also good to understand the basic exchange rates so you don't get ripped off.What are some basic language phrases?If you're traveling somewhere that speaks a different primary language, take a little time to learn some basic phrases beyond just "please" and "thank you." Covering conversational basics like asking for directions, ordering food or stating you don't understand can go a long way in communicating. The locals will appreciate you making a bit of an effort!Those are some of the key things to look into and think through when gearing up for a trip to a new town or city. Doing your research upfront will ensure an awesome and memorable experience once you arrive. You'll waste less time being confused and more time just soaking it all in! The more you prepare, the better your adventure will be. Now get out there and start exploring!篇3Visiting a New City: A Kid's Guide to Being PreparedHave you ever gone on a trip to a brand new city before? It can be really exciting to explore a new place, but it can also be a bit confusing and overwhelming if you don't know what to expect. That's why it's important to do your research ahead of time and learn as much as you can about where you're going. Here are some key things I always try to find out before visiting a new city:Where is it Located?The very first thing I like to know is exactly where the city is on a map. Is it in a different state or even a different country? Knowing the geographic location helps me get an idea of how far away it is from where I live and what kind of travel will be involved to get there. It also gives me a sense of what the landscape might be like - is it near the ocean, in the mountains, part of a flat prairie? Locating it on a map is step one.What's the Weather Like?Once I know the general location, I always research what the typical weather patterns are for that area. Is it going to be hot and humid, cool and rainy, or dry and sunny when I visit? Knowing the forecast ahead of time allows me to pack the right clothes and accessories. In some cities you might need a warm coat and boots, while in others you'll want shorts, t-shirts, andsunscreen. Weather can vary a lot from place to place, so it's smart to be prepared.What Language is Spoken?This is a really important one, especially if you're leaving your home country. If English isn't the primary language spoken in the city you're visiting, it's a good idea to learn at least a few key phrases like "hello," "thank you," and "where is the bathroom?" Having a phrasebook or translation app on your phone can be super helpful too. Being able to communication a little bit can go a long way and shows respect for the local culture and customs.What Are the Top Attractions?Of course, a big part of the fun of visiting a new city is getting to see the famous sights and experience the top attractions. I love reading up on the must-see places ahead of time so I can start getting excited! Whether it's incredible museums, beautiful parks, iconic monuments, or other cool spots, making a list of where I want to go helps me map out an itinerary. I also ask friends or relatives who have been there before for any insider tips on things I might overlook in my research.What Foods Are Popular?Trying new and delicious foods is one of the best parts of travel for me! Each city has its own unique cuisine and specialties based on the local culture and traditions. I do research on what dishes are considered classic in that area, as well as any specific restaurants that come highly recommended. From delicate pastries to hearty stews, candies, breads, and more - looking up the iconic regional foods gives me plenty of ideas for what yummy things I'll want to eat.Are There Any Special Events?This one is easy to overlook, but it's always a good idea to check if there are any major festivals, holidays, sports events or other big celebrations happening during your travel dates. These can affect things like crowd sizes, transportation schedules, museum hours and more. But they also can be amazing cultural experiences you'll want to participate in! Either way, being aware of special events ahead of time helps you plan accordingly.What's the Transportation Situation?Finally, doing some research into how you'll get around the city once you're there is key. Are there decent public transit options with a metro, buses, or rail? Is it better to rent a car, taketaxis, or use a rideshare service? Checking into the infrastructure for things like traffic patterns, parking availability, bike lanes etc. ahead of your visit lets you figure out the easiest ways to navigate. Getting stuck in a city you don't know with no way to get where you need to go is the worst!As you can probably tell by now, being prepared and doing your homework on a new city before traveling there is super important to me. Having the inside scoop on things like the climate, culture, top sights, food scene, and transportation helps ensure your trip goes smoothly and you don't miss out on anything amazing. The more you know ahead of time, the more you'll be able to relax and just enjoy the experience of exploring a brand new place. Happy travels!。

Autodesk Vault 2011 属性系统简介与概述说明书

Autodesk Vault 2011 属性系统简介与概述说明书

AUTODESK® VAULT 2011PROPERTIES INTRODUCTION AND OVERVIEWConcepts and common administrative tasks are described in this paper. This paper is not a comprehensive description - complete details are available through Vault 2011 Help. Most of the features described are in all Vault 2011 products. However, some features are only available in the higher levels of the Vault product line.IntroductionThe property system for Vault 2011 is a single set of properties that are shared across files, items, change orders and reference designators. There are two types of properties: System and User Defined Properties (UDP.) System properties cannot be deleted but do support some configuration options like renaming and a few support mapping. Duplicate property names are not permitted for either type.UDP’s are custom created properties that support assignment to object groups, policy constraints and mapping of values with file and BOM properties. With each new vault there are numerous UDP’s supplied as part of the default configuration.Some of the highlights of the new property system:o Consistent user interface for all property managemento Property constraint overrides by categoryo Streamlined Edit Properties wizardo New vertical properties grid supports multiple files as well as Items & Change Orders o‘Lists’ support text and number data types as well as addition and removal of valueso Standardized mapping for all property sourceso Bi-directional mappingProperty DefinitionA property definition contains a name, data type, policy settings and mappings. The definition also specifies which object groups are associated with and may utilize the property. As an example, we will use the property definition Author. If Author is associated with the File and Item groups it may appear on any file or item but cannot appear with change orders and reference designators. (Reference Designators are a feature of AutoCAD Electrical). Every object (file and item) that is associated with the property definition Author will have a unique value. This may seem obvious when comparing two files as they each may have a unique value. This principle may not be as obvious when comparing objects across groups. If a file is promoted to an item, the file and item are allowed to have unique values for Author.*Change Order Link Properties remain a separate propertysystem.AdministrationCreation and AssociationTo create a property the name and data typemust be specified. The new property is notavailable for use until it has been associated toan object group. The groups are: Change Order,File, Item and Reference Designator. In thesample image below, the File object group isselected. This new property cannot be attachedto an Item, Change Order or ReferenceDesignator unless those object groups are alsoselected.All files in the categories Base or Engineering will have this property automatically attached. If this property needs to be attached to a specific file in another category it may be manually attached. Manual attachment can be done in two ways: using the Edit Properties Wizard or the Add or Remove Property located on the Actions menu.The object groups Change Order and Reference Designator do not support categories. Therefore, any property associated with one of these groups will be automatically attached to all objects in that group.SettingsThe policy values under the Property Valuescolumn (left side of the dialog) are applied toall instances of this property except where thecategory override applies. The CategoryValues allow overrides by category. Consultthe Help for further details about overrides andpolicies. In this paper, we will outline InitialValue, List Values and Enforce List Values.Initial ValueThe Initial Value is applied once when theproperty is initially associated with an object.The initial value is only applied in the absenceof a user supplied or a mapped value.The initial association occurs in three circumstances: 1) object is created (ex: adding a file or creating an item) 2) assignment to a category that automatically attaches the property 3) manual property attachment.There are two types of Initial Value: static and mapped. The static value is a fixed value and may be any value that is valid for the selected data type. An initial mapped value copies the value from a file or BOM property.Initial Values should NOT be used onproperties where all regular mappings read thevalue from a file or BOM. A blank value in themapped file or BOM field takes precedenceover the initial value. This may appear as ifthe initial value is not applied when in fact themapped value of ‘blank’ takes precedence.List ValuesProperties of type Text and Number mayprovide a list of values for user selection andsearching. The administrator may add orremove values from the list at any time.Removal of a value from the list does notremove the value from any property where thatvalue has been applied. When specifying thevalue for this property, the user may chosefrom the list of values. Enter values that arenot on the list is allowed. If this property ismapped to read a value from a file or BOM, the imported value is not required to be on the list. Enforce List ValuesWhen enabled, this option will provide a warning symbol adjacent to this property if the value is not on the list. When a value is in violation of this policy, the default configuration for lifecycle transitions will not allow a file or item to be released.MappingTo create a property mapping, the administrator must first choose which object group is to be mapped. In the image below, this is specified under the first column titled Entity . The available choices are based on the value of the Associations field. Several Content Providers are included but in most cases it is best to leave theselection on All Files (*.*). Vault willautomatically select the most appropriateContent Provider based on the file type.Next, select a file that contains the propertyor BOM field to be mapped. The image onthe left shows the file properties available formapping in the file manifold_block.ipt .The Type column shows the data type of thesource property. Mapping may be doneacross data types. However, there arespecial considerations that are detailed in thenext section. The mapping direction bydefault will chose bi-directional unless the fileor BOM property does not support the inputof values. When this occurs the mappingoption will be limited to Read only. Readonly mappings should be used sparinglybecause any UDP that contains only ‘Readonly’ mappings may not be modified in Vault.Mapping Across Data TypesThere are four property types: Text,Number, Boolean & Date . The following matrix defines valid property mappings. Whenever a mapping is created between two different property types there is the possibility of incompatibility. The onus is on the user to input valid values. If an invalid value is entered in most cases, the equivalence will flag the property as non-equivalent. The exceptions are listed below.1. Mapping Boolean with Text : The supported valid text values are: Yes/No , True/False and1/0. These values are localized. A string like ‘Autodesk’ entered in a Text property cannot be transferred to a Boolean property. This property mapping would be flagged as notequivalent.2. Mapping Text with Number or Text with Date : Works well when all clients and the serverare in the same language-locale. With mixed locales values may convert in a manner that is not intuitive and may produce an undesirable result. Therefore, mapping Text withNumber or Text with Date is only recommended when the server and all clients are working in the same locale.Create OptionThe Create option applies to write mappings; if the file property does not exist when a value is pushed to the file, the administrator may choose whether the file property is created or not. The Create option has another function that is not obvious: when enabled the equivalence calculation will consider the absence of the property definition in the file as a blank value and Supported mapping across data types Source Property (File or BOM) U DP Text Number Boolean Date Text Yes Yes (2) Yes (1) Yes (2) Number Yes (2) Yes Yes NoBoolean Yes (1) Yes Yes No Date Yes (2) No No Yescompare it against the value of the UDP in Vault. When the Create option is disabled, equivalence will be set to ‘Good’ when the mapped property definition does not exist in the file.Example: I have two departments in myorganization that both create .dwg files but theyuse different file properties to represent thesame information. The R&D department usesthe file property DwgNum. The Toolingdepartment uses the file property DrwNo. I wantto manage all drawings from both groups in asingle Vault and with one UDP ‘DrawingNumber’. The correct configuration is to createbidirectional mappings and set the Create optionto Off for both mappings. The result is that amodification of the UDP Drawing Number willwrite its value back to whichever property existsand it will not create an extra property.Mapping AutoCAD Block AttributesAutodesk® AutoCAD® block attribute mapping requires configuration on the ADMS. Select Index Block Attributes… from the Tools menu in Autodesk Data Management Server Console 2011. Enter the AutoCAD block names from which to extract attributes. After this is done, it is possible to map a UDP to an attribute using the mapping processdescribed above. Configured mappings allow thesystem to read and/or write values between the UDPand the attribute.Usage of attribute mapping is intended for singleinstances of a block or when all block instances havethe same attribute values. It is not possible for multipleblock instances to be mapped to separate UDP’s. Manycompanies have one instance of a title block in a given.dwg files. Occasionally, there are companies that use multiple instances of a title block in a single file. In these cases, the attributes often share the same values. An example is a drawing file that contains three borders of different size. Each border uses the same title block with attributes. The attributes for Customer Name, Engineer, Project Number, etc. will share the same value for all instances. Such attributes that share the same value may be mapped to a UDP. Attributes like Border Size will have a unique value for each block instance. Therefore, Border Size should not be mapped to a UDP in Vault.AutoCAD MechanicalAutodesk® AutoCAD® Mechanical software (ACM) supports three distinct sets of properties, all ofwhich may be mapped to Vault UDPs. The three ACM property sets are: file, assembly and component. See the ACM documentation for details about the intended use and differences between these properties.Vault file properties may map to ACM file properties and Vault item properties may map to ACM assembly and component properties.It should also be noted that ACM assembly and file properties having the same name, should not be mapped to the same Vault UDP.AutoCAD ElectricalAutodesk® AutoCAD® Electrical software (ACE) supports both file and BOM properties. ACE BOM properties may be mapped to Item properties. ACE utilizes properties located in .dwg’s,.wdp’s and associated databases. ACE properties are exposed to Vault in four ways:First: Ordinary DWG™ file properties and block attributes may be mapped to Vault File objects. The majority of these mappings support bi-directional mapping. Creation of these mappings is described in the Mapping section of this document.Second: WDP properties support mapping to Item properties. They also support bi-directional mapping. Creating a mapping with WDP properties requires the AutoCAD Electrical Content Source Provider. The provider isspecified in the second columnof the image at the right. Thisprovider is automatically setwhen a file of type .wdp isselected under the File Propertycolumn. If an associated .wdlfile has been created both theline number and the alternateproperty name will automaticallyappear in the list for selection.You may select the line numberor the alternate display name tocreate the mapping. All wdlproperties will appear in the listof selectable properties; it does not matter if a value is present.Third: Component BOM properties may be mapped to Item properties. This includes properties like:Catalog Number, Component Name, Component Type, Electrical Type, Equivalence Value & Manufacturer and more...To create a mapping to a component BOM property, create a new UDP and associate it to Items. Then on the Mapping tab create a new mapping, making sure the first column Entity is set to Item. Under the File Property column, browse and select any file that contains the property to which you will create the mapping. Some properties require that a value exist or the property is not available for selection in the list.Reminder: When creating new properties it is best to associate them to a category which will automatically associate them to the files and/or items where the property should appear. If this is not done, the property will have to be manually associated to the file or item.Fourth: Reference Designator properties, when mapped will appear in Vault as optional data on an Item BOM. There are eighteen Reference Designator properties available:INST, LOC, TAG, DESC1...3, RATING1 (12)These properties may be mapped to an Item BOM using the DWG content source provider.To create a mapping to a Reference Designator, create a new UDP and associate it to Reference Designator. Then on the Mapping tab create a new mapping, ensure the first column Entity is set to Reference Designator. Under the File Property column select the dwg containing the Reference Designator to which the mapping needs to be created. All Reference Designators are available for selection in the list without requiring a value.Properties(Historical)A handful of properties have duplicates having the same display name with ‘(Historical)’ appended to the end: State, Revision Scheme, Property Compliance, Lifecycle Definition, Category Name & Category Glyph. These ‘historical’ properties exist solely to retain a record of the values when a configuration change alters the value of the non-historical properties. In other words, the ‘historical’property will always contain the value as it existed when that version was created. This situation arises because these properties may have a new value due to a configuration change, even though a new version is not created.A policy change is a good example of why these historical’ properties exist. An organization may have released documents that use the property Vendor. Currently the policy on the property Vendor does not require a value. The administrator modifies the policy ‘Requires Value’ to require a value. After the automatic compliance recalculation, any existing documents (including released documents) with the Vendor property and without a value will have a new PropertyCompliance value of non-compliant. PropertyCompliance(Historical) will retain the value of compliant. MigrationThe property features of Vault 2011 are a significant enhancement. A feature overhaul of this scale poses challenges for migration. Most prominent is the calculation of property compliance. In some migration cases, the compliance calculation will require additional information beyond that which was stored in Vault 2010 or earlier versions. Performing a Re-Index will resolve the majority of these cases. It is highly recommended that a Re-Index is performed after migration. A Re-Index using the option for Latest and Released Versions Only is sufficient. In rare cases, a re-index may not restore compliance values to pre-migration values. If this occurs, manual adjustment to the property configuration may be required.File Index PropertiesFIP’s are no longer supported. The values contained by the FIP’s will remain available in UDP’s. There are multiple FIP configurations that require unique migration rules, listed here:FIP with no mapping or grouping: this ordinary FIP exists in Vault 2010 or earlier, without any mapping to a UDP and is not a member in any group. Migration will create a UDP, which will be mapped to the file property from which the FIP was created.FIP mapped to a UDP: upon migration, the UDP is carried forward and the FIP is removed from Vault. The value remains available in Vault through the UDP.Grouped FIP’s: property groups are migrated to a UDP having the same name and are mapped to the sources of all the grouped FIP’s.Bi-directional MappingsNew to Vault 2011 is the ability to create Bi-directional property mapping. In previous releases, a mapping was either Read or Write. Because of this change, a UDP that has only Read mappings may not be modified. An example is a UDP that is mapped to Read its value from the file property Creation Date. It makes no sense to write a value back to Creation Date.After migrating to Vault 2011, property mappings that were previously Read will be changed to Bi-directional. If the mapped source does not support input of a value, like the Creation Date example above, the mapping will not be changed and will remain Read. UDP’s that have multiple mappingsthrough the same Content Provider may, under specific circumstances, become non-compliant. If this occurs, it may be necessary to alter the configuration to restore compliance.An example:Vault 2010 or any previous version has a property configuration where two or more fileproperties are mapped as Read into the same UDP. This can occur when companiesmerge or when file property name standards change. For the Read mappings of theconfiguration below, equivalence is calculated on the highest priority mapping, which isEng; the mappings to the other properties are ignored.Upon migration to Vault 2011, Read mappings are converted to Bi-directional (shown below.). For the Bi-directional mappings of the configuration below, equivalence iscalculated between the UDP and each file property that exists in the file. In most cases, only one of the file properties exists in any given file, which will result in the UDP being flagged as compliant.If two properties exist in a file both will be considered for equivalence. If either file property has a value that does not match the UDP it is flagged as non-compliant.Enabling the Create option on a mapping will force equivalence calculation on that mapping even when the property definition does not exist in the file. When the property definition does not exist in the file, each mapping with the Create option set to Off is ignored for equivalence calculation.Autodesk, AutoCAD, and DWG are either registered trademarks ortrademarks of Autodesk, Inc., in the USA and/or other countries. All otherbrand names, product names, or trademarks belong to their respectiveholders. Autodesk reserves the right to alter product offerings andspecifications at any time without notice, and is not responsible fortypographical or graphical errors that may appear in this document.© 2010 Autodesk, Inc. All rights reserved.。

rfc1212

rfc1212

Network Working Group M. Rose Request for Comments: 1212 Performance Systems International K. McCloghrie Hughes LAN Systems Editors March 1991 Concise MIB DefinitionsStatus of this MemoThis memo defines a format for producing MIB modules. This RFCspecifies an IAB standards track document for the Internet community, and requests discussion and suggestions for improvements. Pleaserefer to the current edition of the "IAB Official Protocol Standards" for the standardization state and status of this protocol.Distribution of this memo is unlimited.Table of Contents1. Abstract (2)2. Historical Perspective (2)3. Columnar Objects (3)3.1 Row Deletion (4)3.2 Row Addition (4)4. Defining Objects (5)4.1 Mapping of the OBJECT-TYPE macro (7)4.1.1 Mapping of the SYNTAX clause (7)4.1.2 Mapping of the ACCESS clause (8)4.1.3 Mapping of the STATUS clause (8)4.1.4 Mapping of the DESCRIPTION clause (8)4.1.5 Mapping of the REFERENCE clause (8)4.1.6 Mapping of the INDEX clause (8)4.1.7 Mapping of the DEFVAL clause (10)4.1.8 Mapping of the OBJECT-TYPE value (11)4.2 Usage Example (11)5. Appendix: DE-osifying MIBs (13)5.1 Managed Object Mapping (14)5.1.1 Mapping to the SYNTAX clause (15)5.1.2 Mapping to the ACCESS clause (15)5.1.3 Mapping to the STATUS clause (15)5.1.4 Mapping to the DESCRIPTION clause (15)5.1.5 Mapping to the REFERENCE clause (16)5.1.6 Mapping to the INDEX clause (16)5.1.7 Mapping to the DEFVAL clause (16)5.2 Action Mapping (16)5.2.1 Mapping to the SYNTAX clause (16)5.2.2 Mapping to the ACCESS clause (16)SNMP Working Group [Page 1]5.2.3 Mapping to the STATUS clause (16)5.2.4 Mapping to the DESCRIPTION clause (16)5.2.5 Mapping to the REFERENCE clause (16)6. Acknowledgements (17)7. References (18)8. Security Considerations (19)9. Authors’ Addresses (19)1. AbstractThis memo describes a straight-forward approach toward producingconcise, yet descriptive, MIB modules. It is intended that allfuture MIB modules be written in this format.2. Historical PerspectiveAs reported in RFC 1052, IAB Recommendations for the Development ofInternet Network Management Standards [1], a two-prong strategy fornetwork management of TCP/IP-based internets was undertaken. In the short-term, the Simple Network Management Protocol (SNMP), defined in RFC 1067, was to be used to manage nodes in the Internet community.In the long-term, the use of the OSI network management framework was to be examined. Two documents were produced to define the management information: RFC 1065, which defined the Structure of ManagementInformation (SMI), and RFC 1066, which defined the ManagementInformation Base (MIB). Both of these documents were designed so as to be compatible with both the SNMP and the OSI network managementframework.This strategy was quite successful in the short-term: Internet-based network management technology was fielded, by both the research andcommercial communities, within a few months. As a result of this,portions of the Internet community became network manageable in atimely fashion.As reported in RFC 1109, Report of the Second Ad Hoc NetworkManagement Review Group [2], the requirements of the SNMP and the OSI network management frameworks were more different than anticipated.As such, the requirement for compatibility between the SMI/MIB andboth frameworks was suspended. This action permitted the operational network management framework, based on the SNMP, to respond to newoperational needs in the Internet community by producing MIB-II.In May of 1990, the core documents were elevated to "StandardProtocols" with "Recommended" status. As such, the Internet-standard network management framework consists of: Structure andIdentification of Management Information for TCP/IP-based internets, RFC 1155 [3], which describes how managed objects contained in the SNMP Working Group [Page 2]MIB are defined; Management Information Base for Network Managementof TCP/IP-based internets, which describes the managed objectscontained in the MIB, RFC 1156 [4]; and, the Simple NetworkManagement Protocol, RFC 1157 [5], which defines the protocol used to manage these objects. Consistent with the IAB directive to producesimple, workable systems in the short-term, the list of managedobjects defined in the Internet-standard MIB was derived by takingonly those elements which are considered essential. However, the SMI defined three extensibility mechanisms: one, the addition of newstandard objects through the definitions of new versions of the MIB; two, the addition of widely-available but non-standard objectsthrough the experimental subtree; and three, the addition of private objects through the enterprises subtree. Such additional objects can not only be used for vendor-specific elements, but also forexperimentation as required to further the knowledge of which otherobjects are essential.As more objects are defined using the second method, experience hasshown that the resulting MIB descriptions contain redundantinformation. In order to provide for MIB descriptions which are more concise, and yet as informative, an enhancement is suggested. Thisenhancement allows the author of a MIB to remove the redundantinformation, while retaining the important descriptive text.Before presenting the approach, a brief presentation of columnarobject handling by the SNMP is necessary. This explains and further motivates the value of the enhancement.3. Columnar ObjectsThe SNMP supports operations on MIB objects whose syntax isObjectSyntax as defined in the SMI. Informally stated, SNMPoperations apply exclusively to scalar objects. However, it isconvenient for developers of management applications to imposeimaginary, tabular structures on the ordered collection of objectsthat constitute the MIB. Each such conceptual table contains zero or more rows, and each row may contain one or more scalar objects,termed columnar objects. Historically, this conceptualization hasbeen formalized by using the OBJECT-TYPE macro to define both anobject which corresponds to a table and an object which correspondsto a row in that table. (The ACCESS clause for such objects is"not-accessible", of course.) However, it must be emphasized that, at the protocol level, relationships among columnar objects in the same row is a matter of convention, not of protocol.Note that there are good reasons why the tabular structure is not amatter of protocol. Consider the operation of the SNMP Get-Next-PDU acting on the last columnar object of an instance of a conceptual SNMP Working Group [Page 3]row; it returns the next column of the first conceptual row or thefirst object instance occurring after the table. In contrast, if the rows were a matter of protocol, then it would instead return anerror. By not returning an error, a single PDU exchange informs the manager that not only has the end of the conceptual row/table beenreached, but also provides information on the next object instance,thereby increasing the information density of the PDU exchange.3.1. Row DeletionNonetheless, it is highly useful to provide a means whereby aconceptual row may be removed from a table. In MIB-II, this wasachieved by defining, for each conceptual row, an integer-valuedcolumnar object. If a management station sets the value of thisobject to some value, usually termed "invalid", then the effect isone of invalidating the corresponding row in the table. However, it is an implementation-specific matter as to whether an agent removesan invalidated entry from the table. Accordingly, managementstations must be prepared to receive tabular information from agents that corresponds to entries not currently in use. Properinterpretation of such entries requires examination of the columnarobject indicating the in-use status.3.2. Row AdditionIt is also highly useful to have a clear understanding of how aconceptual row may be added to a table. In the SNMP, at the protocol level, a management station issues an SNMP set operation containingan arbitrary set of variable bindings. In the case that an agentdetects that one or more of those variable bindings refers to anobject instance not currently available in that agent, it may,according to the rules of the SNMP, behave according to any of thefollowing paradigms:(1) It may reject the SNMP set operation as referring tonon-existent object instances by returning a responsewith the error-status field set to "noSuchName" and theerror-index field set to refer to the first vacuousreference.(2) It may accept the SNMP set operation as requesting thecreation of new object instances corresponding to eachof the object instances named in the variable bindings.The value of each (potentially) newly created objectinstance is specified by the "value" component of therelevant variable binding. In this case, if the request specifies a value for a newly (or previously) createdobject that it deems inappropriate by reason of value or SNMP Working Group [Page 4]syntax, then it rejects the SNMP set operation byresponding with the error-status field set to badValueand the error-index field set to refer to the firstoffending variable binding.(3) It may accept the SNMP set operation and create newobject instances as described in (2) above and, inaddition, at its discretion, create supplemental objectinstances to complete a row in a conceptual table ofwhich the new object instances specified in the requestmay be a part.It should be emphasized that all three of the above behaviors arefully conformant to the SNMP specification and are fully acceptable, subject to any restrictions which may be imposed by access controland/or the definitions of the MIB objects themselves.4. Defining ObjectsThe Internet-standard SMI employs a two-level approach towards object definition. A MIB definition consists of two parts: a textual part, in which objects are placed into groups, and a MIB module, in whichobjects are described solely in terms of the ASN.1 macro OBJECT-TYPE, which is defined by the SMI.An example of the former definition might be:OBJECT:-------sysLocation { system 6 }Syntax:DisplayString (SIZE (0..255))Definition:The physical location of this node (e.g., "telephonecloset, 3rd floor").Access:read-only.Status:mandatory.An example of the latter definition might be:sysLocation OBJECT-TYPESYNTAX DisplayString (SIZE (0..255))SNMP Working Group [Page 5]STATUS mandatory::= { system 6 }In the interests of brevity and to reduce the chance ofediting errors, it would seem useful to combine the twodefinitions. This can be accomplished by defining anextension to the OBJECT-TYPE macro:IMPORTSObjectNameFROM RFC1155-SMIDisplayStringFROM RFC1158-MIB;OBJECT-TYPE MACRO ::=BEGINTYPE NOTATION ::=-- must conform to-- RFC1155’s ObjectSyntax"SYNTAX" type(ObjectSyntax)"ACCESS" Access"STATUS" StatusDescrPartReferPartIndexPartDefValPartVALUE NOTATION ::= value (VALUE ObjectName)Access ::= "read-only"| "read-write"| "write-only"| "not-accessible"Status ::= "mandatory"| "optional"| "obsolete"| "deprecated"DescrPart ::="DESCRIPTION" value (description DisplayString) | emptyReferPart ::="REFERENCE" value (reference DisplayString)| emptyIndexPart ::="INDEX" "{" IndexTypes "}"SNMP Working Group [Page 6]IndexTypes ::=IndexType | IndexTypes "," IndexTypeIndexType ::=-- if indexobject, use the SYNTAX-- value of the correspondent-- OBJECT-TYPE invocationvalue (indexobject ObjectName)-- otherwise use named SMI type-- must conform to IndexSyntax below| type (indextype)DefValPart ::="DEFVAL" "{" value (defvalue ObjectSyntax) "}" | emptyENDIndexSyntax ::=CHOICE {numberINTEGER (0..MAX),stringOCTET STRING,objectOBJECT IDENTIFIER,addressNetworkAddress,ipAddressIpAddress}4.1. Mapping of the OBJECT-TYPE macroIt should be noted that the expansion of the OBJECT-TYPE macro issomething which conceptually happens during implementation and notduring run-time.4.1.1. Mapping of the SYNTAX clauseThe SYNTAX clause, which must be present, defines the abstract datastructure corresponding to that object type. The ASN.1 language [6] is used for this purpose. However, the SMI purposely restricts theASN.1 constructs which may be used. These restrictions are madeexpressly for simplicity.SNMP Working Group [Page 7]4.1.2. Mapping of the ACCESS clauseThe ACCESS clause, which must be present, defines the minimum levelof support required for that object type. As a local matter,implementations may support other access types (e.g., animplementation may elect to permitting writing a variable marked asread-only). Further, protocol-specific "views" (e.g., thoseindirectly implied by an SNMP community) may make furtherrestrictions on access to a variable.4.1.3. Mapping of the STATUS clauseThe STATUS clause, which must be present, defines the implementation support required for that object type.4.1.4. Mapping of the DESCRIPTION clauseThe DESCRIPTION clause, which need not be present, contains a textual definition of that object type which provides all semanticdefinitions necessary for implementation, and should embody anyinformation which would otherwise be communicated in any ASN.1commentary annotations associated with the object. Note that, inorder to conform to the ASN.1 syntax, the entire value of this clause must be enclosed in double quotation marks, although the value may be multi-line.Further, note that if the MIB module does not contain a textualdescription of the object type elsewhere then the DESCRIPTION clause must be present.4.1.5. Mapping of the REFERENCE clauseThe REFERENCE clause, which need not be present, contains a textualcross-reference to an object defined in some other MIB module. This is useful when de-osifying a MIB produced by some other organization.4.1.6. Mapping of the INDEX clauseThe INDEX clause, which may be present only if that object typecorresponds to a conceptual row, defines instance identificationinformation for that object type. (Historically, each MIB definition contained a section entitled "Identification of OBJECT instances for use with the SNMP". By using the INDEX clause, this section need no longer occur as this clause concisely captures the precise semantics needed for instance identification.)If the INDEX clause is not present, and the object type correspondsto a non-columnar object, then instances of the object are identified SNMP Working Group [Page 8]by appending a sub-identifier of zero to the name of that object.Further, note that if the MIB module does not contain a textualdescription of how instance identification information is derived for columnar objects, then the INDEX clause must be present.To define the instance identification information, determine whichobject value(s) will unambiguously distinguish a conceptual row. The syntax of those objects indicate how to form the instance-identifier: (1) integer-valued: a single sub-identifier taking theinteger value (this works only for non-negativeintegers);(2) string-valued, fixed-length strings: ‘n’ sub-identifiers, where ‘n’ is the length of the string (each octet of the string is encoded in a separate sub-identifier);(3) string-valued, variable-length strings: ‘n+1’ sub-identifiers, where ‘n’ is the length of the string (thefirst sub-identifier is ‘n’ itself, following this, each octet of the string is encoded in a separate sub-identifier);(4) object identifier-valued: ‘n+1’ sub-identifiers, where‘n’ is the number of sub-identifiers in the value (thefirst sub-identifier is ‘n’ itself, following this, each sub-identifier in the value is copied);(5) NetworkAddress-valued: ‘n+1’ sub-identifiers, where ‘n’depends on the kind of address being encoded (the firstsub-identifier indicates the kind of address, value 1indicates an IpAddress); or,(6) IpAddress-valued: 4 sub-identifiers, in the familiara.b.c.d notation.Note that if an "indextype" value is present (e.g., INTEGER ratherthan ifIndex), then a DESCRIPTION clause must be present; the textcontained therein indicates the semantics of the "indextype" value. SNMP Working Group [Page 9]By way of example, in the context of MIB-II [7], the following INDEX clauses might be present:objects under INDEX clause----------------- ------------ifEntry { ifIndex }atEntry { atNetIfIndex,atNetAddress }ipAddrEntry { ipAdEntAddr }ipRouteEntry { ipRouteDest }ipNetToMediaEntry { ipNetToMediaIfIndex,ipNetToMediaNetAddress }tcpConnEntry { tcpConnLocalAddress,tcpConnLocalPort,tcpConnRemoteAddress,tcpConnRemotePort }udpEntry { udpLocalAddress,udpLocalPort }egpNeighEntry { egpNeighAddr }4.1.7. Mapping of the DEFVAL clauseThe DEFVAL clause, which need not be present, defines an acceptabledefault value which may be used when an object instance is created at the discretion of the agent acting in conformance with the thirdparadigm described in Section 4.2 above.During conceptual row creation, if an instance of a columnar objectis not present as one of the operands in the correspondent SNMP setoperation, then the value of the DEFVAL clause, if present, indicates an acceptable default value that the agent might use.The value of the DEFVAL clause must, of course, correspond to theSYNTAX clause for the object. Note that if an operand to the SNMPset operation is an instance of a read-only object, then the errornoSuchName will be returned. As such, the DEFVAL clause can be used to provide an acceptable default value that the agent might use.It is possible that no acceptable default value may exist for any of the columnar objects in a conceptual row for which the creation ofnew object instances is allowed. In this case, the objects specified in the INDEX clause must have a corresponding ACCESS clause value of read-write.SNMP Working Group [Page 10]By way of example, consider the following possible DEFVAL clauses:ObjectSyntax DEFVAL clause----------------- ------------INTEGER 1 -- same for Counter, Gauge, TimeTicksOCTET STRING ’ffffffffffff’hDisplayString "any NVT ASCII string"OBJECT IDENTIFIER sysDescrOBJECT IDENTIFIER { system 2 }NULL NULLNetworkAddress { internet ’c0210415’h }IpAddress ’c0210415’h -- 192.33.4.214.1.8. Mapping of the OBJECT-TYPE valueThe value of an invocation of the OBJECT-TYPE macro is the name ofthe object, which is an object identifier.4.2. Usage ExampleConsider how the ipNetToMediaTable from MIB-II might be fullydescribed:-- the IP Address Translation tables-- The Address Translation tables contain IpAddress to-- "physical" address equivalences. Some interfaces do not-- use translation tables for determining address equivalences -- (e.g., DDN-X.25 has an algorithmic method); if all-- interfaces are of this type, then the Address Translation-- table is empty, i.e., has zero entries.ipNetToMediaTable OBJECT-TYPESYNTAX SEQUENCE OF IpNetToMediaEntryACCESS not-accessibleSTATUS mandatoryDESCRIPTION"The IP Address Translation table used for mapping from IP addresses to physical addresses."::= { ip 22 }ipNetToMediaEntry OBJECT-TYPESYNTAX IpNetToMediaEntryACCESS not-accessibleSTATUS mandatoryDESCRIPTION"Each entry contains one IpAddress to ’physical’SNMP Working Group [Page 11]address equivalence."INDEX { ipNetToMediaIfIndex,ipNetToMediaNetAddress }::= { ipNetToMediaTable 1 }IpNetToMediaEntry ::=SEQUENCE {ipNetToMediaIfIndexINTEGER,ipNetToMediaPhysAddressOCTET STRING,ipNetToMediaNetAddressIpAddress,ipNetoToMediaTypeINTEGER}ipNetToMediaIfIndex OBJECT-TYPESYNTAX INTEGERACCESS read-writeSTATUS mandatoryDESCRIPTION"The interface on which this entry’s equivalenceis effective. The interface identified by aparticular value of this index is the sameinterface as identified by the same value ofifIndex."::= { ipNetToMediaEntry 1 }ipNetToMediaPhysAddress OBJECT-TYPESYNTAX OCTET STRINGACCESS read-writeSTATUS mandatoryDESCRIPTION"The media-dependent ’physical’ address."::= { ipNetToMediaEntry 2 }ipNetToMediaNetAddress OBJECT-TYPESYNTAX IpAddressACCESS read-writeSTATUS mandatoryDESCRIPTION"The IpAddress corresponding to the media-dependent ’physical’ address."::= { ipNetToMediaEntry 3 }ipNetToMediaType OBJECT-TYPESYNTAX INTEGER {SNMP Working Group [Page 12]other(1), -- none of the followinginvalid(2), -- an invalidated mappingdynamic(3),static(4)}ACCESS read-writeSTATUS mandatoryDESCRIPTION"The type of mapping.Setting this object to the value invalid(2) hasthe effect of invalidating the corresponding entry in the ipNetToMediaTable. That is, it effectively disassociates the interface identified with saidentry from the mapping identified with said entry. It is an implementation-specific matter as towhether the agent removes an invalidated entryfrom the table. Accordingly, management stations must be prepared to receive tabular informationfrom agents that corresponds to entries notcurrently in use. Proper interpretation of suchentries requires examination of the relevantipNetToMediaType object."::= { ipNetToMediaEntry 4 }5. Appendix: DE-osifying MIBsThere has been an increasing amount of work recently on taking MIBsdefined by other organizations (e.g., the IEEE) and de-osifying them for use with the Internet-standard network management framework. The steps to achieve this are straight-forward, though tedious. Ofcourse, it is helpful to already be experienced in writing MIBmodules for use with the Internet-standard network managementframework.The first step is to construct a skeletal MIB module, e.g.,RFC1213-MIB DEFINITIONS ::= BEGINIMPORTSexperimental, OBJECT-TYPE, CounterFROM RFC1155-SMI;-- contact IANA for actual numberroot OBJECT IDENTIFIER ::= { experimental xx }ENDSNMP Working Group [Page 13]The next step is to categorize the objects into groups. Forexperimental MIBs, optional objects are permitted. However, when aMIB module is placed in the Internet-standard space, these optionalobjects are either removed, or placed in a optional group, which, if implemented, all objects in the group must be implemented. For thefirst pass, it is wisest to simply ignore any optional objects in the original MIB: experience shows it is better to define a core MIBmodule first, containing only essential objects; later, if experience demands, other objects can be added.It must be emphasized that groups are "units of conformance" within a MIB: everything in a group is "mandatory" and implementations doeither whole groups or none.5.1. Managed Object MappingNext for each managed object class, determine whether there can exist multiple instances of that managed object class. If not, then foreach of its attributes, use the OBJECT-TYPE macro to make anequivalent definition.Otherwise, if multiple instances of the managed object class canexist, then define a conceptual table having conceptual rows eachcontaining a columnar object for each of the managed object class’sattributes. If the managed object class is contained within thecontainment tree of another managed object class, then the assignment of an object type is normally required for each of the "distinguished attributes" of the containing managed object class. If they do notalready exist within the MIB module, then they can be added via thedefinition of additional columnar objects in the conceptual rowcorresponding to the contained managed object class.In defining a conceptual row, it is useful to consider theoptimization of network management operations which will act upon its columnar objects. In particular, it is wisest to avoid defining more columnar objects within a conceptual row, than can fit in a singlePDU. As a rule of thumb, a conceptual row should contain no morethan approximately 20 objects. Similarly, or as a way to abide bythe "20 object guideline", columnar objects should be grouped intotables according to the expected grouping of network managementoperations upon them. As such, the content of conceptual rows should reflect typical access scenarios, e.g., they should be organizedalong functional lines such as one row for statistics and another row for parameters, or along usage lines such as commonly-needed objects versus rarely-needed objects.On the other hand, the definition of conceptual rows where the number of columnar objects used as indexes outnumbers the number used to SNMP Working Group [Page 14]hold information, should also be avoided. In particular, thesplitting of a managed object class’s attributes into many conceptual tables should not be used as a way to obtain the same degree offlexibility/complexity as is often found in MIB’s with a myriad ofoptionals.5.1.1. Mapping to the SYNTAX clauseWhen mapping to the SYNTAX clause of the OBJECT-type macro:(1) An object with BOOLEAN syntax becomes an INTEGER takingeither of values true(1) or false(2).(2) An object with ENUMERATED syntax becomes an INTEGER,taking any of the values given.(3) An object with BIT STRING syntax containing no more than 32 bits becomes an INTEGER defined as a sum; otherwise if more than 32 bits are present, the object becomes anOCTET STRING, with the bits numbered from left-to-right, in which the least significant bits of the last octet may be "reserved for future use".(4) An object with a character string syntax becomes eitheran OCTET STRING or a DisplayString, depending on therepertoire of the character string.(5) An non-tabular object with a complex syntax, such as REAL or EXTERNAL, must be decomposed, usually into an OCTETSTRING (if sensible). As a rule, any object with acomplicated syntax should be avoided.(6) Tabular objects must be decomposed into rows of columnar objects.5.1.2. Mapping to the ACCESS clauseThis is straight-forward.5.1.3. Mapping to the STATUS clauseThis is usually straight-forward; however, some osified-MIBs use the term "recommended". In this case, a choice must be made between"mandatory" and "optional".5.1.4. Mapping to the DESCRIPTION clauseThis is straight-forward: simply copy the text, making sure that any SNMP Working Group [Page 15]。

NetTiers学习总结2--数据库

NetTiers学习总结2--数据库

第二次数据库建库原则:表名称采用单数和Pascal命名法。

当然。

例如: FirstName, LastName, MiddleInitial;为表提供表描述,列和键等扩展属性;使用默认值,默认情况下,您的实体属性使用您的数据库默认值。

紧记,默认值只有简单的常量和少数职能是支持,如 getdate() ;.nettiers不能建议关系,可以使用建立外键关联。

如:建立以下表:Person和Contact1-- Create the Base Relationship, has a unique primary key 2CREATE345CONSTRAINT6(78)9)1012--Create the other side of the 1:1 relationship13CREATE141516CONSTRAINT17(1819)20)212223-- Example of 1:1 relationship24-- The contact primary key is the is also a foreign key 25-- Therefore creating a 1:1 relationship.2627ALTER28FOREIGN29REFERENCES创建Contact实体:5[BindableAttribute()]6publicFor every Contact entity, since you are working with the actual foreign key, that is your primary key, you would get a PersonId and a PersonIdSource of type Parent.1private27[Browsable(8public索引的作用:Indexes are not only a powerful feature to help improve your query execution become more performant, it's also used to create handy data access API methods based on those indexes. The important features of an index is that it can contain 1-n columns and has has the ability to be set as a UNIQUE index.For example, in the Person Table we created above, if we added an index to the Name column, and said that column was Unique. Then in my data access API I would get a method called Person GetByName(string name). If i had not added that the index was unique, then the method would return a collection of type TList.12 (34 )OUTPUT:1234567 {89101112 }存储过程There are several times when you want to extend the data access API, but you still want to leverage much of the generated approach to the data layer. .netTiers offeres the ability to write your own procedures and be able to do things that .netTiers can not do out of the box or are specialized to your application. An easy example would be if you wanted to create a custom stored procedure to handle getting all products below a certain inventory. When you begin the generationprocess, the CodeSmith SchemaExplorer will attempt to discover all of the rich meta data provided to determine of this procedure returns a resultset, which parameters it takes (input & output).123456789101112131415161718192021Output:12 {345678910 }NOTE: There are some situations where the procedure will not return results as expected. The Custom Stored procedures don't work when using temp tables within the custom stored procedure. This is because when CodeSmith's SchemaExplorer is discovering this information, it doesn't have necessary priveldges to create a temp table. One workaround is to use a table variable in the stored procedure instead of a temp table. Warning: Table variables are held in memory on the server so do not load too many rows in the table variable or the servers performance will be impacted.Important In order for .netTiers to return an entity that maps to the table you've created the Custom Stored Procedure for, all of the columns being returned must match type and be in the correct order.If you notice that the generated code for your csp starts returning "void" instead of what you expect check that you csp is still validEnum Tables.netTiers will create enums based on table data for the tables that you designate. This is useful for fairly static data or type tables.Rules: The tables you would like to generate as enums must meet the following rules.1. The first column must be a primary key (typically this would be an int Identity column),2. The second column must have a unique column constraint index, the optional third column will be the description of the generated enum.3. You must also select this table in the SourceTable as well in order to generate the enum. Example:1CREATE23456(78)910(1112)13)1415-- Add Table Description 16EXEC171819Some20INSERT21INSERTGenerated Enumeration:12345 [Serializable]67 {89101112 [EnumTextValue(13 Checking =14151617181920 [EnumTextValue(21 Savings =22 }第三次实体 Entity LayerYou can think of an Entity as the Reflection of a Database-table exposed in Object Oriented fashion. The Word Entity is the same which is commonly used and mostly for a Database-Table. So in the .Net environment an object reflecting a Database-table cascadingly, Exposing its Columns asclass-Properties, Carefully matching the Data Types between a database-column and a .Net-Type(Let say string for varchar and Int16 for smallint).Now think of a Database-Table 'USERS' where, definitely, each row of table is representing a single User's complete information(like her ID, Name, Age and Address) and on the other hand in .Net imagine an Object 'User' (with properties ID, Name, Age and Address). It actually is representing One User from database-table 'Users' or One Row of database-table..netTiers' architecture provides us an environment where we can Control the database entities by passing in these .Net entities in special methods.In fact those special methods which Control these .Net entities are called Controller Objects. We'll be studying about them in next articles. for now we should make sure that we know that we can call some dedicated methods from Controller objects to Retrieve an Entity or List of Entities. We can pass in an Entity into Controller behaviors to perform *CRUD actions.CRUD::Create, Read, Update, Delete(I've recorded a Video over Entities and Controllers, Discussing Entity, Its Providers, Entity Relations and Entity State) Download Link Basics of Entity, Provider, Relationships and EntityStates如何定义实体.netTiers uses the notion of the entity along with the TableModule & Data Transfer Object (DTO) Patterns in order to expose your database as entities. Meaning, for every table in your database, an entity will be generated for that table. The DTO allows you to pass the lightweight entities through the many tiers while still maintaining the loosely coupled open ended architecture of the Entity Layer, since it doesn't depend on any DataProvider..netTiers will also attempt to discover all of the relationships that your table has with other tables in the database and will create child properties of those relationships. This will build out your entire entity domain. Currently the relationship types supported are one to one, one to many, and many to many relationships. These relationships make it easy for you to intuitively work with your entities and now have a logical object graph. There are several ways to create a certain relationship, but we'll discuss the rules in the Database Model section.Example: Customer Entity///An example object graph of a customer entity looks like this./// Customer Parent/// Order 1:1/// OrderDetails //1:M/// ProductCollection //1:M/// CustomerDemographics //1:M/// CustomerDemographicsCollection_From_CustomerCustomerDemo //M:M EntityBaseThe entities all inherit from two parent classes, the user classcalled EntityBase.cs which inherits from EntityBaseCore.generated.cs, the generated class. As mentioned earlier, every .generated class will be generated over and over again, do not modify these classes as your work will be lost when you regenerate your code.These base classes implement the base behavior across all entities. The EntityBase class provides you with exclusive access to modify the behavior across all entities. You can override our default implementation and these changes will not get overwritten. This is a way for you to make changes and extend the behavior while at the same time, safeguarding your work.EntityBase The EntityBase classes provide behavior to manage state using the EntityState property.What is Entity State?Entity State provides a way to track the current status of an entity in it's entity lifecycle, which differs from the CLR object lifecycle. There are 4 main EntityStates, found in the EntityState enumeration, Unchanged, Added, Changed, and Deleted. You do not have to manually keep track of state, when you modify a property, or create a new entity, or read an entity from the database .netTiers will automatically change the state and keep track for you.12345 {6789 Unchanged=1011121314 Added=1516171819 Changed=2021222324 Deleted=25 }EditEntity LifeCycleAssuming you have no data in your database, the very first thing you will do is add data to the database. In order to do this, you will have to create a new entity. Let's use the Customer entity that we've generated from the Northwind database, and create a new Customers entity and walk through the different states of the entity, which as mentioned earlier is different than the objectlifecycle.123 Customers customer =4 customer.Address =5 customer.City =6 customer.Region =7 customer.Phone =8 Response.Write(customer.EntityState);91011 DataRepository.CustomersProvider.Save(customer); 1213141516171819 Response.Write(customer.CustomerID);20 Response.Write(customer.EntityState);212223242526 customer.Region =27 Response.Write(customer.EntityState);28 DataRepository.CustomersProvider.Save(customer); 29303132333435363738394041 DataRepository.CustomersProvider.Delete(customer); 424344 customer.MarkToDelete();45 Response.Write(customer.EntityState);46 DataRepository.CustomersProvider.Save(customer);474849505152 TList<Customers> myList =535455 {56 Response.Write(myList[i].EntityState);57 myList.RemoveEntity(myList[i]);5859 Response.Write(myList[i].EntityState);60 }616263 Response.Write(myList.Count);646566 Response.Write(myList.DeletedItems.Count);676869 DataRepository.CustomersProvider.Save(myList); 707172 myList.ForEach(7374 {75 c.MarkToDelete();76 }77 );7879808182 DataRepository.CustomersProvider.Save(myList);EditBase State BehaviorYou can override the default behavior if you wanted and managed how EntityState was used. Perhaps if you wanted to use a StateMachine instead to manage state. Overall, it's a flexible approach that should let you customize however you need to..There are also some entity state descriptor properties such as IsDeleted, IsDirty, IsNew. One other thing to note, is that you can remove the flag after using MarkToDelete by calling RemoveDeleteMark().Excerpt from EntityBase.generated.cs1234 [BrowsableAttribute( 56 {78 }9101112131415 [BrowsableAttribute( 1617 {1819 {2021 &&22 }23 }242526272829 [BrowsableAttribute( 3031 {323334 }35363738394041 [BrowsableAttribute(4243 {444546 }4748495051525354555657 {585960 OnPropertyChanged(61 }62636465666768697071727374 { 757677 } 78798081828384 {8586 {8788 }89 }EditInterface ImplementationsThe entities themselves implement several interfaces to provide the full featured needs of consuming layers. The first two layers are custom .netTiers interfaces, the rest are from the ponentModel and System.Runtime.Serialization namespaces.Some of these interfaces are :∙IEntityId - Gives exposure to an encapsulated primary key for your entity. Supports containment of composite primary keys.∙IEntity- A .netTiers interface that provides all the functionality required for a .netTiers entity.∙IComparable - Implements the ability to compare two entities types.∙ICloneable - Implements the ability to clone an entity∙IEditableObject - Implements the ability to commit or rollback changes to an object that is used as a datasource.∙IComponent - Implements functionality required by all .Net ponentModel Components.∙INotifyPropertyChanged - Notifies subscribed clients that a property value has changed.∙IDataErrorInfo - Provides the functionality to offer custom error information that a user interface can bind to.∙IDeserializationCallback - Indicates that a class is to be notified when deserialization of the entire object graph has been completed.EditWhat about generated views? Are they entities?Generated views object types are not considered entities, although they share many similar attributes. View objects do not maintain state because they currently can not be persisted back into the database.EditEntity Validation Rule EngineOne of the most powerful features that .netTiers provides to manage the integrity of your data is the Entity Rule Engine. This implements IDataErrorInfo in the EntityBase.generated.cs class. It provides the framework for managing entity business rules and custom error information that a user interface can bind to. Controls such as the DataGridView automatically detect this interface and provide error icons along with descriptions about the error.There are several properties that assist you in managing your business rules. There are several built in validators ready to use out of the box.∙NotNull - Determines the if the database column accepts null values.∙StringMaxLength - Compares against the column width for the property.∙StringRequired - Determines if the column allows empty string entries.∙MaxWords - Determines whether the property has exceeted the maximum number of words∙RegexIsMatch - Determines whether current property matches the regular expression ∙LessThanOrEqualToValue - Less than or equal to current value of property∙LessThanValue - - Less than current value of property∙EqualsValue - Equals current value of property∙GreaterThanValue - Greater than current value of property∙GreaterThanOrEqualToValue - Greater than or equal to current value of property∙CompareValues - Compares values of T using a comparer∙InRange - Ensures T is within a min and max of a Range using a Comparer.However, we certainly understand that while those are all very useful, they do not cover the spectrum of potentially business rules. There is most important aspect of the rule engine that all of the Validators are validated by a delegate which is called ValidationRuleHandler, through which you can set up any ValidationRule, so long as it returns a bool value.The target parameter is the object being validated, while e is a ValidationRuleArgs object that contians information about the rule (property to validate, error description). There are a couple of more properties that are of interest. There is now a property called IsValid that checks the rules to see if any have been broken. You can also get all of the broken rules through the BrokenRulesList property in your entity.Validation/ValidationRuleHandler.cs1234567891011121314EditExample of Auto-Generated Rules.netTiers will automatically detect the rules that apply for the database to maintain data integrity. However it's still extremely easy for you to add your own. Here's an example of automatically added rules for the Customer Entity we were working with.1protected2{3//Validation rules based on database schema.45678910111213 141516 171819 2021 22 2324 25 26 27 28 29 30 31 32 33 34 35 36 3738394041}EditThat's great, but, how do I add my own rules?Adding your own rules is easy. There are really several ways to do it since the properties are exposed. The easiest is perhaps to simply override the AddRules() method in your entities and add your own rules along with ones that were generated for you. Here's an example of the Orders entity from the Northwind generation.Orders.cs -> The User customizable file for your entity class.1///2///3///4protected5{678910111213 ValidationRules.AddRule(141516171819 ValidationRules.AddRule(ValidateOrderDate, 20}212223///24///25///26///27///28///29private30{3132 {33 e.Description3435 }363738}EditSo, how do I validate and see the error message?The easiest way to validate is when using a single entity is just to call the IsValid property. It will automatically trigger the validation process. You can also force the validation process by calling Validate();1 Orders o =2 o.OrderDate =3 o.ShipAddress =4 o.ShipCity =5 o.ShipCountry =6 o.ShipName =7 o.ShipPostalCode =8 o.ShipRegion =91011 o.Validate();121314 lblMessage.Text = o.Error;151617181920 {21 lblMessage.Text =22 rule.Property, rule.Description);23 }242526272829 TList<Orders> ordersList = GetOrdersFromVender();3031 {32 StringBuilder sb =33 sb.Append(3435 {36 sb.Append(o.Error.Replace(37 }38 lblMessage.Text = sb.ToString();3940 }Overall, the important thing to remember is that since the Rules engine uses delegates, your logic can live any place you would like it to. There will be more coverage with complex business processes and validation in the Component Layer chapter.EditUsing Collections in .netTiers, TList & VList:.netTiers has two generic lists that it exclusively uses for your entities. TList and VList. The TList is the most full featured and only works with Types that implement IEntity, which are entities thatare generated from a table as formerly stated. VList is a list for limited View Entities that don't maintain EntityState.1 Orders order =2 order.OrderDate =3 order.ShipAddress =4 order.ShipCity =5 order.ShipCountry =6 order.ShipName =7 order.ShipPostalCode =8 order.ShipRegion =910111213141516 ordersList.FindIndex(1718 {1920 });2223242526 ordersList.Insert(27282930 ordersList.Add(order);3132333435 ordersList.AddNew();36 ordersList[ordersList.Count -3738394041 ordersList.RemoveEntity(order);434445 ordersList.RemoveAt(46474849 ordersList.Remove(order);50515253 ordersList.ListChanged +=54555657585960 Debug.Assert(deletedCount == 616263646566 Response.Write(676869707172 Response.Write(737475767778 TList<Orders> sList =79 OrdersColumn.ShipCity, 8081 TList<Orders> cList =82 OrdersColumn.ShipCity,8384 TList<Orders> eList85 OrdersColumn.ShipCity,86878889 TList<Orders> eqList =90 ordersList.FindAll(OrdersColumn.ShipCity, 9192939495 TList<Orders> eqList2 = ordersList.FindAll( 969798 o2.OrderDetailsCollection.Count >99 o2.OrderDate == DateTime.Today;100 });101102103104105106 {107108 o3.OrderDetailsCollection.Count > 109 o3.OrderDate == DateTime.Today; 110 }))111 {112 Response.Write(113 }114115116117 Orders[] orderArray = ordersList.ToArray(); 118119120121 DataSet ds = ordersList.ToDataSet(122123124125126127 ordersList.Filter =128 ordersList.ApplyFilter();129 ordersList.ForEach(130131 {132 Debug.Assert(filteredOrder.ShipCity == 133 });134135136 ordersList.RemoveFilter();137138139140141 ordersList.ApplyFilter(GetValidAtlantisOrders);142 ordersList.ForEach(143144 {145 Debug.Assert(filteredOrder.IsValid146 && filteredOrder.ShipCity ==147 });148149}150151152153154155156157158 {159160 && o.ShipCity ==161 && o.OrderDetailsCollection.Count > 162 && o.OrderDetailsCollection.IsValid); 163 }164165166 {167168 }169170171172173174175 {176177178 }179}EditEntity Management Framework:In any application there are often several aspects of your application that you commonly have to do in order to optimize your application.EditEntityFactoryBaseThe EntityFactoryBase is a creational construct that exists to assist the creation of entities of an unknown type at runtime. Entities are/were normally created in the DataRepository in a given EntityProvider's Fill method. So if I had DataRepository.MyEntityProvider, there would be a method called Fill that took an IDataReader, an TList (EntityCollection) and a row params. This method is actually going to hydrate the entities when coming back from the DataRepository.This version of the templates allow you to create component business objects which inherit from the entity objects. Since these component objects live in the tier on top of the Data Access Layer and Entities. Since the DataRepository creates entities for usage, it's not possible to create those types because the DAL doesn't know about the smart component business objects, only the Entity DTO objects. The role the EntityFactory is used for is you have the ability to define which factory will be used to create your objects to be filled in the app/web.config.Example:1entityFactoryType=2// OR3Each factory will use the namespace of the factory to create unknown types at runtime using an Activator. This type discovery is cached and so you only face a perf hit once.There are events that you can subscribe to during this process to inject some logic before the object is created and just after it's created but before being hydrated. This is useful if you wanted to attach your own events to the entity.EditEntityCacheThe EntityCache class manages the lifetime of entities that you would like to not have to be queried for all the time. In reality, this class simply wraps the Enterprise Library Cache. EntLib offers a full featured and configurable object cache. The entity cache can be used by any object,and does not have to be an entity. More info can be found here: Enterprise Library Caching BlockYou don't "Have" to configure the cache to work, .netTiers will generate a default cache configuration at runtime if one does not exist, but it's recommended that you do create a configuration for your caching block to optimize the cache settings for your application. The entity cache can easily be configured by pointing your Enterprise Library Configurator tool at your app/web.config. We've also recently started including a sample default settings entlib.config in the MyNamespace.UnitTest project.EditIEntityCacheItemWhen this marker interface is applied to an entity, the entity will automatically be placed into cache. The interface provides lifetime and callback parameters used to manage the caching of your entities. This is an interface that you would have to apply yourself to the entity at the concrete class level.EditEntityLocatorThe EntityLocator sits on top of the Locator class of the Microsoft Patterns and Practices Group's ObjectBuilder Framework. The locator is responsible for creating a WeakReference'd Object Store so that as your application is handling a high volume of entities, which many are of the same record, we will return to you the same object for all references until that entity is persisted to the DataRepository. Combining this feature with Optimistic Concurrency with a Timestamp on your Table, you'll end up saving quite a bit on memory consumption. And for those that might not know, a weak reference means that the objects will still be garbage collected as soon as there are no more actual references to that entity any longer.This feature has to be enabled in the app/web.config under enableEntityTracking="true/false"EditEntityManagerThe EntityManager is the glue that holds it all together, and should be considered the entry point to most of these features, with the exception of the EntityCache. When an object is about to be created, and DataRepository.Provider.EntityTracking is enabled, the EntityManager get's called. The EntityManager contains a single EntityLocator object and a collection of EntityCache objects, for all of your different entity cache providers. Most likely though, there will only be a singleEntityCache object in there.The EntityManager contains a LocateOrCreate method that determine if an entity already exists and is currently being referenced, if so, then return that entity, otherwise, create a new one using the entity factory defined and begin tracking the entity.There are several yet to be implemented features which we have in mind for the EntityManager such as managing meta data amongst the entities and being able to determine relationship boundaries at runtime.。

四口10 100 1000BASE-T物理层PHY及同步以太网、IEEE 1588和QSGMII S

四口10 100 1000BASE-T物理层PHY及同步以太网、IEEE 1588和QSGMII S

VSC8574-01 Datasheet Quad-Port 10/100/1000BASE-T PHY with Synchronous Ethernet, IEEE1588, and QSGMII/SGMII MACMicrosemi HeadquartersOne Enterprise, Aliso Viejo,CA 92656 USAWithin the USA: +1 (800) 713-4113 Outside the USA: +1 (949) 380-6100 Sales: +1 (949) 380-6136Fax: +1 (949) 215-4996Email: *************************** ©2018 Microsemi, a wholly owned subsidiary of Microchip Technology Inc. All rights reserved. Microsemi and the Microsemi logo are registered trademarks of Microsemi Corporation. All other trademarks and service marks are the property of their respective owners. Microsemi makes no warranty, representation, or guarantee regarding the information contained herein or the suitability of its products and services for any particular purpose, nor does Microsemi assume any liability whatsoever arising out of the application or use of any product or circuit. The products sold hereunder and any other products sold by Microsemi have been subject to limited testing and should not be used in conjunction with mission-critical equipment or applications. Any performance specifications are believed to be reliable but are not verified, and Buyer must conduct and complete all performance and other testing of the products, alone and together with, or installed in, any end-products. Buyer shall not rely on any data and performance specifications or parameters provided by Microsemi. It is the Buyer’s responsibility to independently determine suitability of any products and to test and verify the same. The information provided by Microsemi hereunder is provided “as is, where is” and with all faults, and the entire risk associated with such information is entirely with the Buyer. Microsemi does not grant, explicitly or implicitly, to any party any patent rights, licenses, or any other IP rights, whether with regard to such information itself or anything described by such information. Information provided in this document is proprietary to Microsemi, and Microsemi reserves the right to make any changes to the information in this document or to any products and services at any time without notice.About MicrosemiMicrosemi, a wholly owned subsidiary of Microchip Technology Inc. (Nasdaq: MCHP), offers a comprehensive portfolio of semiconductor and system solutions for aerospace & defense, communications, data center and industrial markets. Products include high-performance and radiation-hardened analog mixed-signal integrated circuits, FPGAs, SoCs and ASICs; power management products; timing and synchronization devices and precise time solutions, setting the world's standard for time; voice processing devices; RF solutions; discrete components; enterprise storage and communication solutions, security technologies and scalable anti-tamper products; Ethernet solutions; Power-over-Ethernet ICs andmidspans; as well as custom design capabilities and services. Learn more at .Contents1Revision History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11.1Revision4.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2Revision4.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3Revision 4.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.4Revision 4.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.5Revision2.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.6Revision2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Product Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32.1Key Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.1.1Low Power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.1.2Advanced Carrier Ethernet Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.1.3Wide Range of Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.1.4Flexibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.2Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53Functional Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63.1Operating Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63.1.1QSGMII/SGMII MAC-to-1000BASE-X Link Partner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63.1.2QSGMII/SGMII MAC-to-100BASE-FX Link Partner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83.1.3QSGMII/SGMII MAC-to-AMS and 1000BASE-X Media SerDes . . . . . . . . . . . . . . . . . . . . . . . . 83.1.4QSGMII/SGMII MAC-to-AMS and 100BASE-FX Media SerDes . . . . . . . . . . . . . . . . . . . . . . . . 93.1.5QSGMII/SGMII MAC-to-AMS and Protocol Transfer Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.1.6QSGMII/SGMII MAC-to-Cat5 Link Partner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.1.7QSGMII/SGMII MAC-to-Protocol Transfer Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.1.81000BASE-X MAC-to-Cat5 Link Partner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.2SerDes MAC Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.2.1SerDes MAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.2.2SGMII MAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.2.3QSGMII MAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.3SerDes Media Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.3.1QSGMII/SGMII to 1000BASE-X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.3.2QSGMII/SGMII to 100BASE-FX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.3.3QSGMII to SGMII Protocol Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.3.4Unidirectional Transport for Fiber Media . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.4PHY Addressing and Port Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.4.1PHY Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.4.2SerDes Port Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.5Cat5 Twisted Pair Media Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.5.1Voltage Mode Line Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.5.2Cat5 Autonegotiation and Parallel Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.5.3Automatic Crossover and Polarity Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.5.4Manual HP Auto-MDIX Setting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.5.5Link Speed Downshift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.5.6Energy Efficient Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.5.7Ring Resiliency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.6Automatic Media Sense Interface Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.7Reference Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203.7.1Configuring the Reference Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203.7.2Single-Ended REFCLK Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203.7.3Differential REFCLK Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.81588 Reference Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.9Ethernet Inline Powered Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.10IEEE 802.3af PoE Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.11ActiPHY Power Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.11.1Low Power State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.11.2Link Partner Wake-Up State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.11.3Normal Operating State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.12IEEE1588 Timestamping Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.12.1IEEE1588 Block Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.12.2Supporting IEEE1588 Timestamping Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.12.3Application 1: IEEE1588 One-Step E2E TC in Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.12.4Application 2: IEEE1588 TC and BC in Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.12.5Application 3: Enhancing IEEE1588 Accuracy for CE Switches and MACs . . . . . . . . . . . . . . 303.12.6Supporting One-Step Peer-to-Peer Transparent Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.12.7Supporting One-Step Boundary Clock/Ordinary Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.12.8Supporting Two- Step Boundary/Ordinary Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.12.9Supporting Two-Step Transparent Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.12.10Calculating Y.1731 OAM Delay Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383.12.11One-Way Delay Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383.12.12Two-Way Delay Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403.12.13IEEE1588 Device Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423.12.14Timestamp Update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423.12.15Analyzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463.12.16Timestamp Processor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643.12.17Timestamp FIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653.12.18Serial Timestamp Output Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663.12.19Rewriter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673.12.20Local Time Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693.12.21Accuracy and Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713.12.22Accessing 1588 IP Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713.12.231588_PPS_0/1 Mux Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723.12.241588_DIFF_INPUT_CLK Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 3.13Media Recovered Clock Outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723.13.1Clock Selection Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733.13.2Clock Output Squelch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 3.14Serial Management Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733.14.1SMI Frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 743.14.2SMI Interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 3.15LED Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753.15.1LED Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763.15.2Extended LED Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773.15.3LED Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773.15.4Basic Serial LED Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783.15.5Enhanced Serial LED Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793.15.6LED Port Swapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 3.16Fast Link Failure Indication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 3.17Integrated Two-Wire Serial Multiplexer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 793.17.1Read/Write Access Using the Two-Wire Serial MUX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 3.18GPIO Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 3.19Testing Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 813.19.1Ethernet Packet Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 813.19.2CRC Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823.19.3Far-End Loopback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823.19.4Near-End Loopback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833.19.5Connector Loopback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833.19.6SerDes Loopbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833.19.7VeriPHY Cable Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873.19.8JTAG Boundary Scan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873.19.9JTAG Instruction Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 883.19.10Boundary Scan Register Cell Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 903.20100BASE-FX Halt Code Transmission and Reception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 903.21Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 913.21.1Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 924Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .934.1Register and Bit Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 934.2IEEE802.3 and Main Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 944.2.1Mode Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 954.2.2Mode Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 964.2.3Device Identification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974.2.4Autonegotiation Advertisement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 984.2.5Link Partner Autonegotiation Capability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 984.2.6Autonegotiation Expansion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 994.2.7Transmit Autonegotiation Next Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 994.2.8Autonegotiation Link Partner Next Page Receive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 994.2.91000BASE-T Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004.2.101000BASE-T Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004.2.11MMD Access Control Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1014.2.12MMD Address or Data Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1014.2.131000BASE-T Status Extension 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1014.2.14100BASE-TX/FX Status Extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1024.2.151000BASE-T Status Extension 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1024.2.16Bypass Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1034.2.17Error Counter 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1044.2.18Error Counter 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1044.2.19Error Counter 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1044.2.20Extended Control and Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1044.2.21Extended PHY Control Set 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1054.2.22Extended PHY Control Set 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1064.2.23Interrupt Mask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1074.2.24Interrupt Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1084.2.25Device Auxiliary Control and Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1084.2.26LED Mode Select . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1094.2.27LED Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1104.2.28Extended Page Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1114.3Extended Page 1 Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1114.3.1SerDes Media Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1124.3.2Cu Media CRC Good Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1124.3.3Extended Mode Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1134.3.4ActiPHY Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1134.3.5PoE and Miscellaneous Functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1154.3.6Ethernet Packet Generator Control 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1154.3.7Ethernet Packet Generator Control 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1164.4Extended Page 2 Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1164.4.1Cu PMD Transmit Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1164.4.2EEE Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1184.4.3Ring Resiliency Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1194.5Extended Page 3 Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1204.5.1MAC SerDes PCS Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1204.5.2MAC SerDes PCS Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1214.5.3MAC SerDes Clause 37 Advertised Ability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1224.5.4MAC SerDes Clause 37 Link Partner Ability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1224.5.5MAC SerDes Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1224.5.6Media SerDes Transmit Good Packet Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234.5.7Media SerDes Transmit CRC Error Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234.5.8Media SerDes PCS Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234.5.9Media SerDes PCS Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244.5.10Media SerDes Clause 37 Advertised Ability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244.5.11Media SerDes Clause 37 Link Partner Ability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244.5.12Media SerDes Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1254.5.13Fiber Media CRC Good Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1254.5.14Fiber Media CRC Error Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 4.6General Purpose Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1254.6.1Reserved General Purpose Address Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1264.6.2SIGDET/GPIO Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1264.6.3GPIO Control 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274.6.4GPIO Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1284.6.5GPIO Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1294.6.6GPIO Pin Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1294.6.7Microprocessor Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1304.6.8MAC Configuration and Fast Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1314.6.9Two-Wire Serial MUX Control 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1314.6.10Two-Wire Serial MUX Control 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1324.6.11Two-Wire Serial MUX Data Read/Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1324.6.12Recovered Clock 1 Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1324.6.13Recovered Clock 2 Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1334.6.14Enhanced LED Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1344.6.15Global Interrupt Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 4.7Clause 45 Registers to Support Energy Efficient Ethernet and 802.3bf . . . . . . . . . . . . . . . . . . . . . . . 1364.7.1PCS Status 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1374.7.2EEE Capability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1374.7.3EEE Wake Error Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1374.7.4EEE Advertisement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1384.7.5EEE Link Partner Advertisement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 4.81588 IP Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1404.8.1IP_1588:IP_1588_TOP_CFG_STAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1414.8.2IP_1588:IP_1588_LTC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1424.8.3IP_1588:TS_FIFO_SI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1474.8.4IP_1588:INGR_PREDICTOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1484.8.5IP_1588:EGR_PREDICTOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1504.8.6IP_1588:MISC_CFG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1534.8.7IP_1588:INGR_IP_1588_CFG_STAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1534.8.8IP_1588:INGR_IP_1588_TSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1564.8.9IP_1588:INGR_IP_1588_DF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1584.8.10IP_1588:INGR_IP_1588_TSFIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1594.8.11IP_1588:INGR_IP_1588_RW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1634.8.12IP_1588:EGR_IP_1588_CFG_STAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1644.8.13IP_1588:EGR_IP_1588_TSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1674.8.14IP_1588:EGR_IP_1588_DF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1694.8.15IP_1588:EGR_IP_1588_TSFIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1694.8.16IP_1588:EGR_IP_1588_RW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 4.9Egress0 Ethernet Comparator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1754.9.1ETHERNET_COMPARATOR:EGR0_ETH1_NXT_PROTOCOL . . . . . . . . . . . . . . . . . . . . . 1764.9.2ETHERNET_COMPARATOR:EGR0_ETH1_FLOW_CFG . . . . . . . . . . . . . . . . . . . . . . . . . . 1784.9.3ETHERNET_COMPARATOR:EGR0_ETH2_NXT_PROTOCOL . . . . . . . . . . . . . . . . . . . . . 1814.9.4ETHERNET_COMPARATOR:EGR0_ETH2_FLOW_CFG . . . . . . . . . . . . . . . . . . . . . . . . . . 1834.9.5ETHERNET_COMPARATOR:EGR0_MPLS_NXT_COMPARATOR . . . . . . . . . . . . . . . . . . 1864.9.6ETHERNET_COMPARATOR:EGR0_MPLS_FLOW_CFG . . . . . . . . . . . . . . . . . . . . . . . . . . 1874.9.7ETHERNET_COMPARATOR:EGR0_IP1_NXT_PROTOCOL . . . . . . . . . . . . . . . . . . . . . . . 1904.9.8ETHERNET_COMPARATOR:EGR0_IP1_FLOW_CFG . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1944.9.9ETHERNET_COMPARATOR:EGR0_IP2_NXT_PROTOCOL . . . . . . . . . . . . . . . . . . . . . . . 1974.9.10ETHERNET_COMPARATOR:EGR0_IP2_FLOW_CFG . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201。

autoMapping和autoMappingBehavior的区别及说明

autoMapping和autoMappingBehavior的区别及说明

autoMapping和autoMappingBehavior的区别及说明⽬录autoMapping和autoMappingBehavior的区别autoMappingBehaviorautoMapping例⼦⼩结⼀下mybaits collection使⽤autoMapping注意点autoMapping和autoMappingBehavior的区别autoMappingBehaviormybatis核⼼配置⽂件中settings中配置,指定 MyBatis 应如何⾃动映射列到字段或属性。

NONE 表⽰取消⾃动映射;PARTIAL 只会⾃动映射没有定义嵌套结果集映射的结果集。

FULL 会⾃动映射任意复杂的结果集(⽆论是否嵌套)。

默认是partial,这是⼀种全局设置autoMapping在resultMap或者association,collections中使⽤,是⼀个局部开关,开启后会⾃动设置嵌套查询中的属性,局部开关优先级⼤于全部开关,当全部开关开启FULL映射时,局部开关关闭,这时候仍然不会进⾏映射。

例⼦配置信息,mybatis的Settings全部为默认配置,我们测试局部⾃动映射的结果<select id="findCustomerByIdResultMap" parameterType="int" resultMap="CustomerResultMap">SELECTid,username,jobs,phone,idCard.cardId as cardId,idcard.address as addressFROMt_customer ,idcardWHERE t_customer.cardId=idcard.cardId and t_customer.id=#{id}</select><resultMap type=".huel.po.Customer" id="CustomerResultMap"><id column="id" property="id"/><result column="username" property="username"/><result column="jobs" property="jobs"/><result column="phone" property="phone"/><association property="card" javaType=".huel.po.IdCard"><id column="cardId" property="cardId"/><result column="address" property="address"/></association>测试结果DEBUG [main] - ==> Preparing: SELECT id, username, jobs, phone, idCard.cardId as cardId, idcard.address asaddress FROM t_customer , idcard WHERE t_customer.cardId=idcard.cardId and t_customer.id=?DEBUG [main] - ==> Parameters: 2(Integer)DEBUG [main] - <== Total: 1Customer [id=2, username=李四, jobs=采购, phone=222, card=IdCard [cardId=2222, address=安阳]]去掉restult,不开启autoMapping<select id="findCustomerByIdResultMap" parameterType="int" resultMap="CustomerResultMap">SELECTid,username,jobs,phone,idCard.cardId as cardId,idcard.address as addressFROMt_customer ,idcardWHERE t_customer.cardId=idcard.cardId and t_customer.id=#{id}</select><resultMap type=".huel.po.Customer" id="CustomerResultMap"><id column="id" property="id"/><association property="card" javaType=".huel.po.IdCard"><id column="cardId" property="cardId"/></association></resultMap>结果,可以看出在嵌套查询中,mybatis默认设置嵌套查询不⾃动映射,必须的有resultDEBUG [main] - ==> Preparing: SELECT id, username, jobs, phone, idCard.cardId as cardId, idcard.address as address FROM t_customer , idcard WHERE t_customer.cardId=idcard.cardId and t_customer.id=?DEBUG [main] - ==> Parameters: 2(Integer)DEBUG [main] - <== Total: 1Customer [id=2, username=null, jobs=null, phone=null, card=IdCard [cardId=2222, address=null]]加上autoMapping为ture进⾏测试<select id="findCustomerByIdResultMap" parameterType="int" resultMap="CustomerResultMap">SELECTid,username,jobs,phone,idCard.cardId as cardId,idcard.address as addressFROMt_customer ,idcardWHERE t_customer.cardId=idcard.cardId and t_customer.id=#{id}</select><resultMap type=".huel.po.Customer" autoMapping="true" id="CustomerResultMap"><id column="id" property="id"/><association property="card" autoMapping="true" javaType=".huel.po.IdCard"><id column="cardId" property="cardId"/></association></resultMap>结果,没有result,结果照样映射DEBUG [main] - ==> Preparing: SELECT id, username, jobs, phone, idCard.cardId as cardId, idcard.address as address FROM t_customer , idcard WHERE t_customer.cardId=idcard.cardId and t_customer.id=?DEBUG [main] - ==> Parameters: 2(Integer)DEBUG [main] - <== Total: 1Customer [id=2, username=李四, jobs=采购, phone=222, card=IdCard [cardId=2222, address=安阳]]⼩结⼀下autoMappingBehavior是<settings>⾥⾯的,是全局总开关。

六年级历史人物的英文作文大全

六年级历史人物的英文作文大全

六年级历史人物的英文作文大全1. ConfuciusConfucius, also known as Kong Qiu, is one of the most influential thinkers in Chinese history. He was born in 551 BC in the state of Lu, in what is now modern-day Shandong province. Confucius is famous for his teachings and philosophy, which have had a significant impact on Chinese society and culture for over two thousand years.Confucius was a scholar, teacher, and philosopher. He is best known for his collection of sayings and teachings known as the Analects. In these writings, Confucius emphasized the importance of ethics, morality, and social harmony. He believed that a just and well-ordered society could be achieved through the practice of virtue and the proper behavior of individuals.Confucius also placed great emphasis on the importance of education and self-cultivation. He believed that by studying the classics and developing one's character, individuals could become moral and virtuous members of society. Confucius's teachings have had a profound influence on Chinese education and have shaped the values and norms of Chinese culture.In addition to his philosophical contributions, Confucius also had a significant impact on government and politics. He served as an advisor to several rulers and sought to implement his ideas about good governance and social order. Although his recommendations were not always heeded, his teachings continued to be studied and followed by generations of Chinese leaders.Confucius's influence extends far beyond China. His ideas have spread throughout East Asia and have had a lasting impact on many aspects of East Asian culture, including art,literature, and social customs. His philosophy has also been studied and admired by scholars and students around the world.Confucius's legacy has endured for thousands of years,and his teachings continue to be a source of inspiration and guidance for people around the world. His emphasis on ethical conduct, education, and moral responsibility has left alasting imprint on Chinese history and continues to shape the values and beliefs of Chinese society today.2. Emperor Qin Shi HuangEmperor Qin Shi Huang was the first emperor of a unified China. He was born in 259 BC and ruled from 221 BC until his death in 210 BC. During his reign, he made significant contributions to the unification and development of China,and his legacy continues to be felt to this day.One of Emperor Qin Shi Huang's most notable achievements was the unification of the various warring states that had existed in ancient China. He succeeded in uniting thesestates through military conquest and diplomatic alliances, creating the first centralized and unified Chinese empire.This achievement laid the groundwork for the long and continuous history of imperial rule in China.Emperor Qin Shi Huang is also well-known for his construction of the Great Wall of China. While he was not the first ruler to build sections of the wall, he was the firstto connect and extend the existing fortifications into a continuous barrier. The wall served as a physical symbol ofthe unity and strength of the Chinese empire and provided a defense against external threats.In addition to his military and construction achievements, Emperor Qin Shi Huang also implemented significant reforms in government, economy, and culture. He standardized weights and measures, currency, and writing systems, creating a unified system that facilitated communication and commerce throughout the empire. He also imposed a centralized system ofgovernment, establishing a bureaucracy that would administer and govern the empire for centuries to come.Emperor Qin Shi Huang's reign was not without controversy, however. He was known for his authoritarian rule and hisharsh treatment of dissenters and critics. He also orderedthe burning of books and the burial of scholars in an effortto control and shape the intellectual and cultural life ofthe empire. Despite these actions, his contributions to the unification and development of China have left a lasting impact on Chinese history and society.Emperor Qin Shi Huang's legacy continues to be remembered and celebrated in China today. His achievements in unifyingthe empire, building the Great Wall, and instituting reforms have had a profound and enduring impact on Chinese historyand culture. His rule marked the beginning of a new era in China, and his legacy remains an integral part of thecountry's identity.3. Marco PoloMarco Polo was an Italian merchant and explorer who traveled to China during the 13th century. He was born in Venice in 1254 and embarked on a journey to the East with his father and uncle in 1271. Marco Polo's travels to China have had a significant impact on Western knowledge of the East and have influenced the exploration and trade between Europe and Asia.Marco Polo's travels to China were remarkable for their scale and duration. He spent nearly 24 years in the East, visiting various regions of China and establishing relationships with the ruling Mongol and Chinese authorities. His accounts of his travels, recorded in The Travels of Marco Polo, provided Europeans with detailed descriptions of Chinese culture, geography, and customs that were previously unknown.Marco Polo's descriptions of China had a profound impact on European perceptions of the East. His accounts of the cities, palaces, and technological innovations of China captured the imaginations of people in Europe and inspired generations of explorers and merchants to seek out the riches and wonders of the East.In addition to his descriptions of China, Marco Polo's accounts also introduced Europeans to the vast trading networks and commercial opportunities of Asia. His descriptions of the opulence and wealth of the East influenced European merchants and rulers to seek out new trade routes and establish diplomatic and commercial ties with Asian powers.Marco Polo's travels and writings also had a lasting impact on the development of European cartography and geography. His descriptions of China and the East contributedto the expansion of European knowledge of the world and inspired the mapping and exploration of new regions.Marco Polo's legacy extends beyond his impact on exploration and trade. His accounts of China and the East have also shaped European understanding of Asian cultures and civilizations. His writings continue to be studied and admired for their detailed and accurate descriptions of China and have contributed to the development of cross-cultural understanding and exchange.Marco Polo's travels to China represent a significant chapter in world history and have left an indelible mark on the exploration and exchange between East and West. His accounts of his travels have inspired generations of scholars and explorers and have contributed to the enduring cultural and historical connections between China and the rest of the world.4. Admiral Zheng HeAdmiral Zheng He was a Chinese explorer and mariner who lived during the Ming Dynasty, from 1371 to 1433. He is best known for leading a series of large-scale maritime expeditions that extended Chinese influence and trade throughout the Indian Ocean and beyond. His expeditions represent a significant chapter in the history of Chinese exploration and have had a lasting impact on the development of trade and cultural exchange in the region.Zheng He's expeditions were remarkable for their scale and ambition. He led seven major voyages between 1405 and 1433, which brought him to Southeast Asia, India, the Persian Gulf, and the eastern coast of Africa. These expeditions were not only intended to demonstrate the power and prestige of the Chinese empire but also to establish diplomatic and commercial ties with foreign nations and peoples.One of the most significant contributions of Zheng He's expeditions was the establishment of a network of trade anddiplomatic relations between China and the countries of the Indian Ocean. Through his voyages, Zheng He facilitated the exchange of goods, knowledge, and culture between China and the rest of the world. His expeditions also contributed to the spread of Chinese influence, language, and customs to distant lands.In addition to his contributions to trade and diplomacy, Zheng He's expeditions also had a profound impact on the development of maritime technology and navigation in China. His voyages utilized advanced ships and navigational instruments, which contributed to the knowledge and skills of Chinese sailors and shipbuilders. The technologies and techniques developed during his expeditions continue to be studied and admired for their significance in the history of maritime exploration.Zheng He's expeditions were not only important for their impact on trade and exploration but also for theirrepresentation of Chinese power and influence. His voyages demonstrated the strength and sophistication of the Chinese navy and helped to solidify China's reputation as a maritime power in the Indian Ocean.Zheng He's legacy continues to be celebrated in China today. His expeditions are remembered as a symbol of Chinese exploration and achievement, and his contributions to maritime technology and trade have had a lasting impact on the development of Chinese history and culture.5. Sun Yat-senSun Yat-sen, also known as Sun Zhongshan, was a revolutionary leader and statesman who played a pivotal role in the overthrow of the Qing Dynasty and the establishment of the Republic of China. He was born in 1866 and is widely regarded as the founding father of modern China. His efforts to modernize China and to establish a democratic governmenthave had a lasting impact on the country's history and society.One of Sun Yat-sen's most significant contributions was his role in the overthrow of the Qing Dynasty, which had ruled China for over two centuries. He was a prominent leader of the revolutionary movement that sought to end imperialrule and establish a republic. In 1911, the Qing Dynasty was overthrown, and Sun Yat-sen was instrumental in the establishment of the Republic of China, becoming its first provisional president.Sun Yat-sen's vision for China was based on his Three Principles of the People, which emphasized nationalism, democracy, and the livelihood of the people. He believed that these principles were essential for the modernization and development of China and sought to implement them through his political activities and writings.In addition to his political achievements, Sun Yat-senalso made significant contributions to the development of Chinese society and culture. He advocated for the promotionof education, the empowerment of women, and the advancementof science and technology, all of which were critical to the modernization of China.Sun Yat-sen's legacy continues to be celebrated in China and around the world. His efforts to modernize China and establish a democratic government have had a profound and enduring impact on Chinese history and society. His visionfor China as a modern, democratic, and prosperous nation continues to inspire generations of Chinese people and serves as a guiding principle for the future development of the country.In conclusion, the historical figures discussed abovehave played significant roles in shaping the history of China and the world. Their contributions to philosophy, exploration,governance, trade, and political reform have had a lasting impact on the development of Chinese society and culture. Their legacies continue to be studied, celebrated, and remembered as integral to the history and identity of China.。

基于Spring Boot与MyBatis框架构建动态读写分离模型

基于Spring Boot与MyBatis框架构建动态读写分离模型

文章编号:1007-757X(2021)02-0084-03基于Spring Boot与MyBatis框架构建动态读写分离模型张旭刚,张昕,高若寒(国电南瑞科技股份有限公司信息系统集成分公司,江苏南京210000)摘要:读写分离集群,是当前系统应对高并发、大吞吐量的一种方法,也是一种保障系统业务连续性的方法°现有实现读写分离集群的工具和方法,主要是一种静态部署,不适应资源横向扩展、动态伸缩的需求,不能够快速响应外部需求的变化°'用Spring Boot和MyBatis框架提供的技术优势,通过面向切面编程AOP,提供一种动态的低耦合的读写分离方法,数据源可以横向扩展,根据需求动态收缩,并对应用程序透明"关键词:读写分离;Spring Boot;MyBatis;AOP中图分类号:TP301文献标志码:AA Way Realizing Separation of Reading and Writing BasedonSpringBootand MyBatisZHANG Xugang,ZHANG Xin,GAO Ruohan(Information System Integration Branch!Guodian Nanrui Technology Co!Ltd!Nanjing210000!China) Abstract:The separation of reading from writing is a way in dealing with high concurrence and high throughput,also a way to enhance business continuity.The majority of main ways and tools provides a static deployment.The static deployment is lack ofscaled-outanddynamicscalability Itcannotberapidlysatisfied withouterrequirementchanges Thistopic!usingSpring Bootand MyBatisframework with AOP!providesadynamicandlow-coupling way Thedatasourcesarescaled-outanddy-namica l yscalable AnditistransparenttoapplicationprogramKey words:separation of reading and writing;Spring Boot;MyBatis;AOP0引言读写分离集群,不仅提高了系统的健壮性和可靠性,以及系统的吞吐量和性能,保障了系统业务的连续性,而且也实现了资源的最大利用率&当前的实现方法主要通过静态方式配置,主要有中间件方式,如amoeba和mysql-proxy,分业务方式,对读写操作配置u O&静态方式缺乏灵活性,无法根据系统负载、用户需求等情况,实现资源的快速动态收缩,难以满足在不停机的条件下进行数据源切换,无法保证业务的连续性&利用Spring Boot和MyBatis框架提供的优势,通过面向切面编程AOP,实现一种对应用透明、数据源可以动态收缩与切换的模型&1Spring Boot架构Spring Boot是由Pivotal团队提供,简化Spring开发的微服务框架&通过约定优于配置和起步依赖,简化复杂的依赖关系,大量减少XML配置文件,基本实现自动化位置,能够快速创建独立运行的Spring项目,并且集成了主流框架,如AOP和MyBatis&为实现动态读写分离模型,主要利用面向切面编程技术AOP、MyBtis映射.SpringBoot的类Ab-stractRoutingDataSource ThreadLocal程间的数据隔离(1)&11Spring AOPSpring AOP(Aspect-Oriented Programming,面向切面编程),是一种称为“横切”的技术,把与业务无关逻辑,但为业务模块共同调用的逻辑或功能封装起来,将其命名为"As­pect”,即方面,减少系统的重复代码,降低模块间的耦合度,便于后期的操作和维护&在论文中,主要使用AOP的前置通知,拦截MyBatis映射的SQL语句,动态选择数据源&12MyBatisMybatis是一个支持普通SQL查询、存储过程和高级映射的优秀持久层框架,在持久层映射关系的开发中,可以不用写实现类,能以代理方式自动生成实现代码,同时SQL语句写在映射XML文件中,实现了代码与SQL分离,降低耦合度&在映射XML文件中,通过id标识不同类型的SQL 语句,对查询、插入、删除和更新语句进行区分如口查询语句的id前缀为query,删除语句的id前缀为delete,通过甄别判SQL语选择的数据!的分离&作者简介:张旭冈IJC979-),男,硕士,助理工程师,研究方向:计算机应用技术。

文明道路有的是有形的,有的是无形的英语作文

文明道路有的是有形的,有的是无形的英语作文

全文分为作者个人简介和正文两个部分:作者个人简介:Hello everyone, I am an author dedicated to creating and sharing high-quality document templates. In this era of information overload, accurate and efficient communication has become especially important. I firmly believe that good communication can build bridges between people, playing an indispensable role in academia, career, and daily life. Therefore, I decided to invest my knowledge and skills into creating valuable documents to help people find inspiration and direction when needed.正文:文明道路有的是有形的,有的是无形的英语作文全文共3篇示例,供读者参考篇1Some Paths to Civilization are Tangible, Some IntangibleAs students, we're often taught about the great civilizations of the past – the ancient Egyptians with their pyramids and hieroglyphs, the revolutionary thinkers of ancient Greece, theimpressive engineering feats of the Romans, and so on. Our textbooks are filled with pictures and descriptions of the tangible remnants and relics that these bygone societies left behind –monuments, sculptures, writings, artifacts and ruins that offer us a window into their worlds. However, as fascinating as these concrete, physical markers of human achievement and progress are, they represent only part of the story when it comes to mapping the paths that led to civilization as we know it today.Beyond the crumbling edifices of past grandeur lie intangible yet equally vital elements that enabled humankind to evolve from primordial simplicity to the dizzying complexities of modern existence. These invisible threads that have bound together the tapestry of civilization over millennia are in many ways more profound than bricks and mortar, more enduring than chiseled stone or baked clay. For it is the realms of ideas, principles, beliefs and behaviors – swept along through generations by the ephemeral winds of tradition and culture –that have truly shaped the human journey through the ages.Take language, for instance – those intricate systems of sounds, symbols and syntax that we often take for granted. While written words etched into ancient tablets or scrolls constitute tangible artifacts, the true marvel lies in thedevelopment of verbal communication itself – that remarkable cognitive revolution that empowered our species to transcend the constraints of time and space through the transmission of complex thoughts. Without this conceptual breakthrough that birthed language, could civilization as we've come to define it have ever taken root and flourished? It seems improbable at best.Or consider the amorphous yet immensely powerful notions of social organization and cooperation that have allowed groups of humans to coalesce into communities, cities and eventually, civilizations. The forming of tribal alliances, the establishment of hierarchies and power structures, the principles of division of labor – these were the invisible seeds that enabled our nomadic ancestors to band together, capitalize on their collective strengths, and ultimately spark the revolutions in agriculture and industry that paved the way for civil society.Even ostensibly tangible human accomplishments invariably had their genesis in the realm of abstract thought and imagination. The soaring cathedrals and aqueducts of ancient Rome were born in the minds of visionary architects and planners long before the first stones were quarried. The intellectual renaissance that swept through Europe in the 15thand 16th centuries, reviving human pursuits in philosophy, art and science after centuries of stagnation, began as a conceptual awakening – a reframing of humanity's relationship with the natural world and its own potential. The combustion engine, the harnessing of electricity, the miracle of modern medicine – each of these world-changing innovations first took shape as a speculative notion in the fertile recesses of a dreamer's consciousness.Indeed, as I reflect on the question posed, I'm struck by just how many of the pillars upon which our modern civilization rests are fundamentally intangible – the rule of law, systems of governance, ethical norms and spiritual beliefs that have secured a tentative order amidst the chaos of our instinctual ids. Even that most tangible of societal institutions – the ownership of private property – is in truth an abstract covenant based on a collective acceptance of its validity. Take away that psychological buy-in, that conceptual embrace across cultures, and the very foundation of capitalism and market-based economics ceases to exist in any meaningful sense.None of this is to diminish or dismiss the significance of those tangible relics, remnants and artifacts that previous iterations of humankind bequeathed to us across the ages. Thescattered ruins of history's once-great metropolises, the unearthed artworks and everyday objects of lost empires, even the primitive cave paintings produced by our most distant ancestors – these touchstones give profoundly grounding insights into how far our species has ventured along the path of civilization. We owe an incalculable debt of gratitude and curiosity to the archaeologists, historians and scholars devoted to retrieving, decoding and curating such treasures from the oblivion of time.However, as the famous catchphrase reminds us, those tangible markers ultimately represent just the tip of a vast, submerged iceberg of knowledge and accumulated wisdom. Beneath the surface of each earthly relic or scribbled codex lies a roiling sea of human ingenuity, imagination, ambition and perseverance without which the篇2Some Paths to Civilization are Tangible, Others are IntangibleWhat does it mean to be "civilized"? This is a question that has been debated by philosophers, historians, and thinkers for centuries. At its core, civilization refers to the cultural andsocietal advancements that have allowed humanity to progress beyond a primitive state of existence. However, the paths that lead to civilization are diverse and multifaceted, encompassing both tangible and intangible elements.To begin, let us consider the tangible aspects of civilization. These are the physical manifestations of human progress that we can see, touch, and interact with on a daily basis. One of the most prominent examples is architecture and urban planning. The great cities of the world, with their towering skyscrapers, intricate road networks, and complex infrastructure, are a testament to our ability to shape the physical world around us. From the ancient pyramids of Egypt to the modern metropolises of today, architecture reflects the values, beliefs, and technological advancements of a civilization.Another tangible aspect of civilization is the development of transportation and communication systems. The ability to move people, goods, and information across vast distances has been a driving force behind the growth of civilizations throughout history. From the invention of the wheel to the construction of railroads, highways, and airports, these advancements have facilitated the exchange of ideas, cultures, and resources on a global scale.Furthermore, the tangible aspects of civilization include the advancements in science, technology, and medicine. The discoveries and innovations in fields such as physics, chemistry, biology, and engineering have profoundly impacted our lives, shaping the way we understand and interact with the world around us. From the development of life-saving vaccines and medical treatments to the creation of computers, smartphones, and the internet, these tangible achievements have transformed our societies in ways that were once unimaginable.However, civilization is not solely defined by its tangible manifestations. Intangible elements, such as values, beliefs, and cultural traditions, also play a crucial role in shaping the course of human progress. These intangible aspects are the foundation upon which tangible achievements are built, and they serve as the guiding principles that govern the way societies function and evolve.One of the most significant intangible aspects of civilization is the concept of ethics and morality. Throughout history, various philosophical and religious traditions have grappled with questions of right and wrong, justice and fairness, and the ethical principles that should guide human behavior. These moral and ethical frameworks have shaped the laws, social norms, andvalue systems that underpin civilized societies, influencing everything from interpersonal relationships to the governance of nations.Another intangible aspect of civilization is the realm of art, literature, and creative expression. From the ancient epics and mythologies that have shaped our understanding of the human condition to the masterpieces of painting, sculpture, and music that adorn the walls of museums and concert halls, the arts have played a vital role in preserving and transmitting cultural identities, exploring universal themes, and inspiring generations of people.Education and the pursuit of knowledge are also integral intangible elements of civilization. The dissemination of knowledge through teaching, writing, and the preservation of historical records has enabled civilizations to build upon the achievements of the past and continually expand the boundaries of human understanding. Educational institutions, libraries, and centers of learning have served as repositories of wisdom, fostering intellectual discourse, critical thinking, and the advancement of ideas that have propelled societies forward.Furthermore, the intangible aspects of civilization encompass the social structures, traditions, and cultural practicesthat define the unique identities of different societies. From the intricate rituals and ceremonies that mark important life events to the shared histories, languages, and belief systems that bind communities together, these intangible elements provide a sense of continuity, belonging, and shared purpose that transcends the physical realm.It is important to recognize that the tangible and intangible aspects of civilization are inextricably intertwined. While the tangible achievements of a society may be more visible and readily apparent, they are ultimately shaped and guided by the intangible forces of belief, values, and cultural traditions. Conversely, the intangible elements of civilization often find expression and manifestation through tangible forms, such as art, architecture, and literature.As we look towards the future, it is evident that both the tangible and intangible paths to civilization will continue to evolve and intersect in new and unexpected ways. Technological advancements and scientific discoveries will undoubtedly reshape our physical world, while shifts in societal values, ethical frameworks, and cultural narratives will influence the intangible foundations upon which civilizations are built.Ultimately, the journey towards a truly civilized society is one that requires a harmonious balance between the tangible and intangible aspects of human progress. By embracing the rich tapestry of human achievement, both physical and philosophical, we can continue to build upon the foundations laid by countless generations before us, creating a world that is not only technologically advanced but also imbued with wisdom, compassion, and a deep appreciation for the enduring values that have shaped our collective journey.篇3Paths of Civilization – Some Tangible, Some IntangibleAs a student of history and an ardent observer of the world around me, I often find myself pondering the intricate tapestry of human civilization. From the grand monuments that stand as testaments to our ingenuity to the intangible threads that weave together the fabric of our societies, the paths of civilization are as diverse as they are fascinating.When we think of the great civilizations that have graced the annals of history, our minds are often drawn to the tangible remnants that have withstood the relentless march of time. The awe-inspiring pyramids of Giza, the majestic Colosseum of Rome,and the enigmatic Moai statues of Easter Island – these are but a few examples of the physical manifestations that bear witness to the remarkable achievements of our ancestors.These monumental structures are not mere piles of stone and mortar; they are living chronicles of human endeavor, ingenuity, and perseverance. They whisper tales of the societies that birthed them, the beliefs that shaped their construction, and the technologies that made their creation possible. To gaze upon these wonders is to glimpse into the very heart of the civilizations that once thrived, inviting us to unravel the threads of their stories and to marvel at the heights that humanity can attain.Yet, for every towering monument or grand edifice, there exists an intricate tapestry of intangible elements that are no less integral to the fabric of civilization. These are the traditions, beliefs, languages, and cultural practices that have been woven through generations, passed down like precious heirlooms from one epoch to the next.Consider, for instance, the rich tapestry of oral traditions that have endured long after the civilizations that birthed them have faded into the mists of history. The epic tales of ancient Greece, the intricate mythologies of indigenous peoples, and thetimeless folktales that have been shared around countless campfires – these are the intangible threads that bind us to our collective past, reminding us of the universal truths and profound wisdom that have transcended geographical and temporal boundaries.Similarly, the languages we speak are not mere tools of communication but living repositories of cultural identity, carrying within them the echoes of generations past and the whispers of the future yet to come. Each word, each idiom, and each turn of phrase holds within it the essence of a civilization, a window into the worldview and experiences of those who shaped it.The arts, too, are a profound expression of the intangible paths that define our civilizations. From the mesmerizing frescoes that adorn the walls of ancient temples to the haunting melodies that have been hummed across continents, the creative expressions of our ancestors have transcended the barriers of time and space, speaking to the universal yearnings and aspirations that bind us all together as members of the human family.As we stand at the crossroads of the present, gazing both backward and forward, it becomes evident that the paths ofcivilization are not solely defined by the tangible remnants that dot our landscapes. Rather, they are a intricate tapestry woven from both the physical and the ethereal, the seen and the unseen, the tangible and the intangible.To truly understand the depths of our collective heritage, we must embrace both the monumental and the subtle, the grand structures and the whispered tales, the towering achievements and the intangible threads that bind us together. For it is in this embrace that we can truly grasp the richness and complexity of the civilizations that have come before us, and chart a course for the civilizations yet to unfold.In the end, the paths of civilization are not merely a series of disconnected dots on the timeline of human endeavor. They are a intricate web, a symphony of tangible and intangible elements that together weave the tapestry of our collective human experience. It is our duty, as inheritors of this great legacy, to honor and preserve both the physical and the ephemeral, to ensure that the threads of our civilization are never severed, and to continue adding our own unique strands to the ever-evolving tapestry of human achievement.。

ABP框架系列之四十二:(Object-To-Object-Mapping-对象映射)

ABP框架系列之四十二:(Object-To-Object-Mapping-对象映射)

ABP框架系列之四⼗⼆:(Object-To-Object-Mapping-对象映射)IntroductionIt's a common to map a similar object to another object. It's also tedious and repeating since generally both objects (classes) may have similar/same properties mapped to each other. Think on a typical method below:将相似的对象映射到另⼀个对象是很常见的。

这也是乏味和重复的,因为⼀般两个对象(类)可能具有相似的/相同的属性映射到彼此。

想象在⼀个典型的应⽤服务的⽅法:public class UserAppService : ApplicationService{private readonly IRepository<User> _userRepository;public UserAppService(IRepository<User> userRepository){_userRepository = userRepository;}public void CreateUser(CreateUserInput input){var user = new User{Name = ,Surname = input.Surname,EmailAddress = input.EmailAddress,Password = input.Password};_userRepository.Insert(user);}}CreateUserInput is a simple and User is a simple here. We manually created a User entity from given input. User entity will have much more properties in a real world application and manually creating it will become tedious and error-prone. Also, we should change the mapping code when we want to add new properties to User and CreateUserInput.createuserinput是⼀个简单的DTO和⽤户这是⼀个简单的实体。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Mapping Object Descriptionsto Behaviours1Working paperO.M.NierstraszUniversity of GenevaCentre Universitaire d’Informatique12Rue du Lac,CH-1207Geneva,SwitzerlandUUCP:mcvax!cernvax!cui!oscarBITNET/EARN:oscar@cgeuge51AbstractThere is a lack of good formalisms and tools for describing the semantics of object-oriented andconcurrent programming languages.We propose a computational model for objects in whichevents are synchronous communications between concurrent agents,computations are partialorderings of events,and behaviours are the possible event unfoldings in which an agent,or asystem of concurrent agents,may participate.Furthermore,we introduce a language calledAbacus for defining executable behaviour expressions,and we speculate how this language maybe used as part of a practical system for defining the formal semantics of programming languages.1IntroductionTo date there have been many attempts to provide a formal framework for defining the semantics of programming languages.Although some tools have been developed,notably VDM[Bjørner and Jones1978],there are none that have gained the wide-spread acceptance of parser-generators, which use a formal definition of the syntax of a language to automatically generate the front-end of a compiler or interpreter(i.e.,the part not concerned with implementing the semantics of a language).The consequence is that the bulk of new programming languages are designed without a formal semantics,and language implementors and programmers are therefore left with inadequate indications of what language constructs or programs mean.Our position is that recent work in object-oriented and concurrent programming languages pro-vides some insight that may lead to a solution to this problem.Work in programming language semantics has gradually shifted from operational descriptions to more abstract language definitions, with the intent of capturing what programs really mean in a machine non-specific manner,rather than how they might be implemented.Object-oriented languages capture the essence of this prin-ciple,in that objects are encapsulations.The essence of an object is its input/output“behaviour”, not its internal data structures or the implementation of its operations.We propose that the semantics of programming languages,particularly that of concurrent, object-oriented languages,would be best described in terms of a computational model that formal-1In Active Object Environments,ed.D.C.Tsichritzis,Centre Universitaire d’Informatique,University of Geneva June1988,pp.106-113.2Mapping Object Descriptions to Behaviours izes the notion of behaviour in terms of synchronous communication amongst systems of concurrent agents.Instead of understanding programs as functions that map inputs to outputs,we would view both programs and inputs as behaviours(i.e.,“objects”)that yield a computation when they are concurrently composed.Furthermore,we propose that a simple language for describing behaviours would be an appro-priate target for object denotations.A tool for translating object descriptions to a behavioural language could be used not only for automatically generating language interpreters,but also for providing a formal basis for writing compilers that preserve the intended language semantics.In the following sections we shall outline the desired properties of our computational model, we will give some examples of directly executable behaviours written in a language we have imple-mented called Abacus,and we shall outline the practical problems that we hope to address with our approach.2Towards a Computational Model for ObjectsWe shall begin with an informal discussion of our computational model for objects(which we call CMO)and its relationship to other,comparable models.Computation,as we normally understand it in machine terms,refers to the translation of inputs encoding the statement of a class of problems to outputs encoding their solutions.A program encoding the translation algorithm may be either viewed as part of the input,or as a separate,finite control.The complete description of the input and program encodings is the initial configuration (state)of the system,or abstract machine.The execution of the program can be viewed as sequence of steps that transform the state of the system.Our view is that the correct way to understand the“state”of a system is directly in terms of how it may be transformed into future states,i.e.,in terms of its behaviour.Furthermore,we feel that in order to capture the progress of a concurrent computation,we must view the state-transformation events as being partially ordered in time.The model we propose can be informally described as follows.A computation is a partial order of events,where events are names constructed from afinite event alphabet.A computation may be infinite(non-terminating),but any initial component must befinite.A system is a collection of agents,whose concurrent composition will yield a(possibly empty)computation.The behaviour of an agent is a set of input or output offers(i.e.,guards[Dijkstra1975])with respect to some event,followed by a replacement behaviour in case that event takes place.The behaviour of a system is basically the concurrent behaviour of its constituent agents,where matching input and output offers of separate agents yield events in a computation,provided the offers are visible to one another.The replacement behaviour for an agent may be that of a system,thus introducing more concurrency into the computation.A nil behaviour,that is,one with no offers,represents termination of an agent.(We shall see a simple example in the following section.) The idea of this approach is that both programs and inputs are modeled as behaviours.A computation will occur when these behaviours are combined.The end result of a computation will be a new behaviour representing the output.Ultimately,our goal is to give formal semantics of programming languages by showing how programs(or objects,in object-oriented languages)map to behaviours.This approach differs slightly from the standard denotational approach in that weO.M.Nierstrasz3 do not translate programs into functions,but into behaviours that can then be composed with other behaviours.This is especially important in concurrent systems where the behaviour of a program may be affected by that of other programs running in the system.The model that most closely resembles CMO is Milner’s Calculus of Communication Systems (CCS)[Milner1980].Since CCS was developed in order to study notions of behavioural equivalence, the model always assumes the existence of a single observer.In CMO,however,multiple observers are essential to make sense of concurrent computations as partial event orderings(each observer sees a different total order of the same computation).Hoare’s model of Communicating Sequential Processes(CSP)also offers a similar notion of behaviour[Hoare1986].The main differences are that events are not strictly between pairs of agents,thus permitting synchronization between multiple agents,and that there is an explicit notion of channels for communications,thus providing an abstraction for the participants of events.The approach in CMO to viewing computations as partial orders of events comes from the Actor model of computation,[Agha1986].The main difference is that actors communicate asynchronously by sending messages,whereas events in CMO represent synchronous communications.(An actor may send a message and proceed to take part in other events before that message has been received, whereas offers in CMO block behaviours until they have been accepted.)3A Language for Describing Object BehavioursCMO is an extremely general model encompassing computations that are notfinitely describable (in the same way that there are actor systems for which nofinite programs exist).We therefore require a language that captures an interesting subset of possible behaviours.This language should be computationally complete(i.e.,with the power of Turing machines),it should be expressive,that is,it should provide a small but powerful set of primitives appropriate for capturing behaviours of the languages whose semantics we wish to describe,and it should be interpretable.This last requirement just expresses the idea that our primitives should not be unrealistically powerful.In this way we can guarantee not only that the languages we describe will be implementable,but that we can automatically generate a prototype implementation by translating programs to the behavioural language.To give aflavour of the kind of language we envisage,consider the following behaviour de-scription written in Abacus,a prototype we have implemented in C using the UNIXyacc and lex compiler-writing tools:True=!true.True+?setFalse.False+?setTrue.TrueThis example recursively defines a behaviour True using a behaviour expression.In the expres-sion,true,setFalse and setTrue are event names,and True and False are behaviour names. The symbols?and!followed by event names stand,respectively,for input and output offers on the event names.An offer is followed by a behaviour expression indicating the replacement behaviour,in case the offer is matched and the event takes place.A period indicates that a named behaviour follows.The addition symbol(+)stands for non-deterministic choice when multiple offers4Mapping Object Descriptions to Behavioursare matched.In the example,an agent with the True behaviour simultaneously makes one output offer (!true)and two input offers(?setFalse and?setTrue).In case these offers are matched by other agents,one is chosen,the event takes place,and the agent receives the appropriate replacement behaviour named by True or False.(The communicating agent with the matching offer also replaces its behaviour.)The Negate behaviour looks like this:Negate=?false!setTrue.nil+?true!setFalse.nilwhere nil is the empty(i.e.,terminal)behaviour.An agent with the behaviour Negate will accept false as an input and output setTrue,or it will accept true and output setFalse.That the replacement behaviours for the?false and?true input offers here are behaviour expressions rather than named behaviours.(Parsing is left-to-right.)We can now initiate a computation by instantiating a system consisting the concurrent compo-sition two agents with these behaviours as:[True&Negate]This will be executed by the Abacus interpreter,yielding the event sequence true,setFalse and thefinal configuration:[False&nil]where the nil can be discarded.Note that we distinguish between non-deterministic choice between offers and concurrent composition of munication is permitted across the&operator, but not across+.The current power of Abacus is that offinite state automata,i.e.,there is only afinite number of reachable states.Dynamic instantiation and parameterization are not currently supported,but the latter would definitely be an asset.Consider the following compact representation of both True and False:Boolean(x:{true,false})=!x.Boolean(x)+?setTrue.Boolean(true)+?setFalse.Boolean(false)Note that x is a parameter,and not a variable.It must be bound in order to give meaning to the definition.Once it is bound,the event unfolding is completely determined.The only notion of “state”is that of the behaviour itself.In particular,the behaviour Boolean(true)is identical to that of True,defined above.Parameterization is thus used to simultaneously define both the True and False behaviours.O.M.Nierstrasz5 It is not clear what set of primitives will be ideal,but we postulate that they should address the following issues:instantiation,concurrent composition,synchronous communication,parame-terization,and encapsulation.It should be possible to describe not only the behaviour of standard control structures,but also mechanisms and concepts such as dynamic binding,inheritance and strong-typing.As a guiding principle,we feel that we must restrict our behavioural language to finite system descriptions and event alphabets,but permit arbitrary dynamic instantiation,thus mimicking Turing machines,which havefinite descriptions,but unbounded memory.Instantiation can be handled by introducing the concurrency operator(&)into behaviour ex-pressions,indicating that an agent may replace its behaviour by that of two(or more)concurrent agents.Parameterization may exist in many forms.In our example,the parameter x stood for an event name,but parameters could also represent behaviour names,behaviour expressions,or even whether an offer is an input or output offer.The most difficult issue,however,seems to be how to introduce a simple,yet expressive encap-sulation S offers two extremely powerful mechanisms that address parameterization and encapsulation,namely relabeling and restriction.The former relabels events in a behaviour expression,and the latter hides them.But relabeling is strictly more powerful than parameteriza-tion,since the former can be used to capture the behaviour of an unbounded stack,whereas the latter cannot.Relabeling and restriction,although powerful and expressive,pose some problems if our behavioural language is to be efficiently interpretable.An encapsulation mechanism for Abacus would be used to express that offers should be visible only to certain agents.For example,the system:[True&Negate&True&Negate]yields several possible computations.Thefinal output can be any of:[True&True][True&False][False&True][False&False]Encapsulation could be used to bind each instance of Negate to a separate instance of True, thus eliminating non-determinism and forcing a unique computation to result.Note that this computation(i.e.,the one resulting in[False&False]),is a partial ordering of events rather than an event sequence,capturing the fact that the two sequences of true,setFalse events are concurrent.The same computation may be seen differently by multiple observers.(This is a different notion than that of non-deterministic choice,in which some particular event ordering is imposed,and seen in the same way by all observers.)Compound events can be introduced to model the idea of channels in CSP,and thus obtain a form of encapsulation.In the example,we would assign each agent a unique name from a name space.Suppose that N stands for a set of identifiers(i.e.,event names),and that True and Negate are redefined in terms of compound events:6Mapping Object Descriptions to Behaviours True(y:N)=!(y,true).True(y)+?(y,setFalse).False(y)+?(y,setTrue).True(y)Then we can re-write our system above as:[True(a)&Negate(a)&True(b)&Negate(b)]where a and b are names in N.Now only a single(concurrent)computation may result.The limitation of this approach to encapsulation is that we have no mechanism for generating new names when we have agents that“fork”.In order to model the infinite tape of a Turing machine, for example,we need to be able to add new cells(agents)as the tape grows,and be able to tell the cells apart.For this we either need infinite name spaces,or more powerful encapsulation mechanisms(such as those of CCS)to focus our attention to a particular cell.In addition to a more powerful version of the Abacus language,we would need a semantic mapping language for describing how programs and program fragments are to be interpreted as behaviours.We expect that ideas from denotational semantics will be useful[Tennent1976;Gordon 1979]4ConclusionsThe problem we would like to address is typified by the following example.Given a programming language such as Hybrid,a concurrent programming language supporting object-oriented language constructs in addition to various forms of synchronous and asynchronous message passing[Nier-strasz1987],we would like to:1.give a formal semantics of Hybrid by mapping object descriptions to behaviours,2.automatically generate a prototype language implementation via an interpreter for behaviourexpressions,3.verify that a compiler that translates Hybrid object descriptions into some target languagewith its own concurrency primitives correctly preserves the original message-passing seman-tics.The third issue requires that the semantics of the target language also be given in terms of be-haviours.The problem then reduces to demonstrating that the behaviour of correct programs is always equivalent(in some sense yet to be defined)to the behaviour of their translation.We also see two other applications of this approach.First,a semantic tool can be useful for developing a language in the same way that a parser generator can be used to aid a language designer in developing a consistent grammar for a new language.Both experimentation and formal rigour are simultaneously encouraged,since a prototype language implementation is always available.Second, the tool may be useful for system integration.Given two languages whose semantics we understand in terms of a common computational model,it will be possible to develop interfacing mechanismsO.M.Nierstrasz7 that allow programs in one language to communicate with those of another.For example,we may wish to interface an actor-based system with a user-interface package based on a very different model of concurrency and events.The research we propose is as follows:1.to develop a computational model for objects that adequately captures notions of concurrency,communication etc.,2.to develop a interpretable language for defining behaviours in terms of a small,but expressiveset of primitives,3.to develop a meta-language for defining the semantics of programming languages in terms ofbehaviours,and for automatically translating programs into the behavioural language,and4.to investigate notions of behaviour equivalence that can be used to prove compilers correct. References[Agha1986]G.A.Agha,ACTORS:A Model of Concurrent Computation in Distributed Systems, The MIT Press,Cambridge,Massachusetts,1986.[Bjørner and Jones1978]D.Bjørner and C.B.Jones(ed.),The Vienna Development Method:The Meta-Language,Lecture Notes in Computer Science61,Springer Verlag,Heidelberg,1978.[Dijkstra1975]E.W.Dijkstra,“Guarded commands,nondeterminacy,and formal derivation of programs”,CACM,vol.18,no.8,pp.453−457,Aug1975.[Gordon1979]M.J.C.Gordon,The Denotational Description of Programming Languages,Springer-Verlag,1979.[Hoare1985]C.A.R.Hoare,Communicating Sequential Processes,Prentice-Hall,1985.[Milner1980]ner,A Calculus of Communicating Systems,Lecture Notes in Computer Science92,Springer-Verlag,1980.[Nierstrasz1987]O.M.Nierstrasz,“Active Objects in Hybrid”,ACM SIGPLAN Notices Proceed-ings OOPSLA’87,vol.22,no.12,pp.243-253,Dec1987.[Tennent1976]R.D.Tennent,“The Denotational Semantics of Programming Languages”,Com-munications of the ACM,vol.19,no.8,pp.437−453,August1976.。

相关文档
最新文档