±à¼ÍƼö: |
ÎÄÕÂÖ÷Òª½éÉÜÁËÂú×ã
SOA ¼Ü¹¹µÄ·þÎñ×é¼þ¼Ü¹¹¡¢·þÎñ×é¼þ¼Ü¹¹SCAµÄÅäÖÃÃèÊö¡¢Æû³µSOAÈí¼þµÄʵÏÖ·½°¸¼°SOA·þÎñ×é¼þʵÏֺͲ¿ÊðµÄ¾ßÌå²½Ö衣ϣÍû¶ÔÄúÓаïÖú¡£
±¾ÎÄÀ´×ÔÓÚ΢ÐŹ«Õ˺ŠÁªºÏÆû³µ£¬ÓÉ»ðÁú¹ûÈí¼þLinda±à¼¡¢ÍƼö¡£ |
|
¸ù¾ÝSOA¼Ü¹¹²ã¼¶Ä£ÐÍ(ͼ1)£¬ÒµÎñÂß¼¾¹ýÃæÏò·þÎñ¼Ü¹¹(SOA)µÄÈí¼þ·ÖÎöºÍÉè¼Æ¹ý³Ìºó£¬±»·Ö½âΪµ¥¸ö·þÎñ²¢°ó¶¨ÏàÓ¦µÄ¿ÉÖ´ÐÐÈí¼þµ¥Ôª¡£ÒÔ·þÎñÈí¼þ¼Ü¹¹ÎªÊäÈ룬Æû³µ·þÎñÈí¼þµÄʵÏֺͲ¿Êð¹¤×÷Ö÷ÒªÔÚ·þÎñ×é¼þ²ã(Service
Components)Íê³É(ͼ1ºìÉ«¼ýÍ·)¡£ 
ͼ 1 SOA ²ã¼¶¼Ü¹¹Ä£ÐÍ
01 Âú×ã SOA ¼Ü¹¹µÄ·þÎñ×é¼þ¼Ü¹¹
(Service-Component-Architecture)
Õë¶Ô·þÎñ×é¼þ£¬SOA¶¨ÒåÁË·þÎñ×é¼þµÄ¼Ü¹¹Ä£ÐÍ(SCA)(ͼ2)£¬ÔÚSCAµÄ¿ò¼ÜÏ£¬·þÎñ×é¼þÄÚ²¿±»·ÖΪҵÎñÂß¼(Service)Óë»ù´¡ÉèÊ©Âß¼(InterfaceºÍMessage)Á½²¿·Ö£¬²¢»¥Ïà½âñ
·þÎñÈí¼þµ¥Ôª(Service)£ºÒµÎñ/¹¦ÄÜÂß¼£¬²»¹ØÐIJÙ×÷ϵͳºÍ±à³ÌÓïÑÔ£¬¿ÉÓÉÊìϤҵÎñÂß¼µÄÏà¹Ø·½¿ª·¢
½Ó¿Ú(Interface)£º¾ö¶¨¶ÔÍâÌṩÄÄЩ·þÎñÒÔ¼°×ÔÉí·þÎñÒÀÀµÄÄЩ·þÎñ£¬²»¹ØÐIJÙ×÷ϵͳºÍ±à³ÌÓïÑÔ£¬¿ÉÓÉSOA¼Ü¹¹Éè¼Æ·½Íê³É¿ª·¢ºÍ²¿Êð
ÏûÏ¢(Message)£º½Ó¿ÚÊý¾ÝµÄͨѶÁ´Â·/»·¾³°ó¶¨£¬²»¹ØÐIJÙ×÷ϵͳºÍ±à³ÌÓïÑÔ£¬¿ÉÓÉSOA¼Ü¹¹Éè¼Æ·½Íê³É¿ª·¢ºÍ²¿Êð
Õû¸ö·þÎñ×é¼þ²ãµÄ¹¤×÷ÊǶԷþÎñ×é¼þ½øÐй淶ÐÍÃèÊö£¬ÃèÊöÄÚÈÝÖ÷Òª°üº¬Á½¸ö²¿·Ö:
·þÎñ×é¼þ¼Ü¹¹Ä£ÐÍSCAµÄÅäÖÃÃèÊö
·þÎñ×é¼þÄÚ²¿ÒµÎñÂß¼ºÍ»ù´¡ÉèÊ©Âß¼µÄ¼¯³É

ͼ2 SOA·þÎñ×é¼þ¼Ü¹¹Ä£ÐÍ(SCA)
02 ·þÎñ×é¼þ¼Ü¹¹SCAµÄÅäÖÃÃèÊö
ͨ¹ýSCA¼Ü¹¹Ä£ÐÍ£¬Ã¿¸ö·þÎñÈí¼þµ¥Ôª(Service)ÒÔ±ê×¼µÄ½Ó¿ÚÐÎʽ(Interface)ÏòÏû·Ñ·½Ìṩ·þÎñÄÚÈÝ£¬ÒÔͳһµÄͨѶÐÒé´«µÝÐòÁл¯ÏûÏ¢(Message)¡£¶ÔÓÚSOA¼Ü¹¹Éè¼ÆºÍÓ¦ÓÃÈËÔ±£¬ÐèҪͨ¹ý¹¤¾ßÅäÖÃSCA¼Ü¹¹Ä£ÐÍÖеIJÎÊý£¬Ê¹ÆäÓë·þÎñ¹ÜÀí×é¼þһͬʵÏÖSOAÈí¼þµÄ²¿ÊðºÍÔË×÷¡£

ͼ3 SCA¼Ü¹¹Ä£ÐÍÖеÄÅäÖÃÐÅÏ¢
SCA¼Ü¹¹Ä£ÐÍÖеÄÖ÷ÒªÔªËØ·ÖΪ¡°·þÎñ½Ó¿Ú¡±ºÍ¡°·þÎñʵÏÖ¡±Á½´óÀà¡£ÆäÖУ¬¡°·þÎñ½Ó¿ÚÃèÊö¡±°üº¬·þÎñÈí¼þµ¥Ôª(Services)£¬×é¼þ½Ó¿Ú(Interface)ºÍÏûϢͨѶ(Message)£»¡°·þÎñʵÏÖ¡±Ôò°üÀ¨Í¨Ñ¶ÐÒé°ó¶¨(Binding)ºÍ·þÎñ¶Ë¿ÚÐÅÏ¢µÈ(Endpoint)(ͼ3)¡£
WebServiceµÄSCA¼Ü¹¹Ä£ÐÍÅäÖÃÃèÊö
ÒÔITÐÐÒµSOA·âװʹÓýÏΪ¹ã·ºµÄWebServiceΪÀý£¬Æä¶ÔSCA¼Ü¹¹Ä£Ð͵ÄÃèÊö×ñ´ÓÈçϱê×¼ÐÒé:

±í1 SCA¼Ü¹¹Ä£ÐÍÖеÄÅäÖÃÐÅÏ¢
ÔÚIBM¹«Ë¾·¢²¼µÄSOAϵͳ½â¾ö·½°¸- ÆóÒµ·þÎñ×ÜÏß(Enterprise-Service-Bus)ÖÐÌṩÁËWebSphere
Integration Developer¿ª·¢»·¾³£¬¸Ã»·¾³Ö§³ÖÅäÖÃÉú³É·ûºÏWSDL¹æ·¶µÄ·þÎñ×é¼þÃèÊöÎĵµ¡£
Æû³µÈí¼þµÄSCA¼Ü¹¹Ä£ÐÍÅäÖÃÃèÊö
ÔÚÆû³µÈí¼þÁìÓò£¬µ±Ç°£¬ÁªºÏµç×Ó²ÉÓÃAUTOSAR Adaptive×éÖ¯ÌṩµÄÄ£ÐÍÃèÊö¹æ·¶¡£AUTOSAR
Adaptive×éÖ¯¶ÔSCA¼Ü¹¹Ä£Ð͵ÄÃèÊö×ñÑÈçϱê×¼:

±í2 SCA¼Ü¹¹Ä£ÐÍÖеÄÅäÖÃÐÅÏ¢
03 Æû³µSOAÈí¼þµÄʵÏÖ·½°¸
ÈçÉÏÎÄËùÊö£¬Æû³µÈí¼þÁìÓò£¬ÁªºÏµç×Ó×ñÑAUTOSAR Adaptive±ê×¼À´Íê³ÉSOAÖмä¼þµÄ²¿ÊðºÍÓ¦Óã¬AUTOSAR
Adaptive×é¼þ²ÉÓþµäµÄ´úÀí(Proxy)-¿ò¼Ü(Skeleton)ģʽÀ´Íê³ÉSCA¼Ü¹¹Ä£Ð͵ÄÃèÊö(Èçͼ4)¡£

ͼ4 Proxy(stub)/Skeleton¼Ü¹¹Ä£Ê½
ÕâÖÖģʽ½«Ô±¾Ö±½Ó½»»¥µÄµ÷ÓÃÕß(Client)Óë±»µ÷ÓÃÕß(Server)·ÖÀ룬ÓÉ´úÀí¸ºÔð´«µÝÐÅÏ¢À´Íê³Éµ÷Óã¬clientºÍserver²»ÐèÒª´¦ÀíͨÐŲãÏêϸÐÅÏ¢¡£Í¬Ê±£¬AUTOSAR
Adaptive³§ÉÌ»ùÓÚC++ÓïÑÔ¾ßÌåʵÏÖ´úÀí-¿ò¼Üģʽ£¬È·±£Ó¦Ó÷þÎñ¿ª·¢ÈËÔ±¿ÉÒÔÁé»îÅäÖÃ×Ô¶¨ÒåµÄ·þÎñ½Ó¿Ú£¬²¢½áºÏ¶ÔÓ¦¹¤¾ßÉú³ÉSCA¼Ü¹¹Ä£ÐÍ´úÂë(.cpp/.cc)ºÍÅäÖÃÎļþ(.json)¡£¾ßÌåµÄ£¬ÕâЩ´úÂ룺
·â×°ÁËSOME-IPÐÒéÕ»ºÍµ×²ãͨѶϸ½Ú(Middleware Transport Layer)
ÌṩÁËÏàÓ¦µÄ·þÎñÐé½Ó¿Ú(virtual function)
ͨ¹ý1)£¬·þÎñ×é¼þ¿ª·¢ÈËÔ±²»±ØÔÙ¹ØÐÄ·þÎñMessage¶ÔÓ¦µÄÐÒéÈçºÎʵÏÖ£»Í¨¹ý2)£¬·þÎñ×é¼þ¿ª·¢ÈËÔ±»ùÓÚC++µÄÓïÑÔÌØÐÔ£¬¿É¼Ì³Ð(inherit)Ðé½Ó¿Ú²¢¸²Ð´(override)Ðé½Ó¿ÚµÄ¾ßÌåʵÏÖ(º¯ÊýÌå)¡£¸Ã»úÖÆ±£Ö¤ÁË¡°»ù´¡ÉèÊ©Âß¼¡±ºÍ¡°ÒµÎñ(¹¦ÄÜ)Âß¼¡±µÄ½âñ·þÎñÄÚ²¿ÒµÎñÂß¼µÄ¸Ä¶¯²»Ó°Ïì·þÎñ×é¼þÏòÍâµÄ½Ó¿ÚÌṩ¡£
04 SOA·þÎñ×é¼þʵÏֺͲ¿ÊðµÄ¾ßÌå²½Öè
SOA·þÎñ×é¼þ¡°ÊµÏֺͲ¿Ê𡱵ÄÕû¸ö¹ý³ÌÒÔÃæÏò·þÎñ(SOA)µÄÈí¼þ¼Ü¹¹ÎªÊäÈ룬ÄÚÈÝÉϳýÍê³ÉµÚ¶þÕÂÌáµ½µÄ¡°»ù´¡ÉèÊ©Âß¼¡±ÅäÖù¤×÷Í⣬»¹Ð轫ҵÎñ(¹¦ÄÜ)Âß¼Óë»ù´¡ÉèÊ©Âß¼¼¯³É£¬×îÖÕ±àÒë³É¿ÉÖ´ÐеķþÎñ×é¼þµ¥Ôª(Service
Component)(ͼ5)¡£

ͼ5 ·þÎñ×é¼þµ¥Ôª(Service Component)
ÈçµÚÒ»ÕÂÖжԷþÎñ×é¼þµÄSCAÃèÊö£¬ÕûÌå·þÎñ×é¼þ(Service Component)ÓÉ·þÎñµ¥Ôª(Service)ÌṩµÄ¡°ÒµÎñÂß¼¡±ºÍÊÊÅäÄ¿±êϵͳ»·¾³Ïà¹ØµÄ¡°»ù´¡ÉèÊ©Âß¼¡±Á½²¿·Ö×é³É¡£ÔÚ¿ª·¢¹ý³ÌÖУ¬ÕâÁ½²¿·ÖÊǽâñîµÄ£¬¿Éͬʱ½øÐеģ¬ÇÒÈí¼þÐÎ̬ÊÇÁé»îµÄ¡£
·þÎñµ¥Ôª(Service)µÄÂß¼¿ÉÒÔÊÇÔ´Âë»ò±»·âװΪSDKÐÎʽ£¬ÇÒ²»¹ØÐľßÌåµÄ±à³ÌÓïÑÔ£»»ù´¡ÉèÊ©Âß¼
(InterfaceºÍMessage) ÔòÒÔC++µÄÐÎ̬±àÂ룬Óë·þÎñ¹ÜÀíÖмä¼þÒ»ÆðÈ·±£·þÎñµÄ¶¯Ì¬ÏìÓ¦ÐԺͷþÎñ×ÔÉíµÄ¿ÉÀ©Õ¹ÐÔ£¬ÆäÈí¼þÐÎ̬ͬÑù¿ÉÒÔÊÇÔ´Âë»òSDKÐÎʽÌṩ¡£
ÔÚÁ÷³ÌÉÏ·½·¨ÂÛÉÏ£¬¡±ÊµÏֺͲ¿Ê𡱹¤×÷Ö÷Òª·ÖΪ·þÎñ×é¼þ½Ó¿ÚÉè¼Æ£¬·þÎñ×é¼þ¼¯³ÉʵÏֺͰ²×°²¿ÊðÈý¸ö²½Ö裺
×é¼þ½Ó¿ÚÉè¼Æ½×¶Î: ÁªºÏµç×Ó±àдarxmlÍê³É¶Ô·þÎñ×é¼þSCAÖС°»ù´¡ÉèÊ©Âß¼¡±µÄÅäÖÿª·¢£¬²¢¾ÓÉAUTOSAR
AdaptiveÖмä¼þ¹©Ó¦ÉÌÌṩµÄ´úÂë¿ò¼ÜºÍÉú³ÉÆ÷(Generator)£¬×îÖյõ½Ïà¹ØµÄÅäÖÃÎļþ(.json)ºÍÔ´´úÂë(.cc/.cpp)£»¶Ô¡°·þÎñµ¥ÔªÂß¼¡±£¬ÁªºÏµç×Ó¿Éͬ²½»ùÓÚ½¨Ä£¹¤¾ß½øÐпª·¢£»
×é¼þ¼¯³ÉʵÏÖ½×¶Î: ÁªºÏµç×Ó±àдAPP¿ò¼Ü£¬Íê³É¡°·þÎñµ¥ÔªÂß¼¡±Óë¡°»ù´¡ÉèÊ©Âß¼¡±µÄÈí¼þ¼¯³É¹¤×÷£»
×é¼þ°²×°²¿Êð½×¶Î: ÁªºÏµç×Ó±àд±àÒëºÍ°²×°½Å±¾£¬Íê³ÉÔ´ÂëµÄ±àÒëÁ´½ÓºÍ¿ÉÖ´ÐÐÎļþ(App)µÄ°²×°£¬Í¬Ê±£¬¶ÔAPP°²×°²¿ÊðȨÏÞºÍϵͳ»·¾³×öÊÊÅäµ÷Õû¡£

¡°·ÖÎöºÍÉè¼ÆÃæÏò·þÎñµÄ¼Ü¹¹¡±¡¢¡°ÊµÏֺͲ¿ÊðÃæÏò·þÎñµÄÈí¼þ¡±ÊÇÓÐЧ¿ª·¢SOAÆû³µÈí¼þµÄ¹Ø¼ü»·½Ú£¬¡°ÊµÏֺͲ¿ÊðÃæÏò·þÎñÈí¼þ¡±µÄ¹ý³ÌÊÇSOAÈí¼þ¿ÉÒÔ¡°Â䵨¡±²»¿É»òȱµÄ»·½Ú¡£ÁªºÏµç×Ó¿ÉÒÔÌṩSOAÈí¼þ¿ª·¢¹¤³Ì·þÎñ:
¸ÃÈí¼þ¹¤³Ì·þÎñÒÔÔ˶¯Óò¿ØÖÆÆ÷XCU×÷ΪӲ¼þÔØÌ壬²ÉÓÃAUTOSAR Adaptive×é¼þ×÷ΪSOA·þÎñ¹ÜÀíµÄÖмä¼þ£¬×îÖÕ¿ÉÔÚXCUÕâÑù·ûºÏSOA¼Ü¹¹µÄ¿ª·ÅÐÔÈí¼þƽ̨ÉÏÌṩSOA·þÎñ×é¼þ²úÆ·¡£ |