Page 106 - 《软件学报》2021年第5期
P. 106

1330                                     Journal of Software  软件学报 Vol.32, No.5,  May 2021

                 3.3.1    JPetstore 数据收集
                    (1)  获取候选微服务的 E ser 、I、O.
                    本文的两个作者各自独立拆分 JPetStore 生成相应的拆分方案 A 和 B 的 E ser 结果.基于 E ser ,采用 FoSCI             [6]
                 中的接口识别方法生成相应的接口集合 I 和接口提供的操作集合 O,两种拆分方案生成的候选服务 SC 详情分
                 别见表 1 和表 2.
                                   Table 1    Service candidates from the decomposition A of JPetStore
                                            表 1   JPetStore 拆分方案 A 下的候选服务
                       候选服务                    E ser                      I               O
                                    org.mybatis.JPetStore.domain.Category
                                  org.mybatis.JPetStore.service.CatalogService        viewCategory(⋅)
                               org.mybatis.JPetStore.web.actions.CatalogActionBean   searchProducts(⋅)
                         SC 0                                       CatalogActionBean
                                     org.mybatis.JPetStore.domain.Product             viewProduct(⋅)
                                      org.mybatis.JPetStore.domain.Item                viewItem(⋅)
                                    org.mybatis.JPetStore.domain.Sequence
                                                                                       newOrder(⋅)
                                                                                      isConfirmed(⋅)
                                    org.mybatis.JPetStore.domain.LineItem
                                org.mybatis.JPetStore.web.actions.OrderActionBean      getOrder(⋅)
                         SC 1                                        OrderActionBean   newOrderForm(⋅)
                                   org.mybatis.JPetStore.service.OrderService
                                     org.mybatis.JPetStore.domain.Order               setOrderId(int)
                                                                                       viewOrder(⋅)
                                                                                       listOrders(⋅)
                                                                                   removeItemFromCart(⋅)
                                      org.mybatis.JPetStore.domain.Cart
                         SC 2       org.mybatis.JPetStore.domain.CartItem   CartActionBean   updateCartQuantities(⋅)
                                org.mybatis.JPetStore.web.actions.CartActionBean        getCart(⋅)
                                                                                     addItemToCart(⋅)
                                                                                     isAuthenticated(⋅)
                                                                                      getUsername(⋅)
                                  org.mybatis.JPetStore.service.AccountService        setPassword(⋅)
                         SC 3   org.mybatis.JPetStore.web.actions.AccountActionBean  AccountActionBean  setUsername(⋅)
                                    org.mybatis.JPetStore.domain.Account              newAccount(⋅)
                                                                                      getAccount(⋅)
                                                                                        signoff(⋅)
                                   Table 2    Service candidates from the decomposition B of JPetStore
                                            表 2   JPetStore 拆分方案 B 下的候选服务
                       候选服务                    E ser                      I               O
                               org.mybatis.JPetStore.web.actions.CatalogActionBean    viewCategory(⋅)
                                  org.mybatis.JPetStore.service.CatalogService       searchProducts(⋅)
                         SC 0                                       CatalogActionBean
                                     org.mybatis.JPetStore.domain.Product             viewProduct(⋅)
                                    org.mybatis.JPetStore.domain.Category              viewItem(⋅)
                                                                                   removeItemFromCart(⋅)
                                      org.mybatis.JPetStore.domain.Item            updateCartQuantities(⋅)
                                      org.mybatis.JPetStore.domain.Cart                 getCart(⋅)
                                    org.mybatis.JPetStore.domain.CartItem            addItemToCart(⋅)
                                org.mybatis.JPetStore.web.actions.OrderActionBean      newOrder(⋅)
                         SC 1      org.mybatis.JPetStore.service.OrderService   CartActionBean   isConfirmed(⋅)
                                    org.mybatis.JPetStore.domain.Sequence   OrderActionBean   getOrder(⋅)
                                     org.mybatis.JPetStore.domain.Order              newOrderForm(⋅)
                                    org.mybatis.JPetStore.domain.LineItem             setOrderId(int)
                                org.mybatis.JPetStore.web.actions.CartActionBean       viewOrder(⋅)
                                                                                       listOrders(⋅)
                                                                                     isAuthenticated(⋅)
                                                                                      getUsername(⋅)
                                  org.mybatis.JPetStore.service.AccountService        setPassword(⋅)
                         SC 2   org.mybatis.JPetStore.web.actions.AccountActionBean  AccountActionBean  setUsername(⋅)
                                    org.mybatis.JPetStore.domain.Account              newAccount(⋅)
                                                                                      getAccount(⋅)
                                                                                        signoff(⋅)
   101   102   103   104   105   106   107   108   109   110   111