A Data-Oriented (and Beyond) Network Architecture

2y ago
17 Views
2 Downloads
794.62 KB
12 Pages
Last View : 4d ago
Last Download : 3m ago
Upload by : Asher Boatman
Transcription

A Data-Oriented (and Beyond) Network Architecture †‡‡Mohit ChawlaByung-Gon Chunmchawla@cs.berkeley.edu bgchun@cs.berkeley.eduTeemu Koponentkoponen@iki.fi‡‡Kye Hyun KimAndrey Ermolinskiyandreye@cs.berkeley.edu kyekim@cs.berkeley.edu ‡Scott Shenkershenker@icsi.berkeley.edu‡Ion Stoicaistoica@cs.berkeley.eduABSTRACTThe Internet has evolved greatly from its original incarnation. Forinstance, the vast majority of current Internet usage is data retrievaland service access, whereas the architecture was designed aroundhost-to-host applications such as telnet and ftp. Moreover, theoriginal Internet was a purely transparent carrier of packets, butnow the various network stakeholders use middleboxes to improvesecurity and accelerate applications. To adapt to these changes, wepropose the Data-Oriented Network Architecture (DONA), whichinvolves a clean-slate redesign of Internet naming and nameresolution.Categories and Subject DescriptorsC.2.5 [Computer-Communication Networks]: Local and WideArea Networks—Internet; C.2.1 [Computer-Communication Networks]: Network Architecture and DesignGeneral TermsDesignKeywordsNaming, Internet architecture, name resolution, data, middleboxes1IntroductionThe DNS name resolution system is a fundamental part of today’sInternet, underlying almost all Internet usage. However, the DNSwas developed rather late in the Internet’s evolution, after many basicpieces of the architecture were in place. For instance, TCP sessionswere already bound to IP addresses and the Berkeley Socket APIreferred to addresses, not names; frozen design decisions, such asthese, limited the extent to which DNS names (or any other namingsystem) could permeate the architecture. As a result, the current roleof naming in the architecture is more an accident of history than theresult of principled architectural design. In this proposal, we take a“clean-slate” look at naming and name resolution.The test of any architecture is whether it gracefully accommodatesa wide spectrum of potential uses (and can withstand potentialabuses), both those we encounter in the present and those weanticipate for the future. However, to motivate our design, wefirst focus more narrowly on one particular issue; the shift in usagefrom host-centric to data-centric applications.The first Internet applications, such as file transfer and remotelogin, focused strictly on host-to-host communication: The userexplicitly directed the source to communicate with another host,and the network’s only role was to carry packets to the destinationaddress in the packet header. The Internet architecture was builtaround this host-to-host model and, as a result, the architecture iswell-suited for communication between pairs of stationary hosts.Today, however, the vast majority of Internet usage is dataretrieval and service access, where the user cares about contentand is oblivious to location. That is, the user knows that she wantsheadlines from CNN, or videos from YouTube, or access to herbank account, but does not know or care on which machine thedesired data or service resides. The current architecture can supportdata/service access, as is obvious from its prevalence on the Internet,but it does not fit comfortably within the host-to-host model. Forinstance, consider the following three user-relevant issues:‡UC Berkeley, Computer Science Division Persistence: once given a name for some data or service,the user would like that name to remain valid as long as theunderlying data or service is available. There should be noequivalent of today’s “broken links” when data is moved toanother site. Today, HTTP redirect and dynamic DNS areused to minimize this problem, but they are not sufficientanswers. For instance, neither works if the data changesadministrative domains, unless the operator of the previousdomain provides perpetual support.Permission to make digital or hard copies of all or part of this work forpersonal or classroom use is granted without fee provided that copies arenot made or distributed for profit or commercial advantage and that copiesbear this notice and the full citation on the first page. To copy otherwise, torepublish, to post on servers or to redistribute to lists, requires prior specificpermission and/or a fee.SIGCOMM’07, August 27–31, 2007, Kyoto, Japan.Copyright 2007 ACM 978-1-59593-713-1/07/0008 . 5.00. Availability: data and services should have high availability,in terms of both reliability and low-latency. Availabilityis usually provided by replication at endpoints, and thenetwork’s role is to allow user requests to find nearbycopies. The first large-scale solution to this was deployedby Akamai, using intelligent DNS servers and URL rewriting.More recently, P2P mechanisms like BitTorrent have becomeprevalent. While the success of these mechanisms isundeniable, it is not at all clear that such a fundamental International Computer Science Institute (ICSI)†Helsinki Institute for Information Technology (HIIT)

requirement, availability, should rely on a set of ad hoc andapplication-specific mechanisms. Authenticity: users would like to know that the data camefrom the appropriate source, rather than from some spoofingadversary. Today this requires a PKI to provide users withthe public key of the provider. Moreover, authenticity todayis typically achieved by securing the channel to the source,rather than explicitly authenticating the data.Thus, several of the most natural features one would want forservice access and data retrieval — persistence, availability, andauthentication — are made unnecessarily hard by the current hostto-host model of the Internet, often requiring awkward or expensivework-arounds. Given this discordance between historical design(host-oriented) and current usage (data-oriented), we ask: whatwould the architecture look like if we built it around service anddata access?Somewhat surprisingly, our research suggests that most of thenecessary changes reside in how Internet names are structured andresolved. We propose replacing DNS names with flat, self-certifyingnames, and replacing DNS name resolution with a name-basedanycast primitive that lives above the IP layer. We call the resultingdesign the Data-Oriented Network Architecture (DONA).DONA improves data retrieval and service access by providingstronger and more architecturally coherent support for persistence,availability, and authentication. It can also be extended to providesupport for caching and RSS-like updates. However, DONA’simpact is not limited to data and service access; we use theseapplications as motivating examples because they force us to thinkdifferently about some fundamental issues, but most of these issuesare not particular to data/service access. As a result, as we describebelow, DONA’s overall design has architectural implications thatrange far beyond data/service access.DONA’s name-based anycast primitive is useful for many kindsof resource discovery; for instance, it can provide the basicprimitives underlying SIP, support host mobility and multihoming,and establish forwarding state for interdomain multicast. Placinganycast at the naming layer, rather than at the IP layer, allows usto design for functionality rather than be limited by concerns aboutscalability, since the mechanisms need not operate at link speed.There is another issue where historical design is at odds withcurrent usage. The original Internet architecture, following theend-to-end principle, intended the network to be a purely transparent carrier of packets. Today, however, the various networkstakeholders (such as enterprises) use middleboxes to improvesecurity (e.g., firewalls, proxies) and accelerate applications (e.g.,caches) [3]. Because DONA’s anycast name resolution processfollows essentially the same administrative path as the ensuingdata packets (we will address the subtleties in this statement later),DONA can treat the stakeholders along the path as relevant Internetactors. This allows DONA to provide clean support for networkimposed middleboxes. This isn’t a repudiation of the end-to-endprinciple, in that functionality is still provided at the ends; it ismerely a recognition that operators should have, at their disposal,architecturally coherent mechanisms to control how and what traffictraverses their network.More recently, there has been much hand-wringing about thescalability of routing in the current addressing paradigm [27].DONA’s anycast primitive provides a discovery mechanism thatlives above the IP layer; as we will later describe, this enables theuse of path-labels rather than global addresses, an approach thatresults in tiny interdomain routing tables.At a more speculative level, DONA represents a partial shift awayfrom sender-based primitives to a more receiver-based approach.One of our future research tasks is to explore how far we can go inthis direction, and what this might mean for a future Internet.These architectural implications encouraged us that DONAis not merely restricted to data and service access (which, byitself, is significant as it is by far the dominant usage on thecurrent Internet), but rather facilitates improvements along manydimensions. However, there are many other issues, not discussedhere, that demand attention: the Internet still needs better security(particularly against DoS and malicious/misconfigured routers),better manageability, better usability, and many other properties.We aren’t proposing DONA as a solution to these problems; in fact,we think DONA is largely orthogonal to them. We hope to eventuallyincorporate work on these problems within a larger framework thatalso includes DONA.The next section presents DONA’s basic design and Section 3describes how this design supports such tasks as server selection,mobility, multihoming, session initiation, and interdomain multicaststate establishment. Section 4 discusses how DONA’s infrastructurecould be extended to support more advanced functionality, suchas content delivery, delay-tolerant networking, and a variety ofadministrative access policies (including middlebox insertion).Section 5 discusses our prototype implementation and Section 6addresses the crucial question of DONA’s feasibility. The namebased anycast primitive will require routing on a very largenamespace, but it need only be done at name resolution speeds,not line speeds; we present various estimates indicating that DONAis within reach of today’s technology.We delay our discussion of related work until Section 7, in orderto have enough context to make the necessary connections. For now,we merely note that almost every aspect of our design is (proudly)stolen from elsewhere, most notably from TRIAD [19], HIP [28],and SFS [25]. It is the synthesis of these various ideas into a coherentarchitecture that we claim as our contribution.The paper ends, in Section 8, with some speculations on DONA’sbroader architectural implications. In particular, we discuss thepossibility of basing the interface offered to applications on DONA’sname-based anycast primitive.2Basic DesignDONA involves a major redesign of Internet naming. In this sectionwe first motivate these changes and then present DONA’s namingstructure and name resolution mechanism. This is followed by abrief discussion of security and addressing issues. For lack of space,many details are omitted.2.1MotivationWe start with the problem of service and data access and ask howwe might easily achieve persistence, availability, and authentication,basic tasks which today are (sometimes badly) handled by externalad hoc mechanisms. In DONA, we propose a strict separationof concerns between naming and name resolution in handlingthese tasks: names handle persistence and authenticity, while nameresolution handles availability.To provide persistence and authenticity, we use flat, self-certifyingnames [25,28]. This form of naming is, by now, a standard technique.As we review shortly in Section 2.2, such names will remaininvariant and enable easy authentication. The use of flat namesmakes informal identification harder (since you can’t rememberyour friend’s 128-bit identifier), but it makes formal authenticationeasier.High availability means that when a user requests data by name,

she receives the data quickly and reliably. To provide availability,the name resolution process should (a) guide requests to nearbycopies of the data, and (b) avoid failed or overloaded servers. Thequestion, then, is how to build such a name resolution process.There are two main resolution paradigms in the literature. Thefirst is what we use today: lookup-by-name in a distributed database,which returns the location (IP address) of a nearby copy. Thisdatabase must maintain locations of all the copies, identify thelocation of the requester, and then find a reasonably good matchbetween the two. Akamai has pioneered the development oftechniques to accomplish this, but it clearly requires significantmechanism to achieve.The other possibility, most notably used in TRIAD [19], is toroute-by-name to the closest copy. Routing protocols are designedto find shortest paths and route around failures, exactly the twotasks (a) and (b) we’ve assigned to name resolution. This led usto conclude that route-by-name, rather than look-up, was the mostnatural approach. We discuss our design for this in Section 2.3.We note that there is one other issue — in addition to persistence,authenticity, and availability — that the user cares about, trustworthiness: users would like to know whether they are getting theirinformation from a reliable source. We believe that this, like severalother issues we discuss below, is best handled by mechanismsthat are external to the architecture. Trust is so idiosyncratic andsubjective that we don’t believe any network architecture shouldmandate the mechanisms by which trust is established. Moreover,by remaining outside of the core architectural structures, externaltrust mechanisms can evolve along with changes in society andinstitutions in a way that a fixed architecture can’t. Today, avariety of external mechanisms, ranging from Google to personalrecommendations, are used to establish trust. We expect that newtrust mechanisms, such as reputation systems and enhanced “websof-trust”, will be developed in the future, but they will (and should)lie outside the confines of the architecture.2.2NamingDONA names are organized around principals. Each principal isassociated with a public-private key pair, and each datum or serviceor any other named entity (host, domain, etc.) is associated with aprincipal. Names are of the form P:L where P is the cryptographichash of the principal’s public key and L is a label chosen by theprincipal, who ensures that these names are unique. The granularityof naming is left up to principals; a principal might choose to justname her web site, or name her web site and each page within it, orname at a finer granularity (such as naming each individual photo orpublication).Principals are considered to own their data, in the sense that onlyhosts authorized by the principal P can offer to serve (i.e., provideaccess to) entities with names of the form P:L. Each datum comeswith metadata including the principal’s public key and the principal’ssignature of the data; thus, when we speak of a client retrieving datawe mean it has received the triplet data, public key, signature (along with perhaps other metadata).1 In such a scheme, requestingclients rely on the principal’s signature to ensure the data’s integrity.These names are application-independent and globally unique(and can refer to anything, not just data or services). They are alsoself-certifying in the following sense [25,28]: When a client asks fora piece of data with name P:L and receives the triplet data, publickey, signature , it can immediately verify that the data did indeedcome from the principal by checking that the public key hashes to P,1The signature might be signed with a secondary key, butaccompanied by a certificate from the principal’s key authorizingthe secondary key.and that this key also generated the signature. This satisfies the needfor authentication; persistence follows from the fact that the namesdon’t refer to location, and thus the data can be hosted anywhere.With a slight alteration, these basic ideas can be naturally appliedto immutable data: here, the label L is the cryptographic hashof the contents of the data and the principal P is the purveyor ofthe data, not the owner; for instance, the purveyor could be thehosting CDN. Since the client need not rely on a principal to ensurethe integrity of the data (the hash over the contents ensures this),the only role of the principal is to ensure data delivery. Sincedifferent CDNs may have different degrees of reliability or coverage,clients seeking immutable data might specifically request it from aparticular purveyor.Note that there is a difference between the administrative structureof the hosting machines, and the nature of the principal. A person’sweb page would be associated with their own public key. The webpage might initially be hosted at their university or company or paidhosting service, but this is not reflected in the name; instead, theowner (as we discuss below) would authorize (with some reasonableTTL) this entity to host their web page (and this authorization couldbe applied to only a specific datum, or to a portion of the principal’sdata, or to all the principal’s data). If the person decided to movethe page (for instance, if they changed employers), then they wouldauthorize a new entity to host their page (and let the old authorizationexpire). The name of the data would not change, even though theentity hosting the data (or service) did change.The biggest challenge to making such flat names work is makingsure they resolve to the appropriate locations, which is what wediscuss below. But there are usage questions that must also beaddressed (though we are not the first to propose names of this form,and several of these issues have been discussed elsewhere, such asin [37]).For instance, one usage question is: how will users learn theseflat, long, and user-unfriendly names? We expect that users willlearn these flat names through a variety of external mechanisms thatthe user trusts (to varying degrees), such as search engines, privatecommunication, recommender services, and the like. Users won’t,of course, remember the flat names directly, but will have their ownprivate namespace of human-readable names, which map onto theseglobal and flat names (as in [14]). While such flat names are harderto use than today’s DNS names, they offer the advantage that themappings between private human-readable names and flat nameswill be free to reflect evolving social structures rather than beingtied, as DNS names are, to a fixed administrative structure.Also, DONA does not provide a reverse-lookup mechanism fornames, like DNS, where one can map an IP address to a name. Thebasic use of reverse-lookup is to tie a user-unreadable label (in thiscase an IP address) to an user-meaningful identity (in this case, aDNS name). We think the analogous service in DONA would allowa user to map a principal’s key (which is human-unreadable) to atrust-chain between the principal’s key and his own that would helpthe user understand the identity of the principal.2.3Name ResolutionWe now turn from discussing the nature of DONA’s names topresenting how DONA translates these names into locations. Ourgoal in this design is to achieve high availability, by finding close-bycopies and avoiding failures.As discussed earlier, DONA uses the route-by-name paradigmfor name resolution. Rather than use DNS servers, DONA willrely on a new class of network entities called resolution handlers(RHs). Name resolution is accomplished through the use of twobasic primitives: FIND(P:L) and REGISTER(P:L). A client issues a

FIND(P:L) packet to locate the object named P:L, and RHs routethis request towards a nearby copy. REGISTER messages set up thestate necessary for the RHs to route FINDs effectively.Each domain or administrative entity will have one logical RH(but perhaps many physical incarnations); we will denote the RHassociated with an administrative entity X by RHX . RHX isthe provider/customer/peer (or, alternatively, parent/child/peer) ofRHY if X is the provider/customer/peer of Y in terms of AS-levelrelationships. This RH structure can extend to finer granularitythan ASes to reflect other organizational and social structures; forinstance, there could be departmental RHs at universities and firmsand, going even further, users could have their own local RHswhich peer with those of their neighbors and friends. RHs uselocal policy (consistent with their domain’s peering agreements)when processing REGISTERs and FINDs.Each client knows the location of its local RH through some localconfiguration (much like they know about their local DNS server).Any machine authorized to serve a datum or service with name P:Lsends a REGISTER(P:L) command to its local RH. Registrationscan also take the form REGISTER(P:*) if the host is serving alldata associated with the principal (or will forward incoming FINDpackets to a local copy).Each RH maintains a registration table that maps a name to botha next-hop RH and the distance to the copy (in terms of the numberof RH hops, or some other metric). There is a separate entry forP:*, in addition to individual entries for the various P:L. RHs uselongest-prefix matching; if a FIND for P:L arrives and there is anentry for P:* but not P:L, the RH uses the entry for P:*; when entriesfor both P:* and P:L exist, the RH uses the one for P:L. Only whenthe RH has neither P:* or P:L entries do we say that P:L does nothave an entry in the registration table.When a FIND(P:L) arrives, the forwarding rule is straightforward:if there is an entry in the registration table, the FIND is sent to thenext-hop RH (and if there is more than one, the choice is basedon the local policy and which entry is closest); otherwise, the RHforwards the FIND towards its parent (i.e., its provider) using itslocal policy to choose among them if the RH is multi-homed. Thus,registration table misses are forwarded up the AS hierarchy in thehope of finding an entry (see Figure 1). In the case of immutabledata, a FIND command can take the normal form FIND(P:L), or thespecial form FIND(*:L) which indicates that the client is willing toreceive the (self-certified) data from any purveyor.If RHX receives a REGISTER from a child (i.e., customer), itdoes not forward it onward unless no such record exists or the newREGISTER comes from a copy closer than the previous copy. Ifso, RHX forwards the REGISTER to its parents and peers (afterupdating its registration table). If the REGISTER comes from a peer,the entry can be forwarded or not based on local policy (depending,for example, on whether the AS is willing to serve as a transit AS forcontent). By letting the forwarding of FINDs and REGISTERs bedriven by the local policies, DONA can faithfully respect the basicinterdomain policies as reflected in BGP. In addition, the forwardingof a REGISTER can be terminated at any point if dictated by someadministrative policy (such as a corporate firewall).REGISTER commands must be authenticated. The local RHissues a challenge with a nonce, which the client must sign with P’sprivate key, or sign with some other key and provide a certificatefrom P empowering this other key to register this piece of data.When forwarding REGISTERs, the RH signs it so that the receivingRHs know that the data came from a trusted RH. These signaturesare hop-by-hop and accumulated in a REGISTER along the path.In a similar manner, the RHs accumulate the distances; theyappend their distance/cost to the previous-hop RH before sendingTier-1RHRHRHRHRHRHRHCopyCopyClientFigure 1: Registration state (solid arrows) in RHs after copieshave registered themselves. RHs route client-issued FIND(dashed arrow) to a nearby copy.register : the received REGISTER message, if any.regs: all REGISTER messages for the name (P:L).pref reg: preferred REGISTER to disseminate to peers/parents,if any.name : the name (P:L) event concerns.12345678910111213141516171819regs load(name);if register received thenif duplicate or invalid signature thenreturn;endset timer for expiration(register);else// A REGISTER expired.endforeach out in provider and peer links dopref reg decision process(out,regs);if pref reg changed for out thenmsg new message(pref reg);add intra cost(out,msg);sign message(private key,msg);queue(out,msg);endendstore(name, all changes);Figure 2: Pseudo code for processing received and expiredREGISTERs.the REGISTER to next RH. REGISTER commands have a TTLand must be refreshed periodically. DONA also provides anUNREGISTER command so that clients can indicate that they areno longer serving some datum. Figure 2 shows the pseudo code forprocessing received and expired REGISTERs.The FIND packet does not just resolve the name, it also initiatesthe transport exchange. The FIND packet takes the form as shownin Figure 3, where the DONA-related content is essentially insertedas a shim layer between the IP and transport headers. The namebased routing provided by DONA ensures that the packet reachesan appropriate destination. If the FIND request reaches a Tier-1 ASand doesn’t find a record associated with that principal, then theTier-1 RH returns an error message to the source of the FIND. If theFIND does locate a record, the responding server returns a standardtransport-level response (the same as if the transport header had beenreceived on a normal data packet, not on a FIND packet). To makethis work, transport protocols should bind to names, not addresses,but otherwise do not need to change. Similarly, application protocolsneed only be modified to use names, not addresses, when calling

IP headerTypeName (P:L, 40 bytes)Next header typeTransport protocol headerFigure 3: Protocol headers of a FIND packet.separate FINDs from their responses.Type is totransport. In fact, many applications could be simplified whenimplemented on top of DONA. Using HTTP as an example, wenote that the only essential information in an HTTP initiation is theURL and header information (such as language, etc.); the URL isnot needed, since the data is already named in a lower layer, andif each variation of the data (such as language) is given a separatename then the header information is also superfluous.The packet exchanges that occur after a FIND has been receivedare not handled by RHs (except, as we note in Section 4, when theyserve as caches or other middleboxes), but instead are routed to theappropriate destination using standard IP routing and forwarding.To this extent, DONA does not require modifications of the IPinfrastructure.2.4Security IssuesThere are a variety of security issues that must be addressed, someby DONA itself and some by underlying or external mechanisms.For bandwidth denial-of-service attacks, we assume that there areIP-level mechanisms that can restrain unwanted packet streams thatare overwhelming an RH, server, or client. For resource exhaustionattacks against RHs, DONA relies on contractual limits providersplace on customers for the number of FINDs and REGISTERs theycan submit per time period. RHs may additionally impose otherrate-limiting techniques such as cryptographic puzzles.We assume that as part of establishing customer/provider/ peeringrelationships, peering RHs have securely exchanged their publickeys, so RHs can always ensure that they are receiving packets fromthe appropriate RH. However, a malicious RH can still cause damage.For instance, a malicious RH can refuse to forward REGISTERsand FINDs; this is a failure of the AS, in much the same way an AScould fail to forward packets, and presumably commercial pressureswould reduce this form of misbehavior. More subtly, a maliciousRH could forward REGISTERs overheard from other RHs. Tominimize this risk, when RHs forward a REGISTER they includethe next-hop’s public key (or its cryptographic hash).The worst a malicious RH can do is deny a client service (sincecryptographic measures allow the client to authenticate the data). InSection 3 we discuss ways in which clients can request access toother copies (i.e., not just the closest one); this will allow a clientto avoid misbehaving RHs, unless the misbehaving RH lies on thepath to all copies of that particular item.In all cases, though, RHs are commercially related to the clientsthey are serving; they are paid (perhaps recursively) by either theclient or the server. Thus, DONA is not relying on the cooperationof arbitrary entities, but is relying on the nature of a commerciallyprovided service. Thus, while the design should be reasonablysecure against misconfigured or subverted RHs, we anticipate thatany such problems would be detected and corrected by the provider.In such a key-centric design, the greatest fear is key compromise.There is no remedy except for providing effective means for keyrevocation. DONA does not, itself, provide a key revocationmechanism. However, there are a variety of mechanisms one coulduse for this, such as third-parties (e.g., Google) providing databasesof revocation lists. Each revocation is cryptographically proven, sothey cannot be faked; thus the database need merely provide accessto the data, not vouch for its correctness.DONA could itself provide a useful substrate for revocation listsand online key status query protocols. That is, key revocationsrelated to a principal P (both of P’s private key, and of any secondarykeys P has used) could be stored under P:L for some special reservedname L, and if an RH finds any entry corresponding to that name itimmediately returns notification of a key compromise.2 Thus, if aclient wanted to check a key related to P it could issue a FIND(P:L)for this special value of L. As we describe in Section 4, DONAalso supports update functionality, so a client could subscribe to benotified of any

Byung-Gon Chun ‡ bgchun@cs.berkeley.edu Andrey Ermolinskiy ‡ andreye@cs.berkeley.edu Kye Hyun Kim ‡ kyekim@cs.berkeley.edu Scott Shenker ‡ shenker@icsi.berkeley.edu Ion Stoica ‡ istoica@cs.berkeley.edu ABSTRACT The Internet has evolved greatly from its original incarnation. For instance, the vast majority of current Internet usage .

Related Documents:

“Data-Oriented Design and C ”, Mike Acton, CppCon 2014 “Pitfalls of Object Oriented Programming”, Tony Albrecht “Introduction to Data-Oriented Design”, Daniel Collin “Data-Oriented Design”, Richard Fabian “Data-Oriented Design (Or Why You Might

A brief timeline of analysis methods in System Development function oriented (1970ties) - focus on data-processing, not data data oriented (1980ties) - all data available to all functions object oriented (1990ties-now) - encapsulation of data and functions process and service oriented (now- ) - designing for computer supported work.

Research on Innovative Application-oriented Talent Training Mode in Private Colleges A-ling LUO 1,a,*, Yue WANG. 1,b. and Hui LIU. . goal-oriented Education, ability-oriented Education or demanoriented Education. OBE is an d-advanced educational concept of the results-oriented, student-oriented and reverse thinking .

Data-Oriented Design zBasic principle – The structure of a product must conform to the structure of its data zThree very similar methods – Warnier – Orr – Jackson zData-oriented design – Has never been as popular as action-oriented design – With the rise of OOD, data-oriented design has largely fallen out of fashion

method dispatch in different object-oriented programming languages. We also include an appendix on object-oriented programming languages, in which we consider the distinction between object-based and object-oriented programming languages and the evolution and notation and process of object-oriented analysis and design, start with Chapters 5 and 6;

the organizational culture of fast food restaurants based from OCP such as innovate, aggressive, outcome-oriented, stability, people-oriented, team oriented, detail oriented and service oriented; 3) test the significant difference on the responses when grouped according to demographic profile; and 4) propose an action plan

3.2 Goal problem oriented teaching design Goal problem oriented teaching requires the te achers to have strong professional quality, compre hensive ability and innovative thinking ability. The following is to carry out goal problem oriented teac hing design from four aspects: teaching process de sign, goal problem oriented design, curriculum ide

Reusability, CK Metric, Object - Oriented. 1. INTRODUCTION Object oriented systems continue to share a major portion of software development and customer base for these systems is on the rise. This is because there are many advantages in taking the object oriented concept. The weakness though is that most object oriented systems tend to be .