±¾ÎĽ²ÊöÁ˶¯Ì¬ÔÚÏßÎĵµ
SaaS ²úÆ·£¨ÒÔϼò³Æ DynamicPPTService£©ÔÚǰÆÚÔÆÆ½Ì¨Ñ¡Ð͵Ŀ¼ÂÇÒòËØ¡¢ÒµÎñ·¢Õ¹ºó³öÏÖµÄÎÊÌ⣬ÒÔ¼°ÏµÍ³Ç¨ÒƵ½
Azure Service Fabric ƽ̨ÉϽøÐÐ΢·þÎñ»¯µÄʵʩ¹ý³Ì¡£×îÖÕ£¬¼¼ÊõÍŶÓʵÏÖÁËÓÃ΢·þÎñ»¯¼Ü¹¹¾«Ï¸»¯¹ÜÀíϵͳµÄÄ¿µÄ¡£Í¬Ê±Ò²·¢ÏÖ£¬Î¢·þÎñ¼Ü¹¹²¢²»ÄÜÈÃϵͳ¡°ÏÔÖøÊÝÉí¡±£¬ÒòΪһЩӦÓÃÎÞ·¨Î¢·þÎñ»¯£¬ËùÒÔ²ÉÓÃ΢·þÎñ¼Ü¹¹Ôö¼ÓÁ˶îÍâµÄÔÆ¼ÆËã×ÊÔ´¡£
±³¾°
DynamicPPTService ÊôÓÚÒ»¼ÒÌṩÔÚÏß¶¯Ì¬Îĵµ·þÎñµÄÃÀ¹ú¿Æ¼¼¹«Ë¾£¬¿Í»§°üÀ¨ PayPal£¬TIAA£¬Fidelity
µÈÉϰټÒÃÀ¹úÖªÃû½ðÈÚ·þÎñ»ú¹¹¡£Óû§Ê¹Óà DynamicPPTService À´Éè¼Æ·ûºÏ×Ô¼º·ç¸ñÑùʽµÄ
PowerPoint Ä£°å£¬Á¬½ÓÊý¾Ý¶¯Ì¬Éú³É×îÖÕÎĵµ¡£ÒøÐС¢±£ÏÕÐÐÒµÓû§¶Ô X ²úÆ·ÓÐÇ¿ÁÒµÄÐèÇó£¬ÒòΪËûÃÇ·þÎñµÄ¿Í»§¶ÔÊý¾Ý¸ß¶ÈÃô¸Ð£¬ËùÓÐËûÃÇÐèҪչʾÓë¿Í»§ÃÜÇÐÏà¹ØµÄÊý¾Ý£¬ÀýÈçΪ¿Í»§Á¿Éí¶¨ÖÆ±£Ïռƻ®»òÕßͶ×Ê×éºÏµÈ¡£°Â²©½ÜÌ죨Öйú£©µÄ¼¼Êõ·þÎñÍŶÓȫȨ¸ºÔð¸Ã²úÆ·µÄÍøÕ¾¡¢SaaS
ƽ̨¡¢ÊÖ»ú app µÈ²úÆ·µÄÑз¢ºÍ¼¼ÊõÖ§³Ö¹¤×÷¡£
DynamicPPTService ´Ó 2010 Ä꿪ʼÔÚ Azure ÔÆÉÏÏßÒÔÀ´£¬X ²úÆ·ÒµÎñÒÔÿÄê
100% ÒÔÉϵÄËÙ¶È¿ìËÙÅÊÉý¡£¾¹ý½ü 7 ÄêµÄ¸ßËÙ·¢Õ¹£¬²»¶ÏÔö¼ÓµÄÒµÎñÐèÇóÒѾ¶ÔÏÖÓеÄϵͳ¼¼Êõ¼Ü¹¹´øÀ´Á˾޴óÌôÕ½£¬ÏµÍ³¼Ü¹¹µÄÉý¼¶¸ÄÔìÊÆÔÚ±ØÐС£
ÌôÕ½
DynamicPPTService ·þÎñ¶ËÍйÜÔÚ Azure µÄ PaaS ƽ̨ Cloud Service
ÉÏ£¬×ñÑ Cloud Service µÄ Web Role ºÍ Worker Role ²¿Êðģʽ¡£ÔÚ
Azure platform ÖУ¬Role ÊÇÒ»¸öÌá¹©ÌØ¶¨·þÎñµÄÓ¦ÓóÌÐò£¬Ã¿Ò»¸öÌå¶¼ÊÇһ̨ÐéÄâ»ú£¬Òò´Ëÿ¸ö
Role ¶¼ÓÐÍêÕûµÄÐéÄâ»ú×ÊÔ´¡£Web Role ÔÚËüµÄÐéÄâ»úÉ趨ÄÚ°üº¬ÁË IIS ÒÔ¼°±ØÒªµÄ¹¦ÄÜ£¬ÓÃÀ´´¦Àíͨ¹ý
http ºÍ https ·ÃÎ浀 web ÇëÇó¡£Òò´ËÎÒÃǰÑÓû§¹¤×÷Çø (workspace)£¬×ÊÔ´¹ÜÀí
(admin)£¬¶¯Ì¬±¨±í¹ÜÀí (doc center, library) µÈÌṩ web Ò³Ãæ·ÃÎʵÄÄ£¿é¶¼·Åµ½
Web Role¡£
Worker Role ÊʺÏÓÃÀ´¹ÒÔØÎÞʹÓÃÕß½çÃæ¡¢ÒÔ·þÎñΪÖ÷µÄÓ¦Óó̡£ÎÒÃǰѱ¨±íµÄ´¦Àí (construction)£¬ÎĵµÉú³É
(conversion), ÏûÏ¢·¢ËÍ£¨livesend, notification£©µÈÐèÒªÏûºÄʱ¼äµÄºǫ́ӦÓ÷ÅÖõ½
Worker Role¡£ÏµÍ³Ê¹Óà Azure µÄ SQL ·þÎñ´æ·ÅÓû§ÉÏ´«µÄÊý¾Ý£¬ Óà Blob Storage
´æ·ÅÓû§Éú³ÉµÄÄ£°åºÍÉÏ´«µÄͼƬ×ÊÔ´£¬Óà Table Storage ´æ·ÅһЩϵͳÅäÖúͲÙ×÷ÈÕÖ¾¡£»¹Ê¹Óõ½
In Role Cache ×÷ΪÊý¾Ý»º´æ¡£

×î³õ¾ö¶¨Ê¹Óà Azure PaaS ×÷ΪÍÐ¹ÜÆ½Ì¨¶øÃ»ÓÐÑ¡Ôñ AWS »òÆäËü³§ÉÌ£¬Ö÷Òª´¦ÓÚËĵ㿼ÂÇ£º
1.Azure ÔÚ PaaS ²ãµÄ¹¦ÄÜҪǿÓÚÆäËü³§ÉÌ£¬½çÃæ²Ù×÷Ò²±È½ÏÓѺã»
2.Éú²ú·þÎñÆ÷²¢²»Ö±½Ó²¿Ê𣬶øÊÇÔÚа汾µÄ²âÊÔÍê³ÉºóÓë¡°staging
slot¡±½»»»£¬ÕâÒâζ×Å¿ÉÒÔ×öµ½ÁãÍ£»úʱ¼ä£»
3.΢ÈíµÄ Silverlight À´´î½¨ÏµÍ³½çÃæ, ÄÜ·½±ãµØÖ§³Ö¶àÖÕ¶Ëչʾ£¨´ÓÏîĿʵ¼ÊЧ¹ûÀ´¿´ÕâÒ»µãµÄÓÅÊÆ²¢²»ÌرðÃ÷ÏÔ£©£»
4.ÎÒÃÇÈÏΪʹÓà Visual Studio + WCF ¿ò¼Ü±à³ÌÄÜ´øÀ´±È
Java ¸ü¸ßµÄ¿ª·¢Ð§ÂÊ£¬ Java ¹¤³ÌÊ¦ÕÆÎÕ C# µÄѧϰÇúÏßÒ²²»Ì«´ó¡£
×¢£ºÔÚ Azure Cloud Service ÖУ¬ÌṩÁËÁ½¸ö deployment slot£¬Éú²ú
(production) ºÍ·ÖÆÚ (staging)¡£ÔÚ´ó¶àÊýÓ¦Óû·¾³ÖУ¬ÎÒÃÇͨ³£¶ÔÓ¦Ò»¸ö staging
»·¾³ (ÓÃÓÚÉÏÏßǰ²âÊÔÈ·ÈÏ) ºÍÒ»¸öÉú²ú»·¾³¡£ÐèҪעÒâµÄÊÇ£¬ÔËÐÐ production ºÍ staging
slot ¶¼ÊÇÊշѵġ£²Î¿¼.
Õ⼸ÄêËæ×Å DynamicPPTService ÒµÎñµÄ·¢Õ¹£¬ ·þÎñ¶ËÔö¼ÓÁ˸ü¶àµÄ¹¦ÄÜ¡£ ÈÕÒæÔö´óµÄÓû§·ÃÎÊÁ¿£¬Ò²¸ø¾Éϵͳ´øÀ´Á˺ܴóµÄÌôÕ½¡£
±È½ÏÍ»³öµÄ¼¸¸öÎÊÌâÊÇ£º
1.ϵͳñîºÏ¶È¸ß£¬²»ÀûÓÚÐͬ¹¤×÷¡£ ÓÉÓÚ¹¦Äܱä¶à£¬ÓÐǰºǫ́¶à¸öÍŶÓÔÚ¹²Í¬Î¬»¤´úÂ룬ϵͳÉÏÏ߯µ·±¡£ËäȻҲʹÓÃ
Git ×÷Ϊ´úÂë¿â£¬Ã¿´ÎÉÏÏß»¹ÊÇÐèÒª»¨´óÁ¿µÄʱ¼ä½â¾ö´úÂë³åÍ»£¬´ï²»µ½Ãô½Ý¿ª·¢µÄЧ¹û¡£
2.×ÊԴʹÓÃЧÂʲ»¸ß¡£ÀýÈç Web Role ÖÐһЩ²»ÆµÂÊʹÓõÄÓ¦ÓÃÓÉÓÚ¶¼´ò°üÔÚͬһ¸ö
Role ÖУ¬±»Öظ´²¿Êðµ½¶ą̀Ðé»úÉÏ¡£
3.×¢£ºIn Role Cache ÊÇ Azure ¸ÕÉÏÏßʱÌṩµÄ·Ö²¼Ê½
Cache ½â¾ö·½°¸£¬Î¢ÈíÐû²¼½«ÓÚ 2016 Äê 12 Ô 30 ÈÕÍ£Ö¹¶ÔËüµÄ¼¼ÊõÖ§³Ö£¬½¨Òé´ó¼Ò¸ÄÓÃÍÆ³ö²»¾ÃµÄ
Azure Redis Cache¡£²Î¿¼.
·½°¸
Õë¶ÔÕâЩ±©Â¶³öÀ´µÄÎÊÌ⣬ ÎÒÃÇ¿ªÊ¼×ÅÊÖÉè¼Æ DynamicPPTService µÄмܹ¹¡£¼¼ÊõÉÏÒª´ïµ½µÄÄ¿±ê£º
1.Ìá¸ß×ÊÔ´ÀûÓÃÂÊ¡£
2.½µµÍϵͳñîºÏ¶È£¬Âú×ã¼Ü¹¹²»¶ÏÌí¼ÓµÄй¦ÄܺÍÄ£¿é¡£
3.×î´ó»¯Ê¹Óà Azure ÌṩµÄÔÆ¼ÆËãÌØÐÔ£¬ ¾¡Á¿¼õÉÙÈ˹¤Î¬»¤¹¤×÷¡£
4.Óà Azure Redis Cache Ìæ»»ÒѾ²»Ö§³ÖµÄ In
Role Cache ·þÎñ¡£
5.ÐÂÔöÊý¾Ý·ÖÎö·ÖÎö·þÎñ£¬Ëü¸ºÔðÌṩËÑË÷ºÍÍÆ¼ö¹¦ÄÜ¡£
ÎÒÃÇÈÏΪʹÓÃ΢·þÎñµÄ¿ò¼ÜÄܺܺõĽâ¾öϵͳñîºÏµÄÎÊÌâ¡£Èç¹ûʹÓÃÁË΢·þÎñ¼Ü¹¹£¬¾Í¿ÉÒÔ°´Ðè¶Ô¸ö±ð·þÎñʵÀýÊýÁ¿½øÐÐÔö¼õ£¬Í¨¹ýÓÅ»¯×ÊÔ´ÅäÖÃÀ´ÌáÉýϵͳÕûÌåÐÔÄÜ¡£
¾¹ýÌÖÂÛ£¬ÎÒÃÇ¿ÉÑ¡µÄ·½°¸ÓÐÈý¸ö£º
·½°¸Ò»£¬½«Ôϵͳ²ð·Ö³É¶à¸ö¶ÀÁ¢µÄ service£¬ÑÓÓÃ֮ǰ Azure Cloud Service
µÄ role ²¿Êðģʽ£¬Ã¿¸ö service ²¿ÊðÔÚÒ»¸ö Web Role »òÕß Worker Role
ÖС£ ÕâÑù´øÀ´µÄÎÊÌâÊÇÿ¸ö service ¾ÍÒªÕ¼ÓÃÒ»¸öÐéÄâ»ú¡£Èç¹û¿¼ÂǸ߿ÉÓÃÐÔ£¬Ã¿¸ö service
ÖÁÉÙÒªÓÐ 2 ¸öÒÔÉÏʵÀý£¬ÄÇÕû¸ö¼¯ÈºÊ¹ÓõÄÐé»úÊýÁ¿»¹Òª·±¶¡£ËäÈ»µ¥»úʹÓõÄ×ÊÔ´»á±ÈÔÀ´µÍ£¬µ«ÊDz»×ãÒÔµÖÏû¹ºÂò¸ü¶àÐé»úËù»¨µÄ·ÑÓá£
·½°¸¶þ£¬½«Ôϵͳ²ð·Ö³É¶à¸öµ¥¶ÀµÄ service£¬Ê¹Óà Azure ÍÆ³ö²»¾ÃµÄ Service Fabric
¼¯Èº¹ÜÀí¿ò¼ÜÀ´ÊÊӦ΢·þÎñ¼Ü¹¹¡£ Service Fabric ÀàËÆÓÚ AWS µÄ BeanStalk£¬ÎÒÃÇÖ»Ðè¹ÜÀíºÃ×Ô¼ºµÄÓ¦ÓôúÂ룬ÆäËüµÄ×ÊÔ´ÐèÇ󶼿ÉÒÔ½»¸ø
Service Fabric È¥¹ÜÀí¡£ËüÎüÒýÎÒÃǵÄÌØÐÔÊÇ£º
1.΢·þÎñ¼¯Èº¹ÜÀí¡£Ìṩ¼¯³É½çÃæ¶Ô·þÎñ½øÐйÜÀíºÍ¼à¿Ø£¬·½±ã¾«Ï¸»¯¿ØÖÆÏµÍ³·þÎñ¡£
2.¸ßµÄÃܶȵÄ΢·þÎñ²¿Êð·½Ê½¡£µ¥¸ö½Úµã£¨Ðé»ú£©¿ÉÒÔÍйܶà¸ö·þÎñ¡£
µ«ÊÇÈç¹ûʹÓà Service Fabric Ò²»á´øÀ´Á½¸öÎÊÌ⣺
1.µÚÒ»£¬Ëü²»×Ô´ø IIS Ö§³Ö¡£Web Role ÖеÄÓ¦ÓÃÒªÇл»µ½
Service Fabric ҪôÄÜ×Ô´ø HTTP ·þÎñ£¬ÒªÃ´Ê¹Óà ASP.NET Core MVC
¿ò¼Ü¡£ÕâÑù×ö»áÇ£Éæµ½ºÜ¶à´úÂë¸Ä¶¯£¬¹¤×÷ÄÚÈÝÉæ¼°¶à¸ö¿ª·¢ºÍ²âÊÔÍŶӡ£
×¢£ºASP.NET Core MVC ĬÈÏʹÓà Kestrel ×÷Ϊ HTTP ·þÎñÆ÷¡££¨²Î¿¼£©
2.µÚ¶þ£¬Service Fabric ÖÐÿ¸ö·þÎñ¶¼±ØÐë¶ÀÕ¼Ðé»úµÄ¶Ë¿Ú¡£ÓÉÓÚ¶àÊý
web ·þÎñ¶¼Ê¹ÓÃÁË 80 ºÍ 443 ¶Ë¿Ú£¬Õâ¾ÍÔì³ÉÁ˲»Í¬µÄ·þÎñÖ»Äܲ¿Êðµ½²»Í¬µÄÐé»úÉÏ£¬²»ÄÜÀûÓõ½
Service Fabric µ¥¸ö½Úµã¿ÉÒÔÍйܶà¸ö·þÎñÕâÒ»ÓÅÊÆ¡£ËäÈ» Azure ½¨Òé¿ÉÒÔʹÓ÷´ÏòÍøÂç´úÀíÀ´½â¾öÕâ¸öÎÊÌ⣬µ«ÊÇ´ò¿ª·´Ïò´úÀí»á°ÑËüºóÃæËùÓÐ
end point µÄ http ¶Ë¿Ú±©Â¶£¬»áÓа²È«Òþ»¼¡£
×¢: ¹ØÓÚ Azure ·´Ïò´úÀíµÄÄÚÈÝ£¬²Î¿¼.
ËùÒÔ´ÓÎÒÃÇÕÆÎÕµÄ֪ʶÀ´Åжϣ¬Óà Service Fabric À´Ìæ´ú Web Role ¹ÜÀíǰ¶Ë·þÎñ£¬¼¼ÊõÉÏÓÅÊÆ²¢²»Ã÷ÏÔ¡£
·½°¸Èý£¬¿¼Âǵ½·½°¸¶þµÄÏÞÖÆ£¬½« Worker Role ÖÐµÄ construction, live
send ºÍ notification ºǫ́·þÎñÇ¨ÒÆµ½ Service Fabric ÉÏ£¬ÐÂÔöµÄÊý¾Ý·ÖÎö·þÎñÒ²²¿ÊðÔÚ
Service Fabric ÉÏ¡£Ô Web Role ÖеķþÎñ½øÒ»²½²ð·Ö³É web ÏìÓ¦·þÎñºÍºǫ́
API ·þÎñ£¬½«ºǫ́ API ·þÎñ²¿Êðµ½ Service Fabric ÉÏ£¬Ç°¶Ë Web ÏìÓ¦·þÎñÇ¨ÒÆµ½ÄܸüºÃÖ§³Ö
IIS µÄ Azure App Service¡£ÕâÑùµÄºÃ´¦ÊÇ£º
1.Worker Role ÖеķþÎñÇ¨ÒÆ¸Ä¶¯Ð¡£¨Ö»ÐèÒªÔÚµ÷ÓÃÆô¶¯·þÎñµÄ½Ó¿Ú´úÂë´¦½øÐÐÉÔ΢Ð޸ģ©¡£
2.Web Role ÖеÄÓ¦ÓÃÇ¨ÒÆµ½ App Service Ò²»ù±¾²»ÓøĶ¯¡£
3.Web Role ÖÐÓÉÓÚÏûºÄ×ÊÔ´µÄ·þÎñ±»Ç¨ÒƵ½ Service
Fabric£¬Ê£Ï嵀 web ÏìÓ¦·þÎñÐèÒªµÄÔÆ¼ÆËã×ÊÔ´»á¼õÉÙ¡£
·½°¸ÈýµÄϵͳ¼Ü¹¹ÈçÏÂͼ£º

ʵÏÖ
ΪÁËÎÈÍׯð¼û£¬ÎÒÃǾö¶¨²ÉÓ÷½°¸Èý£¬·ÖÁ½²½À´³Ôó¦Ð·¡£µÚÒ»²½°Ñ Worker Role ÖеķþÎñ½øÐÐÇ¨ÒÆ£¬µÈÉÏÏßÕý³£ºóÔÙ½øÐеڶþ²½
Web Role ÖзþÎñµÄÇ¨ÒÆ¡£
µÚÒ»²½µÄÖØµãÔÚÓÚÐèÒª½« Worker Role ÖзþÎñµÄ´úÂë½øÐиÄд¡£ ÓÉÓÚ Worker Role
ÖдúÂë¿ò¼Ü½á¹¹ºÍ Service Fabric ÖдúÂë½á¹¹»ù±¾ÀàËÆ£¬Ö»ÊÇ·þÎñÆô¶¯½ÓÈëµã·½·¨´ÓÔÀ´µÄ
RoleEngryPoint ÖÐµÄ Run() ·½·¨¸Ä±äΪ StatelessService ÖеÄ
RunAsync¡£


¾¹ý 6 ¸öÔµÄÖØÐ²¿Êð£¬ÎÒÃÇÍê³ÉÁË DynamicPPTService ΢·þÎñ°æ±¾ÔÚ Service
Fabric Éϲ¿Êð²¢Ë³ÀûÉÏÏß¡£ а汾ÉÏÏߺó£¬Í¨¹ý Service Fabric µÄ¿ØÖÆÌ¨ÎÒÃÇÄܺܺõĹÜÀíϵͳµÄÿ¸ö΢·þÎñ£¬´ïµ½ÁËÉè¼ÆÔ¤ÆÚ¡£
²»¹ýʵ¼Ê¼õµôµÄÔÆ¼ÆËã×ÊÔ´²¢Ã»ÓÐÔ¤ÏëµÄ¶à£¬¾É¼Ü¹¹Ê¹ÓÃÁË 4 ̨ 8core 56G ÄÚ´æ ·þÎñÆ÷ (Azure
ÐͺŠD13) ÔËÐÐ Web Role Ó¦Ó㬠6 ̨ 2core, 8G ÄÚ´æ ·þÎñÆ÷ (Azure
ÐͺŠD2) ÔËÐÐ Worker Role Ó¦Óã¬6 ̨ D2 ·þÎñÆ÷ÔËÐÐ conversion Ä£¿éÐèÒªµÄ
windows office ×é¼þ¡£Ê¹ÓÃ΢·þÎñ¼Ü¹¹ºó£¬³ýÈ¥ App Service °´Ê¹ÓÃÁ¿¼Æ·Ñ£¬Service
Fabric ¼¯ÈºÊ¹ÓÃÁË 5 ̨ D13 ·þÎñÆ÷¡£Conversion Ä£¿éÐèÒªµ÷Óà office
µÄ×ÊÔ´±ØÐëÔËÐÐÔÚ window µÄÐé»úÉÏÎÞ·¨Î¢·þÎñ»¯£¬ 6 ̨ D2 ·þÎñÆ÷±£Áô¡£ ËùÒÔ£¬Èç¹û°ÑÊ¡µôµÄ
6 Ì¨Ô Worker Role ·þÎñÆ÷ºÍÐÂÔö×âÓà App Service ËùÓõÄ×ÊÔ´µÖÏû£¬Ç¨ÒƵ½Ð¼ܹ¹ºó£¬»¹¶àʹÓÃÁË
3 ̨ D13 ·þÎñÆ÷¡£ÎÒÃÇ×îÖյļܹ¹ÈçÏÂͼ£º

×ܽá
ÔÚ DynamicPPTService ¼Ü¹¹Éý¼¶µÄÕâ¸öÏîÄ¿ÖС£ÎÒÃÇÔËÓÃÁË΢·þÎñµÄ¼Ü¹¹Éè¼ÆÔÔò£¬½áºÏ
Azure µÄ¼¼ÊõÌØÐÔ£¬ºÜºÃµÄÍê³ÉÁ˼ܹ¹À©Õ¹£¬½â¾öÁËÒµÎñ·¢Õ¹´øÀ´µÄ¼¼ÊõÌôÕ½¡£¼¼ÊõÍŶӺܺõÄÅжÏÁË Azure
Service Fabric »¹Óв»ÍêÃÀµÄµØ·½ (ÀýÈç²»Ö§³Ö IIS¡¢Ã¿¸ö node ½Úµã²¿ÊðµÄ service
¶¼»áÕ¼ÓÃÒ»¸ö¶ÀÁ¢¶Ë¿Ú) £¬Ôڼܹ¹Éè¼ÆÊ±ºÏÀíµÄ±Ü¿ªÕâЩ¼¼ÊõÁÓÊÆ£¬³ä·Ö·¢»ÓÁË Service Fabric
Éó¤¸ßÃܼ¯¶È¡¢¾«Ï¸»¯¹ÜÀí·þÎñµÄÓÅÊÆ¡£ÔÚʵ¼Ê²¿ÊðÖУ¬ÒòΪÓÐЩӦÓò»ÄÜ΢·þÎñ»¯£¬ÐèÒª¸øËüÃDZ£Áô×ÊÔ´£¬ËùÒÔʹÓÃ΢·þÎñ¼Ü¹¹²¢²»ÄÜÃ÷ÏÔ½µµÍÔϵͳËùÕ¼ÓõÄ×ÊÔ´¡£
|