DeepSeeã¯ãéžæãããé åã®éžæãããããŒãã«ããèŠããOLAPãã¥ãŒãã§ãããã®ãããªãã¥ãŒãã¯ãå ã®ããŒãã«ã®ãã¹ãŠã®ãã£ãŒã«ãã§ãã£ã«ã¿ãªã³ã°ã§ãããããã©ãããã§ãããŒã¿ã衚瀺ã§ããŸãã ããšãã°ãã¿ã¹ã¯ã®1ã€ã¯åºçã«é¢ããæ å ±ã衚瀺ããããšã§ãã.DeepSeeã§ã¯ãæšå¹Žã«çãŸããåäŸã®æ°ã瀺ããã¥ãŒãã«åºã¥ããŠããŒãã«ãäœæããæ§å¥ãäœéã身é·ãæ¯èŠªã®å¹Žéœ¢ãåºçå°ã«ãã£ãŠã°ã«ãŒãã«åããŸããã ãŸãããã©ã¡ãŒã¿ããšã«ãããªã«ããŠã³ã®æ¡ä»¶ãèšå®ã§ããŸã-ãã©ã¡ãŒã¿ã§å€±æããããã幎ã®ä»£ããã«ãç¹å®ã®æãæ¥ãæéã«çãŸãããã®ã®æ°ã確èªã§ããŸãã
ããã§ããã ããã§ãïŒ
ãã ããèèã®æšœã«ã¯ãã€ãã®ããã«ãè»èã«ããšããããŸããDeepSeeã®å Žåã¯ãããŒã¿ã衚瀺ããããã¶ã€ã³ã§ãã

ãã®åœ¢åŒã§ã¯ã誰ãåæã瀺ã䟡å€ã¯ãããŸãããã²ã©ãä¿å®æŽŸãå³ã®ãªã人ãé£ããŠè¡ã£ãŠãããŸãã
幞ããªããšã«ãjQueryãšAngularJSã䜿çšããŠäœæããããµã€ãã§ããDeepSeeWebïŒDSWïŒãšåŒã°ããå®å šã«ãªãŒãã³ãªè£œåã§ããgithubã§æããèŠã€ããŸããã ãããŠãçŽç²ãªDeepSeeãDBMSå ã§åäœããå Žåãã€ãŸã ããã«å°éããã«ã¯ãCaché管çããŒã¿ã«ã«ç§»åããå¿ èŠããããŸããDeepSeeWebã¯ãCachéã«ã€ã³ã¹ããŒã«ãããMDX2JSONããã±ãŒãžã«èšè¿°ãããŠããRESTãªã¯ãšã¹ãã䜿çšããŠãµãŒããŒã®åçŽãªã¯ã©ã€ã¢ã³ããšããŠåäœããŸãããèšèª-CachéObjectScriptïŒCOSïŒã åãªã¯ãšã¹ãã¯æ¬¡ã®ãšããã§ãã
ããã©ã«ãã®ãã³ãã©ã¯ã©ã¹ïŒCOSã®ã³ãŒããå«ãã¯ã©ã¹ãã¡ã€ã«ïŒã®ã宣èšããããšãã°REST.clsã ãã®ã¯ã©ã¹ã§ã¯ã次ã®XDATAã»ã¯ã·ã§ã³ãäœæãããŸãã
XData UrlMap { <Routes>
ãããŠãã¯ã©ã€ã¢ã³ãã®ãªã¯ãšã¹ãã«å¯ŸãããµãŒããŒã®åå¿ãå€æã§ããŸããåãªã¯ãšã¹ãã¯æ¬¡ã®ããã«å®£èšãããŸãã
<Route Url="/Test/:arg1/:arg2" Method="GET" Call="Test"/>
ããã§ãUrlã¯ãªã¯ãšã¹ãã®å®éã®ååã§ããhttpïŒ// <our server> / <application name> / Url
Urlã§ã¯ãåŒæ°arg1ãarg2ãæž¡ãããšãã§ããŸã...ãªã¯ãšã¹ãã¯æ¬¡ã®åœ¢åŒã«ãªããŸã
httpïŒ// <ãµãŒããŒ> / <ã¢ããªã±ãŒã·ã§ã³å> / Url / arg1 / arg2
ããã«ãèŠæ±ã¡ãœããïŒPOSTãGETãDELETEãªã©ïŒã瀺ãããåŒã³åºãã¯ãã¹ãŠã«ãã£ãŠå®äºããŸããããã¯ãå®éã«èŠæ±ãåŠçããæ©èœã§ãã
å€ãã®äººã¯ãã©ã®ãããªçš®é¡ã®<application name>ããªã¯ãšã¹ãã«åã蟌ããã«èå³ãæã£ãŠããã¯ãã§ãã RESTé¢æ°ã«ã¢ã¯ã»ã¹ããã«ã¯ãDBMSã§Webã¢ããªã±ãŒã·ã§ã³ãäœæããå¿ èŠããããŸã

ããã§ã¯ããµãŒããŒãç§ãã¡ã«äœãæãã§ãããããµãŒããŒãæ£ç¢ºã«ç解ããRESTãªã¯ãšã¹ãã®ãã³ãã©ãŒã¯ã©ã¹ãå®çŸ©ããååã圌ã«å°ããå¿ èŠããããŸãã
ãããããããããååãªçè«ããã®åé¡ã«é¢ãã詳现ã¯æ¬¡åã«è¿ãããå¯èœæ§ããããŸãã ãŸããp-spaceã«ã¯DeepSeeã«ã€ããŠã®æ å ±ãã»ãšãã©ãªãããšãèãããšã次åã¯å¿ ããããªããŸãã
DeepSeeWebã«ã€ããŠç¶ããŸãããã
段éçã«èŠãŠãããŸãããã
ã¡ã€ã³ã¡ãã¥ãŒïŒ

ãã®ãµã€ãã¯ãDeepSeeïŒå€ããã¶ã€ã³ïŒã§ä»¥åã«äœæããããã¹ãŠã®ããã·ã¥ããŒããã¢ããããŒãããMetroã¹ã¿ã€ã«ã§ããããããããããã©ã«ããŒå ã®å ã®æ§é ãç¶æããŸããã ç»é¢ã®äžéšã«ããã¬ã³ãã¢ã€ã³ã³ã¯ã泚ææ·±ãç®ããã¯ãããŸãããããã¯ãã¡ãã¥ãŒã¿ã€ã«ã®å€èŠ³ãèšå®ããã¢ãŒããžã®ç§»è¡ã§ãã

ããã¹ãã®è²ãã¢ã€ã³ã³ãã¿ã€ãã«ãè²ãå€æŽã§ããŸãã ãã ããæãèå³æ·±ãã®ã¯ãéžæããããã·ã¥ããŒãã«ããã°ã©ãã®1ã€ãããŒã¿ã¿ã€ã«ã«åºåããæ©èœã§ãã

ã¡ãã¥ãŒã«æ £ãããã次ã«é²ãã§ããã·ã¥ããŒãå ã«å ¥ããŸãããã

å€ããã¶ã€ã³ã®åãŠã£ãžã§ããã«ã¯ãæ°ãããŠã£ãžã§ããã«ç¬èªã®é¡äŒŒç©ããããŸããæ¥ç¶ã¯ãŠã£ãžã§ããã®ã¿ã€ãã«ãããã®ã§ããããã¹ãŠã®ãŠã£ãžã§ããã®ãªã¹ããèŠæ±ãããšãã¯ã©ã€ã¢ã³ãã¯ååãã¿ã€ããããã³ããŒã¿ã®åä¿¡èŠæ±ãåä¿¡ããã¯ã©ã€ã¢ã³ãã«ååšããã¿ã€ããšåä¿¡ãããã®ãæ¯èŒããŠè¡šç€ºããŸãã ãŠã£ãžã§ããèªäœã¯ã Highchartsã©ã€ãã©ãªã䜿çšããŠãæç»ããããŸããããã¯ãããŒã¿ãèŠèŠåããããã®éåžžã«åŒ·åãªããŒã«ã§ããéçºã®ããã«ãã°ã©ããç·åœ¢ãåãå圢ãã¿ã€ã ã©ã€ã³ãããã³ããããã«ã¹ã¿ãã€ãºããããã®å€ãã®æ¹æ³ãæäŸããŸããã©ã€ãã©ãªã¯ããã£ãŒãã䜿ã£ãŠå¥œããªããšãå®è¡ã§ãã巚倧ãªAPIã§ãã
ãããŠä»ãHighchartsã«ç²Ÿéãããšããã«ãããã·ã¥ããŒãã«ããã€ãã®ãã£ãŒãã衚瀺ããããšæãã§ãããããããŠã... ïŒ ããããç§ãã¡ã¯JavaScriptã䜿çšããŠããŸããã€ãŸããç§ãã¡ã«ãšã£ãŠäžå¯èœãªããšã¯äœããããŸããã ãããŠçå®ã¯ãéçºè ã¯èª°ããäœãæ°ãããã®ãè¿œå ããè¡åãåŸãããšãæåŸ ããŠãããšããããšã§ãã ãããŠã圌ãã¯è¿œå ã®å¯èœæ§ãèªèããããã®ããã«çŸãã圢ãäœããŸããïŒ

ããã¯åçŽãªJSONãšãã£ã¿ãŒã§ããŠã£ãžã§ããã®é åã宣èšããå¿ èŠãããããã®äžã§åæ°ãããªããžã§ã¯ãã¯åå¥ã®ãŠã£ãžã§ãããèšè¿°ããŸãã
url ïŒãŠã£ãžã§ããã説æããjsãã¡ã€ã«ãžã®ãã¹
ãã®ãã¡ã€ã«ã¯è§åºŠã®ããå·¥å Žã§ã
function PieChart(Utils) { function CustomWidget($scope) { âŠâŠ } } angular.module('widgets') .factory('PieChart', ['Utils', PieChartFact]);
class ïŒæå®ããããã¡ã€ã«ã®ãã¡ã¯ããªãŒã®åå
name ïŒèšè¿°ããŠãããŠã£ãžã§ããã®åå
type ïŒãŠã£ãžã§ããã®çš®é¡ãã°ã©ãã¯ãæ°ãããŠã£ãžã§ãããHighchartsã©ã€ãã©ãªã®ã°ã©ãã衚瀺ããããšã瀺ããŸãããŸããããããããããããã¹ããããããããã®çš®é¡ïŒè¡šãããã¹ãããããïŒããããŸãã
ããã§ãnameããããã£ã«æ»ããŸããããã§ã¯ãå®éã«æ°ãããŠã£ãžã§ããã®ååãååŸããŸããäœããèšè¿°ããããã«ããããäœæããå¿ èŠãããããã§ãã æ°ãããŠã£ãžã§ãããäœæããããšã¯ç§ã«ãšã£ãŠæãé£ããã¿ã¹ã¯ã§ããããšãããããŸããããéåžžã«ç°¡åã§ãREADMEã泚ææ·±ãèªãã§ãã ããã
ãããã£ãŠãæ°ãããŠã£ãžã§ãããäœæããã«ã¯ãCacheã§æ°ããã¯ã©ã¹ãäœæããå¿ èŠããããŸãããã®ã¹ã¿ãžãªã¯ãCacheãããã«å«ãŸããŠããŸãã

ãã¹ãŠïŒ æ°ãããã¡ã€ã«ãäœæããæžã蟌ã¿ãŸãïŒ
Class < > Extends %DeepSee.Component.Portlet.abstractPortlet { }
以äžã§ãæ°ãããŠã£ãžã§ãããäœæãããŸããã ããã·ã¥ããŒãã«è¡šç€ºããã«ã¯ãããã«é 眮ããå€ãDeepSee管çããŒã¿ã«ã«ç§»åããŠãŠã£ãžã§ãããè¿œå ããå¿ èŠããããŸãã以åã®å Žåã¯ãæ¢åã®ãã®ããéžæããŸãã

次ã«ãããŒãã¬ããã«ããŽãªããäœæãããŠã£ãžã§ãããéžæããŸãã

ããããç§ãäœæãããã¹ãŠã®ãŠã£ãžã§ããã®ãªã¹ãã§ãã

èšå®ã§èª¬æãããŠããªãã«ã¹ã¿ã ãŠã£ãžã§ããã¯ããã®ããã«èŠããŸããããã®ãããªãŠã£ãžã§ãããç¥ããããããã©ããããããããªãããšãå ±åããŸãã
ç¬èªã®ãŠã£ãžã§ãããè¿œå ããæ¹æ³ãããã£ãã®ã§ãè©ŠããŠã¿ãŸãããã æåã«ãHighchartsã©ã€ãã©ãªãŒããæ°ãããŠã£ãžã§ãããè¿œå ããŸãã
ããšãã°ãç§ãã¡ã®ãµã€ãã®1æéãããã®èšªåæ°ã衚瀺ãããã®ã

Highchartsã«ãããšããããã®ãã£ãŒãã¯spiderWebãšåŒã°ããŸã ã SpiderWeb.jsãã¡ã€ã«ãäœæããŠæžã蟌ã¿ãŸãã
function SpiderWebFact(BaseChart, Utils) { function SpiderWebChart($scope) { // scope //highcharts- BaseChart.apply(this, [$scope]); var _this = this; // bar, column, line, area, pie this.setType('line',true); // this.requestData(); // SpiderWeb var ex = { options: { plotOptions: { series: { // 0, // connectNulls: true } }, // tooltip: { shared: true, useHTML: true, formatter: function () { var t = this; /* jshint ignore:end */ var a= "<b>"+t.x+":00</b><table style = 'width: 100%;'>"; var all = 0; for(var i =0;i<t.points.length;i++) { var val = t.points[i].y; all+=val; val = val.toString().replace(/\B(?=(\d{3})+(?!\d))/g, " "); a += '<tr><td>'+_this.toTitleCase(t.points[i].series.name)+': </td><td style="text-align: right">' + '<b>' + val + "</b></td></tr>"; } if(t.points.length>1) a+= "<tr><td style = 'font-style: italic; font-weight: bold;'>: </td><td style='text-align: right'><b>"+all.toString().replace(/\B(?=(\d{3})+(?!\d))/g, " ")+"</b></td></tr><br></table>"; return a; } } }, yAxis: { // SpiderWeb, , gridLineInterpolation: 'polygon', lineWidth: 0, min: 0 }, xAxis: { // 00, // 01,02,03 ⊠labels: { formatter: function () { return this.value + ':00'; } } } }; // Utils.merge($scope.chartConfig, ex); } return SpiderWeb; } // angular.module('widgets') .factory('SpiderWebChart', ['BaseChart', 'Utils', SpiderWebFact]);
次ã«ãCacheã§ã¯ã©ã¹ãäœæããŸããããæ··ä¹±ããªãããã«ãSpiderWebãšãåŒã³ãŸãã
Class User.SpiderWeb Extends %DeepSee.Component.Portlet.abstractPortlet { }
ããã®ãŠãŒã¶ãŒã¯ããã¡ã€ã«ã眮ããããã©ã«ããŒã®ååã§ãããã©ã«ããŒã¯ä»»æã§ãã 次ã«ãæ°ãããŠã£ãžã§ãããèšå®ã«è¿œå ããŸããæãåºãããã«ããã§ã«äžèšã®äŸã®ãŠã£ãžã§ããã1ã€ããã®ã§ãèšå®ã¯æ¬¡ã®åœ¢åŒã«ãªããŸãã
{ "widgets": [ { "url": "src/factories/pieChart.js", "class": "PieChart", "name": "user.piewithvalues", "type": "chart" }, { "url": "src/factories/ SpiderWeb.js", "class": " SpiderWeb Chart", "name": "user.spiderweb", "type": "chart" }
ããŠããã®ãŠã£ãžã§ãããå€ãããŒã¿ã«ã«è¿œå ãããšãæ°ãããŠã£ãžã§ããäžã«åžæã®åœ¢åŒã§è¡šç€ºãããŸãã
ãã®èšäºã¯éåžžã«é·ãããšãå€æããŸãããæ å ±ã圹ç«ã€ããšãé¡ã£ãŠããŸãã次åã¯ãHighchartsã©ã€ãã©ãªãšã¯é¢ä¿ã®ãªããŠã£ãžã§ããã®è¿œå ãéå§ã§ããããã«ãªããŸãã
ãŸããDeepSeeWebã®ãªãŒãã³æ§ã«ãããã³ãã¥ããã£ã¯ãããžã§ã¯ãã®éçºã«åå ã§ããæé«ã®ã¢ã€ãã¢ãåžåã§ããŸãã ç§ã¯3ãæã®ä»äºãããŠããŸããããã«ãªã¯ãšã¹ãã¯1åã ãã§ããã
èå³ããããããã«ãDeepSee BIã·ã¹ãã ã§ã®æåã®ããŒãžã§ã³ãšããŠåŸããã®ã®ã¹ã¯ãªãŒã³ã·ã§ããã以äžã«ç€ºããŸãã

æ°ããèå³æ·±ãæ©èœ-æ¥ä»ã«ãããã£ã«ã¿ãŒïŒå³é ïŒãšããã¹ããŠã£ãžã§ããã
PSããŒã¿ãäžè¶³ããŠç³ãèš³ãããŸããããäœã衚瀺ããäœãé衚瀺ã«ããããŸã 決å®ããŠããªãããããã¹ãŠãé衚瀺ã«ããŸãã
â DeepSeeWebãžã®ãªã³ã¯