±à¼ÍƼö: |
±¾ÎÄÌÖÂÛSOAÆû³µÈí¼þµÄ¿ª·¢·½·¨£¬²¢¸¶Öîʵ¼ù£ºµÚÒ»²¿·ÖÌá³öÒ»ÖÖSOAÆû³µÈí¼þ·Ö²ãÄ£ÐÍ£»µÚ¶þ²¿·Ö»ùÓÚ·Ö²ãÄ£ÐÍ£¬½éÉÜÁ½ÖÖSOAÆû³µÈí¼þ¿ª·¢·½·¨¡£
±¾ÎÄÀ´×ÔÓÚÁªºÏµç×Ó£¬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼¡¢ÍƼö¡£ |
|
Ëæ×ÅÆû³µÖÇÄÜ»¯¡¢ÍøÁª»¯¡¢¹²Ïí»¯µÄÇ÷ÊÆ£¬ÖÕ¶ËÓû§¶Ô³µÁ¾¹¦ÄܵÄÔ¤ÆÚÒ²ÇÄÈ»·¢Éúןı䣬Æû³µÔÚʵÏָߵȼ¶×Ô¶¯¼ÝÊ»/¸¨Öú¼ÝÊ»¹¦ÄܵÄͬʱ£¬Ò²¸üÇ÷ÏòÓÚÌáÉýÓû§ÌåÑ飬ÀýÈçÂú×ã¿ìËٵŦÄܸüкÍÉý¼¶£¬¿ÉÒÔÌṩ¸öÐÔ»¯¡¢ÈËÐÔ»¯¡¢²îÒ컯µÄ¹¦ÄÜÓë·þÎñµÈ¡£
ÃæÏò·þÎñµÄÈí¼þ¼Ü¹¹(Service-Oriented Architecture)ÕýΪδÀ´µÄ³µÁ¾Èí¼þ·þÎñÌṩÁ¼ºÃµÄ½â¾ö·½°¸¡£²»Í¬ÓÚ´«Í³Æû³µµç×ÓµçÆø¼Ü¹¹ÖÐÃæÏòÐźŵļܹ¹£¬ÃæÏò·þÎñµÄÈí¼þ¼Ü¹¹(SOA)ͨ¹ý±ê×¼»¯µÄ·þÎñ½Ó¿Ú£¬ËÉñîºÏµÄ·þÎñ»úÖÆÒÔ¼°¿É×éºÏÀ©Õ¹µÄ·þÎñÌØÐÔ£¬½áºÏδÀ´ÒÔ¸ßÐÔÄܼÆËãÆ½Ì¨¡ª¡ªÓò¿ØÖÆÆ÷¡ª¡ªÎªºËÐĵļ¯Öл¯µç×ÓµçÆø¼Ü¹¹£¬½«³ÉΪδÀ´Æû³µÁìÓò¡°Èí¼þÇý¶¯´´Ð¡±µÄ¼¼Êõ»ù´¡¡£
µÚÒ»²¿£ºÃæÏò·þÎñ¼Ü¹¹(SOA)µÄÆû³µÈí¼þ¼°Æä¿ª·¢·½·¨
Ò». ΪʲôҪÒýÈëSOAÆû³µÈí¼þ?
SOAÊÇÒ»ÖÖÈí¼þ¼Ü¹¹£¬Í¬Ê±Ò²ÊÇÒ»ÖÖÈí¼þÉè¼Æ·½·¨ºÍÀíÄÔÚITÁìÓòÒÑÓÐÊýÊ®ÄêµÄÓ¦ÓþÑé¡£SOA¾ß±¸¡±ËÉñîºÏ¡±¡¢¡±½Ó¿Ú±ê×¼¿É·ÃÎÊ¡±ºÍ¡±Ò×ÓÚÀ©Õ¹¡±µÈÌØµã£¬Ê¹µÃ¿ª·¢ÈËÔ±ÄÜÒÔ×îСµÄÈí¼þ±ä¸üÓ¦¶Ôµü´ú¶à±äµÄ¿Í»§ÐèÇó¡£
ÔÚÖÇÄÜÍøÁªÆû³µÖУ¬´óÁ¿µÄ¹¦ÄÜÐèÒª¿ØÖÆÆ÷£¨ECU£©¼äµÄе÷¹¤×÷À´ÊµÏÖ£¬µ±Ç°ECU ¼ä»ùÓÚÐźÅ(Signal-Oriented)µÄµã¶ÔµãͨѶ½«»á±äµÃÒì³£¸´ÔÓ£¬ÇÒ²»¾ß±¸Áé»îÐÔºÍÀ©Õ¹ÐÔ£¬Î¢Ð¡µÄ¹¦Äܸ͝¶¼»áÒýÆðÕû³µÍ¨Ñ¶¾ØÕóµÄ¸Ä¶¯(ͼ1)¡£
Òò´Ë£¬ÁªºÏµç×Ó½«SOAÒýÈëµ½µ±Ç°Æû³µÈí¼þÉè¼ÆÖÐ(ͼ2)£¬³µÁ¾¹¦Äܱ»ÒÔÃæÏò·þÎñµÄÉè¼ÆÀíÄî¼Ü¹¹Îª²»Í¬µÄ·þÎñ×é¼þ£¬ÓбðÓÚÃæÏòÐźŵĴ«Í³¼Ü¹¹£¬SOAÖеÄÿ¸ö·þÎñ¶¼¾ßÓÐΨһÇÒ¶ÀÁ¢»¥²»Ó°ÏìµÄÉí·Ý±êʶ(ID)£¬²¢Í¨¹ý·þÎñÖмä¼þ(Service
Middleware)Íê³É×ÔÉíµÄ·¢²¼£¬¶ÔÆäËû·þÎñµÄ¶©ÔÄÒÔ¼°ÓëÆäËû·þÎñµÄͨѶ¹¤×÷¡£ÓÉ´Ë£¬SOAÁ¼ºÃµÄ½â¾öÁË´«Í³¼Ü¹¹ÖÐÒò¸ö±ð¹¦ÄÜÔö¼õ/±ä¸ü¶øµ¼ÖÂÕû¸öͨѶ¾ØÕóÓë·ÓɾØÕó¶¼Òª±ä¸üµÄÎÊÌâ¡£¸ü½øÒ»²½£¬ÓÉÓÚÆä¡±½Ó¿Ú±ê×¼¿É·ÃÎÊ¡±µÄÌØÐÔ£¬·þÎñ×é¼þµÄ²¿Êð²»ÔÙÒÀÀµÓÚ¾ßÌåÌØ¶¨µÄ²Ù×÷ϵͳºÍ±à³ÌÓïÑÔ£¬ÔÚÒ»¶¨³Ì¶ÈÉÏʵÏÖÁË×é¼þµÄ¡±ÈíÓ²·ÖÀ롱¡£

ͼ1 ÃæÏòÐźŵļܹ¹(Signal-Oriented Architecture)

ͼ2 ÃæÏò·þÎñµÄ¼Ü¹¹(Service-Oriented Architecture)
¶þ. ÈçºÎÓÐЧµÄ¿ª·¢SOAÆû³µÈí¼þ£¿
¶ÔÓÚÆû³µÐÐÒµ¶øÑÔ£¬SOAÊÇÒ»Ì×ÐÂÒýÈëµÄ¼¼Êõ£¬ÐèÒªÒ»Ì×ÓÐЧµÄÁ÷³Ì¡¢·½·¨ºÍ¹¤¾ß£¬ÓÃÒÔ½â¾öÈçÏÂÈý¸öÎÊÌ⣺1)
ÈçºÎ·ÖÎöºÍÉè¼Æ·þÎñ¼Ü¹¹£¬2) ÈçºÎ½¨Ä£ºÍ¼Ç¼·þÎñ¼Ü¹¹£¬3)ÈçºÎ²¿ÊðºÍʵÏÖÃæÏò·þÎñµÄÈí¼þ¡£
1) ÈçºÎ·ÖÎöºÍÉè¼ÆÃæÏò·þÎñµÄ¼Ü¹¹?
¡°·ÖÎöºÍÉè¼Æ·þÎñ¼Ü¹¹¡±µÄ¹ý³ÌÊÇ´Ó¿Í»§ÐèÇóµ½SOAÈí¼þ¼Ü¹¹²ú³öµÄ·ÖÎö¹ý³Ì£¬Ïà¶ÔÓÚ´«Í³Æû³µÈí¼þ¿ª·¢²ÉÓõĻùÓÚ¹¦ÄÜ·Ö½âµÄÃæÏò¹ý³Ì·ÖÎö·½·¨£¬¡°ÓÃÀýÇý¶¯µÄ¿ª·¢·½·¨¡±ºÍ¡°ÃæÏò·þÎñ¼Ü¹¹µÄÉè¼Æ·½·¨¡±ÊÇSOAÈí¼þ¼Ü¹¹¿ª·¢µÄÁ½¸öÖ÷ÒªÌØµã¡£
ÓÃÀý(Use Case)Çý¶¯µÄ¿ª·¢·½·¨(ͼ3)Ö¸´ÓÓû§µÄ½Ç¶È¶ø·Ç¿ª·¢ÈËÔ±µÄ½Ç¶È¿¼Âǹ¦ÄÜÐèÇóºÍϵͳʵÏÖ£¬ÖØÊÓ´ÓϵͳÍⲿ¹Û²ì¶ÔϵͳµÄʹÓá£ÓÉÓÃÀýÇý¶¯µÄ¿ª·¢»î¶¯£¬¿ÉÒÔ½¨Á¢ÐèÇóºÍϵͳ¹¦ÄÜÖ®¼äÇåÎúµÄ×·ËݹØÏµ£¬¸üºÃµÄÓ¦¶ÔÖÇÄÜÍøÁª²úÆ·ÐèÇóµÄ¿ìËÙµü´ú¸üС£
ÃæÏò·þÎñµÄ·ÖÎö·½·¨(ͼ4)ÔòÊÇÒÔÒµÎñΪÖÐÐÄ£¬ÔÚÓÉÓÃÀý·ÖÎöµÃµ½ÏµÍ³¹¦ÄÜÐèÇóµÄ»ù´¡ÉÏ£¬¶ÔÒµÎñÂß¼½øÐгéÏóºÍ·â×°£¬´ÓÒµÎñ½Ç¶ÈѰÕÒºòÑ¡·þÎñ£¨Service
Candidate£©£¬´Ó¼Ü¹¹½Ç¶ÈÇ¿µ÷·þÎñµÄÖØÓÃÐÔ(reusable)¡¢×ÔÖ÷ÐÔ(autonomous)ÒÔ¼°×éºÏÀ©Õ¹ÐÔ(composable)ÌØµã£¬³ä·Ö·¢»ÓSOAÉè¼ÆÀíÄîµÄÓÅÊÆ£¬¶ø²»Êǽö½ö×÷Ϊ¼¼ÊõʵÏÖ·½Ê½¡£

ͼ3 ÓÃÀýÇý¶¯µÄ¿ª·¢·½·¨

ͼ4 ÃæÏò·þÎñµÄ·ÖÎö·½·¨
2) ÈçºÎ½¨Ä£ºÍ¼ÇÂ¼ÃæÏò·þÎñµÄ¼Ü¹¹?
±ê×¼»¯µÄ½¨Ä£ÓïÑÔºÍͳһ»¯µÄÎĵµ½á¹¹£¬¶ÔÌáÉý¼Ü¹¹µÄ¿ª·¢ÖÊÁ¿¡¢ÊµÏּܹ¹ÄÚÈݵÄÓÐЧ´«µÝ¾ßÓÐÖØÒª×÷Óá£SysMLÓïÑÔºÍArc42Ä£°å¿ÉÒÔ×÷ΪSOAÈí¼þ¼Ü¹¹µÄ±ê×¼ÓïÑÔºÍÎĵµ½á¹¹Ä£°å¡£
ϵͳ½¨Ä£ÓïÑÔSysML£¨System Modeling Language£©ÊÇÓÉͳһ½¨Ä£ÓïÑÔUML£¨Unified
Modeling Language£©À©Õ¹¶øÀ´µÄ±ê×¼»¯ÏµÍ³½¨Ä£ÓïÑÔ£¬Äܹ»×¼È·±í´ïϵͳ¼°Æä×é¼þµÄÐèÇó¡¢ÐÐΪ¡¢½á¹¹ºÍÊôÐÔ¡£RhapsodyÈí¼þÖ§³ÖSysML½¨Ä££¬²¢ÌṩÁË×Ô¶¯»¯¹¦ÄÜ£¬Ìá¸ß½¨Ä£Ð§ÂÊ£¬Í¬Ê±±£Ö¤ÓëÓÃÀýµÄ×·ËݹØÏµ¡£Arc42Ã÷È·¶¨ÒåÁ˼ܹ¹ÎĵµµÄ½á¹¹£¬Í¨¹ýͳһ»¯µÄÎĵµ£¬ÌáÉý¿ª·¢ÍŶÓÖеÄÐÅÏ¢´«µÝЧÂʺÍÖÊÁ¿¡£
ÈçÏÂͼ5ÏÔʾ£¬ÁªºÏµç×ÓʹÓÃSysMLÓïÑÔ£¬Rhapsody½¨Ä£¹¤¾ßÒÔ¼°Arc42¼Ü¹¹Ä£°å½øÐÐÓ¦Ó÷þÎñ¼Ü¹¹µÄ¿ª·¢¡£

ͼ5 SysMLÓïÑÔ£¬Rhapsody¹¤¾ßºÍARC42¿ª·¢Ä£°å
3) ÈçºÎ²¿ÊðºÍʵÏÖÃæÏò·þÎñµÄÈí¼þ
¡°²¿ÊðºÍʵÏÖÃæÏò·þÎñ¼Ü¹¹µÄÈí¼þ¡±µÄ¹ý³ÌÊÇÒÔSOAÈí¼þ¼Ü¹¹ÎªÉè¼ÆÊäÈ룬×îÖÕ¿ª·¢ÊµÏÖ³öÈí¼þ²úÆ·µÄ¹¤×÷¹ý³Ì(ͼ6)¡£Ö÷Òª°üÀ¨
1)¶Ô·þÎñ½Ó¿ÚÐÐΪµÄ¿ª·¢ºÍʵÏÖ£¬Íê³É·þÎñ½Ó¿ÚÓë·þÎñÖ÷ÌåÂß¼µÄ°ó¶¨£»2) Õë¶ÔÄ¿±êÔËÐл·¾³£¬Íê³É¶Ô·þÎñ½Ó¿Ú²ÎÊý£¬·þÎñÖ÷ÌåÔËÐвÎÊýµÄÅäÖã»3)·þÎñ½Ó¿ÚÓëÓ¦ÓóÌÐò²ßÂÔÂß¼µÄ¼¯³É±àÒë¡£
AUTOSAR Adaptive ×é¼þ·â×°ÁËSOAÈí¼þµ×²ãµÄͨѶϸ½Ú(°üÀ¨SOME/IPÐÒ飬IPCµÈ)£¬Í¬Ê±Ìṩ´úÀí(Proxy)-¹Ç¼Ü(Skeleton)Ä£ÐÍ£¬¸ÃÄ£ÐÍÒÔC++ÃæÏò¶ÔÏóÓïÑÔÃèÊö£¬·½±ãÉϲãÓ¦Óÿª·¢ÈËÔ±µ÷Óñê×¼·þÎñ½Ó¿Ú(API)½øÐпª·¢¡£Application
Design ModelÊǸÃÄ£ÐÍÁíÒ»ÖÖ¿ÉÅäÖõijÊÏÖ£¬¿ª·¢ÈËԱͨ¹ýʹÓÃÏàÓ¦µÄÅäÖù¤¾ß¶ÔApplication
Design Model½øÐÐÃèÊöºÍÅäÖ㬼´¿ÉʵÏÖ»ùÓÚSOA·þÎñ¼Ü¹¹µÄÈí¼þÂ䵨ºÍ²¿Êð¡£ÁªºÏµç×ÓʹÓÃAUTOSAR
Adaptive×é¼þÍê³ÉSOA·þÎñ¼Ü¹¹Èí¼þµÄ¿ª·¢(ͼ7)£º

ͼ6 ²¿ÊðºÍʵÏÖÃæÏò·þÎñµÄÈí¼þ

ͼ7 Ó¦ÓÃÈí¼þÉè¼ÆÄ£ÐÍ
Èý. SOAÆû³µÈí¼þ´´ÐÂÆ½Ì¨
ÁªºÏµç×Ó¿ª·¢µÄÓò¿ØÖÆÆ÷XCU £¬ÌṩÁ˲¿ÊðSOAÆû³µÈí¼þµÄƽ̨¡£ÔÚÓ²¼þ·½Ã棬XCU¾ß±¸¸ßËãÁ¦´¦ÀíÆ÷оƬºÍ¶à·³µ¹æ¼¶ÒÔÌ«ÍøÍ¨µÀ£»ÔÚÈí¼þ·½Ã棬XCU´îÔØPOSIX²Ù×÷ϵͳºÍAUTOSAR
Adaptiveƽ̨¡£
¸ù¾ÝSOAÈí¼þ¿ª·¢·½·¨£¬¿É´ÓÁ½¸öÇÐÈëµã¿ªÕ¹SOAÆû³µÈí¼þƽ̨µÄ¿ª·¢¡£
1)×ÔÏÂÖÁÉÏ£¬´Ó³µÁ¾»ù´¡¹¦ÄÜ/Ðźųö·¢£¬½«ÒÑÓеÄÓ¦Óù¦ÄÜÂß¼/ÐźÅ(eg:³µÁ¾³µËÙÐÅÏ¢)³éÏó»ò·â×°³É·þÎñ×é¼þ£¬ÕâÀà×é¼þ±»³ÆÎª»ù´¡·þÎñ²ã(Basic/Platform
Service Layer)×é¼þ£¬¾ßÓÐ×î¸ßµÄ¿É¸´ÓÃÐԺͿÉ×éºÏÐÔ£¬ÕâЩ×é¼þ½«ÎªÉϲã(ÒµÎñ·þÎñ²ãBusiness
Service Layer)µÄ·þÎñ×é¼þÌṩ×î»ù´¡µÄÖ§³Ö¡£
2)×ÔÉ϶øÏ£¬´ÓÕû³µÒµÎñÂß¼ºÍÓÃÀý³ö·¢£¬½áºÏ¸÷ÁìÓòµÄºËÐÄÒµÎñ֪ʶ£¬Éè¼ÆÒµÎñ·þÎñ²ã(Business
Service Layer)µÄ·þÎñ×é¼þ£»Í¬Ê±£¬×ñÑ·þÎñ×é¼þµÄ¸´ÓÃÐÔºÍ×ÔÖ÷ÐÔµÈÔÔò£¬ÏòÏÂÉè¼Æ¹æ»®»ù´¡·þÎñ²ã(Basic/Platform
Service Layer)µÄ·þÎñ×é¼þ(ͼ8)¡£

ͼ8 »ùÓÚÓò¿ØÖÆÆ÷(XCU)µÄSOA·þÎñ¼Ü¹¹
ËÄ. SOA¼Ü¹¹µÄºËÐÄÒªËØÓëÓÅÊÆ
SOA×÷ΪһÖÖÃæÏò·þÎñµÄ¼Ü¹¹£¬ÊÇÒ»ÖÖÉè¼ÆË¼ÏëºÍ·½·¨ÂÛ¡£ÔÚSOA¼Ü¹¹ÖУ¬·þÎñÊÇ×îºËÐĵijéÏóÊֶκÍϵͳ×î»ù´¡µÄÃèÊöµ¥Ôª¡£
ÿ¸ö·þÎñ×é¼þ¾ß±¸¶ÀÁ¢µÄ¹¦ÄÜ£¬Çҿɱ»¸´Óã»·þÎñ×é¼þÖ®¼äµÄ½Ó¿Ú×ñÑͳһ±ê×¼£¬¿É»¥Ïà·ÃÎÊ£¬¿É×éºÏÀ©Õ¹¡£ÒµÎñ¹ý³ÌÔòÊÇ´øÓÐ״̬ºÍ·þÎñµ÷¶È²ßÂԵķþÎñ×é¼þµÄ×éºÏÓëÀ©Õ¹(ͼ1)¡£
ͨ¹ýSOA¼Ü¹¹£¬¿ÉÕûºÏ¹æ»®OEMÔÚ²»Í¬²Ù×÷ϵͳ£¬Ó²¼þƽ̨ÉÏ(¿ØÖÆÆ÷)ÉϵÄÒµÎñ¹¦ÄÜ£¬ÊµÏÖ¶Ô¹¦ÄܵĿìËÙµü´úºÍÖØ×飬Ӧ¶ÔÁé»î¶à±äµÄÖÇÄÜÍøÁªÇ÷ÊÆÏµÄÒµÎñÐèÇó¡£

ͼ9£ºSOA¼Ü¹¹Ä£ÐÍ
½áºÏδÀ´Æû³µÓòµ¼ÏòÐ͵ç×ÓµçÆø¼Ü¹¹(Domain-Oriented)ºÍÇøÓòµ¼ÏòÐ͵ç×ÓµçÆø¼Ü¹¹(Zone-Oriented)£¬Ó¦ÓÃSOA¼Ü¹¹¿ÉʵÏÖÒµÎñ¹ý³Ì(¹¦ÄÜ)µÄ¿ìËÙµü´úÓëÁé»îÖØ×飬ΪÖÇÄÜÍøÁªÇ÷ÊÆÏµÄÈí¼þ¸öÐÔ»¯Óë´´ÐÂÐèÇóÌṩÁËÁ¼ºÃµÄƽ̨ÐÔ½â¾ö·½°¸¡£SOA¼Ü¹¹Ó¦ÓÃÓÚÆû³µÐµç×ÓµçÆø¼Ü¹¹ÏµÄÓÅÊÆ(ͼ2):
³µÁ¾¹¦ÄÜÈí¼þʵÏÖÈíÓ²·ÖÀë
ÓÉÓÚ·þÎñ×é¼þ½Ó¿Ú¡°±ê×¼¿É·ÃÎÊ¡±£¬ÇÒÃèÊö·½Ê½¶ÀÁ¢ÓÚÓ²¼þƽ̨ºÍ²Ù×÷ϵͳ£¬Òò´Ë×é¼þ¹¦ÄÜ¿ÉÍÑÀëÓ²¼þƽ̨ÈÎÒⲿÊðÒÆ¶¯£¬¶ÔÓÚËãÁ¦ÓÐÒªÇóµÄ¸´ÔÓ¹¦ÄÜ×é¼þ¿ÉÏò¾ß±¸¸ß´ø¿í´óËãÁ¦µÄÓò¿ØÖÆÆ÷ÒÆ¶¯¡£
³µÁ¾¹¦Äܿɱ»´ó·¶Î§¸´ÓÃ
һЩʹÓÃÆµ¶ÈºÜ¸ßÇÒ»ù´¡µÄ¹¦ÄÜ¿É×÷Ϊ»ù´¡·þÎñ×é¼þÏȱ»¿ª·¢£¬ÓÉÓÚ·þÎñ×é¼þµÄ¶ÀÁ¢ÐÔÒÔ¼°½Ó¿ÚµÄ±ê×¼¿É·ÃÎÊ£¬»ù´¡·þÎñ¿ª·¢Íê³Éºó¿ÉÏò·þÎñÖмä¼þ×¢²á£¬²¢¹©ËùÓеç×ÓµçÆø¼Ü¹¹ÖеĿØÖÆÆ÷¶©ÔÄʹÓá£
³µÁ¾¹¦ÄÜÔÚSOPºó¿ÉÐÂÔö(À©Õ¹)
¡°Ð¡¡±µÄ»ù´¡·þÎñ¿É×éºÏ³ÉΪ¡°´ó¡±·þÎñ£¬¡°´ó¡±·þÎñ¿É½øÒ»²½×éºÏÀ©Õ¹²¢×îÖÕ¹¹½¨³öеÄÒµÎñ¹ý³Ì£¬ÊµÏÖOEMµÄÒµÎñÄ¿±ê¡£½áºÏOTA¼¼Êõ£¬Óû§¿ÉÔÚ³µÁ¾Ê¹ÓÃÆÚÏÞÀ¶©ÔÄÒ»¸öÀàËÆ£¬¡°Ô¤²âÐÔÄÜÁ¿¹ÜÀí¡±µÄй¦Äܲ¢°²×°ÓÚÓò¿ØÖÆÆ÷ÉÏ£¬Ð¹¦ÄܵÄÒµÎñÂß¼ÒÀÀµÓÚһЩÒÑÓеķþÎñ×é¼þ(eg:Ô¤²âÐÔÄÜÁ¿¹ÜÀíÒÀÀµÓÚÄÜÁ¿¹ÜÀí²ßÂÔ£¬µØÍ¼Ô¤²âÐÅÏ¢µÈ»ù´¡·þÎñ)¡£

ͼ10 ÐÂÆû³µµç×ÓµçÆø¼Ü¹¹ÖеÄSOA¼Ü¹¹Ó¦ÓÃ
µÚ¶þ²¿£ºÃæÏò·þÎñ¼Ü¹¹£¨SOA£©µÄÆû³µÈí¼þ·ÖÎöºÍÉè¼Æ
ÃæÏò·þÎñ¼Ü¹¹µÄ¿ª·¢¹ý³Ì´ÓÕûÌåÉÏ¿ÉÒÔ¸ÅÀ¨Îª6¸ö²½Ö裬·Ö±ðÊÇ£ºÃæÏò·þÎñ·ÖÎö¡¢ÃæÏò·þÎñÉè¼Æ¡¢·þÎñ¿ª·¢¡¢·þÎñ²âÊÔ¡¢·þÎñ²¿ÊðºÍ·þÎñȨÏÞ¹ÜÀí£¬Èçͼ11Ëùʾ¡£ÆäÖУ¬·ÖÎöºÍÉè¼ÆÃæÏò·þÎñµÄ¼Ü¹¹ÊÇ¿ª·¢SOAÈí¼þµÄ¿ª¶Ë£¬Ò²ÊÇÅжÏϵͳÊÇ·ñ»ùÓÚSOA¼Ü¹¹µÄ×îÖØÒªÇÒºËÐĵĻ·½Ú¡£
ÁªºÏµç×Ó¶Ô·ÖÎöºÍÉè¼ÆÃæÏò·þÎñ¼Ü¹¹Æû³µÈí¼þµÄ¾ßÌåÁ÷³ÌÓë·½·¨½øÐÐÁË̽Ë÷£¬½«ÃæÏò·þÎñµÄ·ÖÎö·Ö½âΪϵͳÐèÇó·ÖÎö¡¢ÏµÍ³¹¦ÄÜ·ÖÎö¡¢ºòÑ¡·þÎñ·ÖÎöÈý¸ö×Ó²½Ö裬½«ÃæÏò·þÎñµÄÉè¼Æ·Ö½âΪϵͳ¼Ü¹¹Éè¼ÆºÍÈí¼þ¼Ü¹¹Éè¼ÆÁ½¸ö×Ó²½Öè¡£¾¹ý¼Ü¹¹Ê¦µÄÁ¼ºÃ·ÖÎö£¬³µÁ¾¹¦ÄÜ(ÒµÎñÂß¼/ÒµÎñ¹ý³Ì)½«½áºÏʵ¼ÊʵÏÖÇé¿ö£¬°´²»Í¬ÒµÎñÁìÓòÍê³É½âñ²¢·Ö½âµÃµ½ºòÑ¡·þÎñ×é¼þ¡£ºóÐø£¬¾¹ýÏêϸÇÒ²»¶Ïµü´úµÄÉè¼Æ£¬ÔÚºòÑ¡·þÎñµÄ»ù´¡ÉÏ£¬×îÖÕ»á²ú³öÃæÏò·þÎñ(SOA)µÄÈí¼þ¼Ü¹¹¡£

ͼ11 ÃæÏò·þÎñµÄ·ÖÎöÓëÉè¼ÆÊÇ·þÎñ¼Ü¹¹¿ª·¢µÄºËÐÄ»·½Ú
½ÓÏÂÀ´±¾ÎĽ«Î§ÈÆÕâ5¸ö×Ó²½Öè¶ÔÃæÏò·þÎñµÄ·ÖÎöÓëÉè¼Æ¹ý³Ì½øÐнéÉÜ¡£
1. ϵͳÐèÇó·ÖÎö
Èçͼ12Ëùʾ£¬Õû¸öSOA¼Ü¹¹Ä£ÐÍ·ÖΪҵÎñ¹ý³Ì²ã£¬·þÎñ½Ó¿Ú²ãºÍÓ¦ÓóÌÐò²ãÈý²¿·Ö¡£SOAÒµÎñ¹ý³Ì²ãרעÓÚÒµÎñÂß¼µÄ·ÖÎö£»·þÎñ½Ó¿Ú²ã¾Û½¹ÓÚºòÑ¡·þÎñµÄÉè¼ÆºÍ·ÖÎö£»Ó¦ÓóÌÐò²ãÔòÌåÏÖÃæÏò·þÎñµÄϵͳ¼Ü¹¹ºÍÈí¼þ¼Ü¹¹Éè¼Æ¡£
ϵͳÐèÇó·ÖÎö¾Û½¹SOA¼Ü¹¹µÄ×îÉϲ㡪¡ªÒµÎñ²ã¡£¸ÅÀ¨À´Ëµ£¬ÐèÇó·ÖÎöÖ¸µÄÊÇÉè¼ÆºÍ³ä·ÖÀí½âÔÚÓû§¾ßÌåʹÓ󡾰ϵÄÕæÊµÒµÎñ¹ý³Ì£¬ÎªºóÐø³éÏóºÍ·â×°·þÎñÌṩ³ä×ãµÄÓï¾³ÐÅÏ¢¡£

ͼ12 ÐèÇó·ÖÎö¾Û½¹SOA¼Ü¹¹ÒµÎñ¹ý³Ì²ã
2. ϵͳ¹¦ÄÜ·ÖÎö
Èçͼ13Ëùʾ£¬ÏµÍ³¹¦ÄÜ·ÖÎö´î½¨ÆðÁËSOA¼Ü¹¹µÄÒµÎñ²ãºÍ·þÎñ²ãÖ®¼äµÄÇÅÁº£¬Æä¹ý³Ì¾ÍÊÇ´ÓµÚÒ»²½ÏµÍ³ÐèÇó·ÖÎöµÄ²úÎ¡ªÒµÎñ¹ý³ÌºÍϵͳÓÃÀý£¬Ïò·þÎñ¹ý¶ÉµÄ¹ý³Ì£¬Ä¿µÄÊǵóö¹¹³ÉºòÑ¡·þÎñµÄ·þÎñ²Ù×÷£¨operation£©¡£ÏµÍ³¹¦ÄÜ·ÖÎö¾ßÌå¿ÉÃèÊöΪ£ºÉè¼ÆÓÃÀýµÄʵÏÖ³¡¾°²½Ö裬¶ÔϵͳÓÃÀýÖð¸ö½øÐзÖÎöϸ»¯£¬ÃèÊöϵͳÈçºÎÓë²ÎÓëÕߣ¨actor£©Ò»ÆðʵÏÖÿ¸öÓÃÀý£¬´Ó¶øµÃµ½ÏµÍ³Óë²ÎÓëÕß¡¢ÓëÍⲿϵͳµÄ½çÏÞ¼°ÐÅÏ¢½»»¥£¬×îÖյóö¶ÔϵͳµÄ¹¦ÄÜÒªÇó£¬ÕâЩ¹¦ÄÜÒªÇóÖ±½Ó×÷ΪºòÑ¡·þÎñ²Ù×÷£¨business
service operation candidates£©¡£

ͼ13 ϵͳ¹¦ÄÜ·ÖÎö£º´ÓÒµÎñ¹ý³Ìµ½·þÎñ
3. ºòÑ¡·þÎñ·ÖÎö
ºòÑ¡·þÎñ·ÖÎö¾Û½¹SOA¼Ü¹¹µÄÖмä²ã¡ª¡ª·þÎñ½Ó¿Ú²ã¡£ºòÑ¡·þÎñ·ÖÎöµÄÄ¿µÄÊǶÔÒµÎñÂß¼½øÐгéÏóºÍ·â×°£¬´ÓÒµÎñ½Ç¶ÈѰÕÒºòÑ¡·þÎñ£¨Service
Candidate£©¡£ÖµµÃÇ¿µ÷µÄÊÇ£¬·ÖÎöºòÑ¡·þÎñÐèÒªÌø³öÌØ¶¨¹¦ÄÜ¿ª·¢£¬´Ó¼Ü¹¹½Ç¶ÈÇ¿µ÷ÒµÎñµÄÖØÓÃÐÔ(reusable)¡¢×ÔÖ÷ÐÔ(autonomous)ÒÔ¼°×éºÏÀ©Õ¹ÐÔ(composable)µÈÌØµã£¬Ìرð¿¼ÂǺòÑ¡·þÎñÔÚÆóÒµÒµÎñ·¶Î§ÄÚDZÔÚµÄÖØÓÿÉÄÜ£¬³ä·Ö·¢»ÓSOAÉè¼ÆÀíÄîµÄÓÅÊÆ£¬¶ø²»Êǽö½ö×÷Ϊ¼¼ÊõʵÏÖ·½Ê½(ͼ14)¡£

ͼ14 ºòÑ¡·þÎñ·ÖÎö¾Û½¹SOA¼Ü¹¹µÄ·þÎñ½Ó¿Ú²ã
4. ϵͳ¼Ü¹¹Éè¼Æ
ϵͳ¼Ü¹¹Éè¼ÆµÄÄ¿µÄÊÇÉè¼ÆºÍµÃµ½·þÎñµ½¼Ü¹¹ÒªËصÄÓ³É䣬ÒÔ¼°ÒªËؼä·þÎñµ÷ÓùØÏµ¡£ÏÂͼÖÐÀ¶É«Ð¡Ô²È¦´ú±í·ÖÎöµÃµ½µÄ·þÎñ£¬Í¨¹ýϵͳ¼Ü¹¹Éè¼Æ£¬±»Ó³ÉäÖÁ²»Í¬µÄ¼Ü¹¹ÒªËØ(
Platform A~C)(ͼ15)¡£ÔÚÕâÀ¼Ü¹¹ÒªËضÔÓ¦Æû³µÉÏ´îÔØ²»Í¬¿ØÖÆÆ÷ƽ̨(Platform)¡£

ͼ15 ϵͳ¼Ü¹¹Éè¼Æ£º·þÎñÓëÏµÍ³ÒªËØµÄÓ³Éä
5. Èí¼þ¼Ü¹¹Éè¼Æ
Èí¼þ¼Ü¹¹Éè¼ÆµÄÄ¿µÄÊÇÉè¼ÆºÍµÃµ½·þÎñ£¨service£©µ½·þÎñ×é¼þ£¨Service Component£©µÄÓ³Éä¹ØÏµ£¬¹ý³ÌÓëϵͳ¼Ü¹¹µÄÉè¼Æ¹ý³ÌÀàËÆ£¬µ«ÐèÒª½«¹Ø×¢µã×ªÒÆµ½¿ØÖÆÆ÷ÄÚ²¿¡£
ÔÚͼ16£¬SOA¼Ü¹¹ÖУ¬Èí¼þ¼Ü¹¹Éè¼ÆµÄÐÐΪ·¢ÉúÔÚÀ¶É«ÒõÓ°Çø¡£Èí¼þ¼Ü¹¹µÄÉè¼ÆÊܵ½Öî¶àÒòËØµÄÏÞÖÆ(ÒÔÌ«ÍøÍ¨Ñ¶Port¿Ú×ÊÔ´£¬¿Í»§¾ßÌåÓÃÀý³¡¾°µÄµü´ú±ä¸üµÈµÈ)¡£×ÜÌåÉè¼ÆË¼ÏëÉÏ£¬¸ßÄÚ¾Û£¬µÍñîºÏÈÔÊÇÉè¼ÆµÄͨÓÃÔÔòºÍ¼Ü¹¹ÆÀ¼ÛµÄ¹Ø¼üÖ¸±ê¡£¶îÍâÐèҪǿµ÷µÄ£¬Ó¦¶ÔÖÇÄÜÍøÁªÈí¼þÐèÇóµü´ú¶à±äµÄÌØÐÔ£¬ÔÚSOA·þÎñ¼Ü¹¹µÄÉè¼ÆÖУ¬»¹ÐèÇ¿µ÷ÖØÓÃÐÔºÍÀ©Õ¹ÐÔ£¬³ä·ÖµÄÁé»î¶È²ÅÄÜÒÔ×îСµÄÈí¼þ±ä¸üÓ¦¶Ô´óÁ¿µÄÐèÇóÊäÈë¡£
ͼ17ΪһʾÒâͼ£¬±í´ïÁËÕë¶Ôijһ·þÎñService A£¬ÓÐÒ»¸ö·þÎñÌṩ×é¼þ(Service Component)ÌṩA·þÎñ£¬ÓÐÈý¸ö·þÎñÏû·Ñ×é¼þÏû·Ñ·þÎñA¡£

Èí¼þ¼Ü¹¹Éè¼ÆºÍ ·þÎñÓëÓ¦ÓóÌÐòµÄÓ³Éä
½áÓï
¡°·ÖÎöºÍÉè¼ÆÃæÏò·þÎñµÄ¼Ü¹¹¡±¡¢¡°ÊµÏֺͲ¿ÊðÃæÏò·þÎñµÄÈí¼þ¡±ÊÇÓÐЧ¿ª·¢SOAÆû³µÈí¼þµÄ¹Ø¼ü»·½Ú£¬ ¡°·ÖÎöºÍÉè¼Æ·þÎñ¼Ü¹¹¡±µÄ¹ý³ÌÊÇ´Ó¿Í»§ÓÃÀý³¡¾°/ÐèÇóµ½SOAÈí¼þ¼Ü¹¹²ú³öµÄ·ÖÎö¹ý³Ì¡£
ÁªºÏµç×ÓÈÏΪ£¬Ïà¶ÔÓÚ´«Í³Æû³µÈí¼þ¿ª·¢²ÉÓõĻùÓÚ¹¦ÄÜ·Ö½âµÄÃæÏò¹ý³ÌµÄ·ÖÎö·½·¨£¬¡°ÓÃÀýÇý¶¯µÄ¿ª·¢·½·¨¡±ºÍ¡°ÃæÏò·þÎñ¼Ü¹¹µÄÉè¼Æ·½·¨¡±ÊÇSOAÈí¼þ¼Ü¹¹¿ª·¢µÄÁ½¸öÖ÷ÒªÌØµã¡£
ÁªºÏµç×Ӿ߱¸Ïà¹ØÏîÄ¿¾Ñ飬¿ÉÒÔ°ïÖú¾ß±¸ÒµÎñÂß¼µÄ³§ÉÌ(OEM/µÚÈý·½)Íê³É»ùÓÚ·þÎñµÄÓÃÀý·ÖÎöºÍ¼Ü¹¹Éè¼Æ¹¤×÷£¬²¢×îÖÕÐÖú¿Í»§Êä³öÃæÏò·þÎñµÄÈí¼þ¼Ü¹¹¡£
µÚÈý²¿£ºÃæÏò·þÎñ¼Ü¹¹£¨SOA£©µÄÆû³µÈí¼þʵÏֺͲ¿Êð
¸ù¾ÝSOA¼Ü¹¹²ã¼¶Ä£ÐÍ(ͼ18)£¬ÒµÎñÂß¼¾¹ýÃæÏò·þÎñ¼Ü¹¹(SOA)µÄÈí¼þ·ÖÎöºÍÉè¼Æ¹ý³Ìºó£¬±»·Ö½âΪµ¥¸ö·þÎñ²¢°ó¶¨ÏàÓ¦µÄ¿ÉÖ´ÐÐÈí¼þµ¥Ôª¡£ÒÔ·þÎñÈí¼þ¼Ü¹¹ÎªÊäÈ룬Æû³µ·þÎñÈí¼þµÄʵÏֺͲ¿Êð¹¤×÷Ö÷ÒªÔÚ·þÎñ×é¼þ²ã(Service
Components)Íê³É(ͼ1ºìÉ«¼ýÍ·)¡£

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

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

ͼ20 SCA¼Ü¹¹Ä£ÐÍÖеÄÅäÖÃÐÅÏ¢
SCA¼Ü¹¹Ä£ÐÍÖеÄÖ÷ÒªÔªËØ·ÖΪ¡°·þÎñ½Ó¿Ú¡±ºÍ¡°·þÎñʵÏÖ¡±Á½´óÀà¡£ÆäÖУ¬¡°·þÎñ½Ó¿ÚÃèÊö¡±°üº¬·þÎñÈí¼þµ¥Ôª(Services)£¬×é¼þ½Ó¿Ú(Interface)ºÍÏûϢͨѶ(Message)£»¡°·þÎñʵÏÖ¡±Ôò°üÀ¨Í¨Ñ¶ÐÒé°ó¶¨(Binding)ºÍ·þÎñ¶Ë¿ÚÐÅÏ¢µÈ(Endpoint)(ͼ20)¡£
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¼Ü¹¹Ä£Ð͵ÄÃèÊö(Èçͼ21)¡£

ͼ21 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)(ͼ22)¡£

ͼ22 ·þÎñ×é¼þµ¥Ôª(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Èí¼þ¿ÉÒÔ¡°Â䵨¡±²»¿É»òȱµÄ»·½Ú¡£ |