evolvability_adaptation_第1页
evolvability_adaptation_第2页
evolvability_adaptation_第3页
evolvability_adaptation_第4页
evolvability_adaptation_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Ivan LaneseComputer Science DepartmentUniversity of BolognaItalyFrom services to ABSWith input from Davide Sangiorgi, Fabrizio Montesi, RoadmapFrom services to ABSMessage indirectionNesting and wrappersConclusionsRoadmapFrom services to ABSMessage indirectionNesting and wrappersConclusionsOur aimLoo

2、k for concepts and primitives for ABS inspired by our experience with servicesAnalyze which kinds of patterns they enableIn particular concerning evolvability/adaptationCompare them with the object oriented approach of ABSIntegrate the two approachesWhat are services?A service is a piece of software

3、 providing functionalitiesIt has an identityIt has a well-defined interfaceFunctionalities (called operations) can be invoked by other servicesTo compose complex services/workflowsSimilar to objects (and components)Operations correspond to methodsInstances of a service correspond to instances of a c

4、lassButMore suitable for heterogeneous systems (standards, )No inheritance, code reuse by compositionOur experience with servicesSensoria project on Software Engineering for Service-Oriented Overlay ComputersEuropean FET GC 2 project (just finished)Development of the language JolieFull-fledged langu

5、age for programming service oriented applicationsBased on the formal calculus SOCKProvides high-level primitives for communication and reconfigurationSupported by University of Bologna spin-off italianaSoftwareWhy services for ABS?Service orientation is an HATS requirementMR 21 in Deliverable D5.1Vi

6、rtual Office case study is service oriented Services suitable for programming dynamically evolvable applicationsHigh degree of dynamicitySupport for dynamically change the behaviourMany approaches to evolvability in the literature are based on servicesMeteor-s, PAWS, Which evolvability?Many differen

7、t kinds of evolvability existStatic/dynamicRelated to different steps of the software development process (cfr. Deliverable D3.1.a)We are mainly interested in dynamic evolutionEvolution of behavior that occurs at runtimeBoth specification and enactmentWhich are the right primitives and concepts for

8、specifying and programming dynamic evolution?What can we learn from services/components?Services and dynamic evolutionServices for composing a service-oriented application may be found at runtime in the environmentA service-oriented application automatically evolves if new versions of its component

9、services become availableCommunication between services are mediated by portsConnections can be changed dynamicallyOther mechanisms allow to change the structure/behaviorDynamic embedding, aggregation, redirectionFrom services to ABSDifferent primitives/ideas can be imported in different waysAs exte

10、nsions of ABSRequires to update the syntax/semanticsReal integration with ABS languageAs patterns/best practicesNot always possibleThe programmer may go around themAs additional layersGood for high-level approaches (cfr. JoRBA)RoadmapFrom services to ABSMessage indirectionNesting and wrappersConclus

11、ionsMessage indirectionIn OO languages (and ABS) messages are sent directly to the recipient via method invocationTo change the communication patterns one needs to change the code of the objectsSource code is neededWe want to import the mechanism of input/output ports from servicesMessages sent to p

12、orts, that forward them to the real recipientsWhy message indirection?By changing the content of a port, communication topology is updatedNo need to change the code (difficult and error prone)Can be done without recompilingPorts can be exploited for configuration/deploymentPort content read from con

13、figuration fileCan be used for creating a specific product of a SPLPorts simplify dynamic evolutionPort content can be changed at runtimeAllows to connect/remove componentsLogging via message indirectionSince all the communicationsgo through the port the loggingworks correctlyO1LoggerAuthentication

14、(cfr. Virtual Office)O1O2Authentication (cfr. Virtual Office)O1O2AuthIntLearning from the examplesAll the communications from/to one source can be redirected in a safe and unintrusive wayTwo symmetric mechanisms: input and output portsOutput ports allow to redirect all the outgoing messagesInput por

15、ts allow to redirect all the incoming messagesAllow different kinds of evolvability patternsMessage indirection: Evolvability patternsInput/output loggingMessage format adaptationChanging protocol (cfr. Jacopos talk)Interface adaptationChanging/hiding functionalitiesChanging parametersBufferingMulti

16、castMessage indirection in ABSDeeply influences communicationThe programmer should always exploit itOtherwise direct communications can escape evolvability patternsGood candidate for language extensionHas to be integrated with method invocationCan be both synchronous and asynchronousOutput ports in

17、ABSStrongly related to method invocationInstead of x=o1.m(pars) one should write x=p1.m(pars) p1 is an output port (indirect object reference)One should declare to which method (and input port) the port is boundWhen the output port is invoked, the invocation is forwarded to the target object/input p

18、ortOutput ports may also specify the used protocolInput ports in ABSStrongly related to interfacesExtend interfaces with an additional forward layer For each method signature they should specify to which real method (and object) the call is forwardedMay also specify the protocolManaging input/output

19、 ports in ABSCan be initialized during deployment (cfr. Jacopos talk)New ports have to be created when new objects are createdNeed for primitives to update input/output ports for reconfigurationRebind: changes the binding of a portLogging step by stepO1Logging step by stepAdding loggerO1LoggerLoggin

20、g step by stepBinding loggers output portO1LoggerLogging step by stepRebinding O1 output portO1LoggerRoadmapFrom services to ABSMessage indirectionNesting and wrappersConclusionsNesting and wrappersThe port mechanism allows to change thebehavior of the system dynamicallyThe architecture evolves tooS

21、ome objects depend on each otherE.g., the logger depends on the logged systemThose dependencies are not visibleWith a hierarchic structure one can capture those dependenciesWrapping both the logger and the logged system as a unique entityNesting and wrappersNesting allows more control on internal ob

22、jectWrappers can filter communicationsEntities inside the same wrapper (location) share resourcesLocation dependent behaviorRemoving a wrapper (may) remove all the wrapped components at onceWrappers allow code reuse at runtimeHiding via wrappingO1wrapperPorts not externalized by the wrapper are not

23、visible from the outsideTwo objects are aggregated into oneAggregation via wrappingO1wrapperO2Replacing an application (cfr. Virtual Office)Switch from Outlook to Thunderbird as mailing applicationUsing ports one can disconnect Outlook and connect ThunderbirdOutlook may exploit libraries/auxiliary a

24、pplicationsWill remain thereMay create troubles/inefficienciesSolution: use wrapping to group Outlook and all its dependenciesI can insert Thunderbird (wrapped!) replacing the wrapperReplacing an application (cfr. Virtual office)OutlookwrapperLibNesting: Evolvability patternsGroupingIdentifying reso

25、urce dependenciesAllow location dependent behaviorWrappingHiding/modifying functionalitiesReplacing a complex system as a single objectNesting and wrappers in ABSABS has a two levels structure: objects and coboxesCoboxes are used only for concurrencyNot suitable for wrapping/groupingFrom a structura

26、l point of view ABS systems are flatObjects can communicate freely (using the suitable synchronization form)No way to act on groups of objects at onceNesting and wrappers in ABSObjects are good candidates to implement the hierarchyObjects can already contain (references to) objects in their fieldsSo

27、mething more is necessary to allow real subobjectsControl of communicationsControl of life cycle of subobjectsExploiting the hierarchyWhen the hierarchy is in place, primitives are needed to exploit itCommunication featuresSpecifying access to subobjectsTransparent vs obaque objectsMovementObjects c

28、an be created inside the creator or at the same level of the creatorCan objects move seamlessly?Can objects be deleted and recreated?Location dependenceCan objects discover objects in the same location? RoadmapFrom services to ABSMessage indirectionNesting and wrappersConclusionsSummaryServices (and

29、 components) provide a good toolset of techiques for evolvabilitySome of those techniques can be imported into ABSInput/output ports, hierarchyWhat else?Necessary to find a good integration with ABS main constructsObjects, interfaces, synchronous/asynchronous method callsHigh-level approachesThose p

30、rimitives can be exploited for programming adaptation/evolvability frameworksAllow to specify evolution in a more user-friendly wayWe see as an example the JoRBA frameworkJoRBAA middleware for programming adaptable applicationsApplications provide an adaptation interface, i.e. a set of activities that can be dynamically replacedAdaptation is performed by adaptation servers managing sets of adaptation rulesEach adaptation rule includes a description of the activities it can be applied toso

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论