Mule ESB 3.6起動
Mule 3.7での同エントリを書きました。
Mule ESB 3.6をしばらく触ってみようと思います。 環境はOSX 10.10.4です。
Mule ESB 3.6ダウンロード
今回はMule Community Editionでできることを調査しようと思います。 でもマニュアルにあるMule CEのダウンロードのリンクから移動しても、このEnterprise版のダウンロードページに飛ばされてしまいます。要確認だけど、取りあえず、こちらに含まれるStandaloneだけを使います。
Muleの起動
mmc-distribution-mule-console-bundle-3.6.1.zip
を解凍します。
MMCなども入っていますが、Runtimeモジュールのbinフォルダに移動します。
$ cd mmc-distribution-mule-console-bundle-3.6.1/mule-enterprise-3.6.1/bin
起動コマンドを実行します。
$ ./mule
起動ログ
いろんなソフトウェアをやっているとログは読み物だなと、思います。 ログを根気よく読むとソフトウェアが何をやっているのかが分かる。
$ ./mule MULE_HOME is set to /Users/rsogo/work/mmc-distribution-mule-console-bundle-3.6.1/mule-enterprise-3.6.1 Running in console (foreground) mode by default, use Ctrl-C to exit... MULE_HOME is set to /Users/rsogo/work/mmc-distribution-mule-console-bundle-3.6.1/mule-enterprise-3.6.1 Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 Running Mule Enterprise Edition... --> Wrapper Started as Console Java Service Wrapper Standard Edition 32-bit 3.5.19 Copyright (C) 1999-2013 Tanuki Software, Ltd. All Rights Reserved. http://wrapper.tanukisoftware.com Licensed to mulesoft.com for Mule ESB Enterprise Edition Launching a JVM... Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 Valid license key --> Evaluation = true, Expiration Date = Mon Aug 03 00:00:00 JST 2015, Contact Name = MuleSource Support, Contact Email Address = support@mulesource.com, Contact Telephone = support@mulesource.com, Contact Company = MuleSource, Contact Country = US, Entitlements = Starting the Mule Container... WrapperManager: Initializing... INFO 2015-07-04 06:56:00,050 [WrapperListener_start_runner] org.mule.module.launcher.MuleContainer: ********************************************************************** * Mule ESB and Integration Platform * * Version: 3.6.1 Build: 0758df2b * * MuleSoft, Inc. * * For more information go to * * http://www.mulesoft.com/mule-esb-enterprise * * * * Server started: 15/07/04 6:56 * * JDK: 1.7.0_71 (mixed mode) * * OS: Mac OS X (10.10.4, x86_64) * * Host: Ryohei-no-MacBook-Pro.local (192.168.11.5) * ********************************************************************** INFO 2015-07-04 06:56:00,089 [WrapperListener_start_runner] org.mule.module.launcher.coreextension.DefaultMuleCoreExtensionManager: Initializing core extensions INFO 2015-07-04 06:56:00,125 [WrapperListener_start_runner] com.mulesoft.mule.cluster.hazelcast.config.ClusterTicketFileLoader: /Users/rsogo/work/mmc-distribution-mule-console-bundle-3.6.1/mule-enterprise-3.6.1/.mule/mule-cluster.properties (No such file or directory) WARN 2015-07-04 06:56:00,131 [WrapperListener_start_runner] com.mulesoft.mule.cluster.boot.ClusterCoreExtension: No cluster ID was specified -- High Availability will be disabled: INFO 2015-07-04 06:56:00,250 [WrapperListener_start_runner] com.mulesoft.mule.plugin.manager.MulePluginManager: Registering plugin: mule-plugin-debugger-3.6.0-RC1 INFO 2015-07-04 06:56:00,274 [WrapperListener_start_runner] org.mule.lifecycle.AbstractLifecycleManager: Initialising: 'Mule Agent Core Extension'. Object is: AgentCoreExtension INFO 2015-07-04 06:56:00,453 [WrapperListener_start_runner] org.mule.lifecycle.AbstractLifecycleManager: Initialising RegistryBroker WARN 2015-07-04 06:56:00,721 [WrapperListener_start_runner] org.mule.module.ognl.expression.OgnlExpressionEvaluator: OGNL module is deprecated and will be removed in Mule 4.0. Use MEL expressions instead. INFO 2015-07-04 06:56:01,261 [WrapperListener_start_runner] org.mule.config.processors.DecoratingAnnotatedServiceProcessor: org.mule.config.AnnotationsParserFactory implementation not found in registry, annotations not enabled INFO 2015-07-04 06:56:01,863 [WrapperListener_start_runner] org.mule.util.journal.TransactionJournal: Using files for tx logs /Users/rsogo/work/mmc-distribution-mule-console-bundle-3.6.1/mule-enterprise-3.6.1/./.mule/.agent/queue-tx-log/tx1.log and /Users/rsogo/work/mmc-distribution-mule-console-bundle-3.6.1/mule-enterprise-3.6.1/./.mule/.agent/queue-tx-log/tx2.log INFO 2015-07-04 06:56:01,883 [WrapperListener_start_runner] org.mule.util.journal.TransactionJournal: Using files for tx logs /Users/rsogo/work/mmc-distribution-mule-console-bundle-3.6.1/mule-enterprise-3.6.1/./.mule/.agent/queue-xa-tx-log/tx1.log and /Users/rsogo/work/mmc-distribution-mule-console-bundle-3.6.1/mule-enterprise-3.6.1/./.mule/.agent/queue-xa-tx-log/tx2.log INFO 2015-07-04 06:56:01,885 [WrapperListener_start_runner] org.mule.util.journal.TransactionJournal: Using files for tx logs /Users/rsogo/work/mmc-distribution-mule-console-bundle-3.6.1/mule-enterprise-3.6.1/./.mule/.agent/queue-tx-log/tx1.log and /Users/rsogo/work/mmc-distribution-mule-console-bundle-3.6.1/mule-enterprise-3.6.1/./.mule/.agent/queue-tx-log/tx2.log INFO 2015-07-04 06:56:01,886 [WrapperListener_start_runner] org.mule.util.journal.TransactionJournal: Using files for tx logs /Users/rsogo/work/mmc-distribution-mule-console-bundle-3.6.1/mule-enterprise-3.6.1/./.mule/.agent/queue-xa-tx-log/tx1.log and /Users/rsogo/work/mmc-distribution-mule-console-bundle-3.6.1/mule-enterprise-3.6.1/./.mule/.agent/queue-xa-tx-log/tx2.log INFO 2015-07-04 06:56:01,945 [WrapperListener_start_runner] org.mule.lifecycle.AbstractLifecycleManager: Initialising model: _muleSystemModel INFO 2015-07-04 06:56:02,113 [WrapperListener_start_runner] org.mule.module.launcher.coreextension.DefaultMuleCoreExtensionManager: Starting core extensions INFO 2015-07-04 06:56:02,113 [WrapperListener_start_runner] org.mule.lifecycle.AbstractLifecycleManager: Starting: 'Mule Agent Core Extension'. Object is: AgentCoreExtension INFO 2015-07-04 06:56:02,114 [WrapperListener_start_runner] org.mule.util.queue.QueueXaResourceManager: Starting ResourceManager INFO 2015-07-04 06:56:02,114 [WrapperListener_start_runner] org.mule.util.queue.QueueXaResourceManager: Started ResourceManager INFO 2015-07-04 06:56:02,128 [WrapperListener_start_runner] org.mule.modules.oauth2.provider.agents.DefaultSplashScreenAgent: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + DevKit Extensions (0) used in this application + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ INFO 2015-07-04 06:56:02,129 [WrapperListener_start_runner] org.mule.lifecycle.AbstractLifecycleManager: Starting model: _muleSystemModel INFO 2015-07-04 06:56:02,137 [WrapperListener_start_runner] org.mule.module.management.agent.WrapperManagerAgent: Mule is embedded in a container already launched by a wrapper.Duplicates will not be registered. Use the org.tanukisoftware.wrapper:type=WrapperManager MBean instead for control. INFO 2015-07-04 06:56:02,153 [WrapperListener_start_runner] org.mule.DefaultMuleContext: ********************************************************************** * Application: .agent * * OS encoding: /, Mule encoding: UTF-8 * * * * Agents Running: * * DevKit Extension Information * * Batch module default engine * * Clustering Agent * * JMX Agent * ********************************************************************** INFO 2015-07-04 06:56:02,158 [WrapperListener_start_runner] org.eclipse.jetty.server.Server: jetty-9.0.7.v20131107 INFO 2015-07-04 06:56:02,371 [WrapperListener_start_runner] /mmc-support: Initializing Spring root WebApplicationContext INFO 2015-07-04 06:56:02,371 [WrapperListener_start_runner] org.springframework.web.context.ContextLoader: Root WebApplicationContext: initialization started INFO 2015-07-04 06:56:02,515 [WrapperListener_start_runner] org.springframework.web.context.support.XmlWebApplicationContext: Refreshing Root WebApplicationContext: startup date [Sat Jul 04 06:56:02 JST 2015]; root of context hierarchy INFO 2015-07-04 06:56:03,163 [WrapperListener_start_runner] org.springframework.web.context.support.ServletContextAttributeExporter: Exported ServletContext attribute with name 'discoveryEngine' INFO 2015-07-04 06:56:03,472 [WrapperListener_start_runner] org.quartz.core.SchedulerSignalerImpl: Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl INFO 2015-07-04 06:56:03,473 [WrapperListener_start_runner] org.quartz.core.QuartzScheduler: Quartz Scheduler v.1.8.5 created. INFO 2015-07-04 06:56:03,475 [WrapperListener_start_runner] org.quartz.simpl.RAMJobStore: RAMJobStore initialized. INFO 2015-07-04 06:56:03,476 [WrapperListener_start_runner] org.quartz.core.QuartzScheduler: Scheduler meta-data: Quartz Scheduler (v1.8.5) 'scheduler' with instanceId 'NON_CLUSTERED' Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally. NOT STARTED. Currently in standby mode. Number of jobs executed: 0 Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 10 threads. Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered. INFO 2015-07-04 06:56:03,477 [WrapperListener_start_runner] org.quartz.impl.StdSchedulerFactory: Quartz scheduler 'scheduler' initialized from an externally provided properties instance. INFO 2015-07-04 06:56:03,477 [WrapperListener_start_runner] org.quartz.impl.StdSchedulerFactory: Quartz scheduler version: 1.8.5 INFO 2015-07-04 06:56:03,479 [WrapperListener_start_runner] org.quartz.core.QuartzScheduler: JobFactory set to: org.springframework.scheduling.quartz.AdaptableJobFactory@5e8db999 INFO 2015-07-04 06:56:03,555 [WrapperListener_start_runner] org.springframework.context.support.DefaultLifecycleProcessor: Starting beans in phase 2147483647 INFO 2015-07-04 06:56:03,555 [WrapperListener_start_runner] org.springframework.scheduling.quartz.SchedulerFactoryBean: Starting Quartz Scheduler now INFO 2015-07-04 06:56:03,556 [WrapperListener_start_runner] org.quartz.core.QuartzScheduler: Scheduler scheduler_$_NON_CLUSTERED started. INFO 2015-07-04 06:56:03,569 [WrapperListener_start_runner] org.springframework.web.context.ContextLoader: Root WebApplicationContext: initialization completed in 1197 ms INFO 2015-07-04 06:56:03,651 [WrapperListener_start_runner] /mmc-support: Initializing Spring FrameworkServlet 'api' INFO 2015-07-04 06:56:03,651 [WrapperListener_start_runner] org.springframework.web.servlet.DispatcherServlet: FrameworkServlet 'api': initialization started INFO 2015-07-04 06:56:03,657 [WrapperListener_start_runner] org.springframework.web.context.support.XmlWebApplicationContext: Refreshing WebApplicationContext for namespace 'api-servlet': startup date [Sat Jul 04 06:56:03 JST 2015]; parent: Root WebApplicationContext INFO 2015-07-04 06:56:03,900 [WrapperListener_start_runner] org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping: Mapped URL path [/v3/muleContextService] onto handler '/v3/muleContextService' INFO 2015-07-04 06:56:03,901 [WrapperListener_start_runner] org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping: Mapped URL path [/v3/muleConfigurationService] onto handler '/v3/muleConfigurationService' INFO 2015-07-04 06:56:03,901 [WrapperListener_start_runner] org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping: Mapped URL path [/v3/wrapperManagerService] onto handler '/v3/wrapperManagerService' INFO 2015-07-04 06:56:03,901 [WrapperListener_start_runner] org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping: Mapped URL path [/v3/auditService] onto handler '/v3/auditService' INFO 2015-07-04 06:56:03,901 [WrapperListener_start_runner] org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping: Mapped URL path [/v3/flowService] onto handler '/v3/flowService' INFO 2015-07-04 06:56:03,902 [WrapperListener_start_runner] org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping: Mapped URL path [/v3_1/clusterNodeService] onto handler '/v3_1/clusterNodeService' INFO 2015-07-04 06:56:03,902 [WrapperListener_start_runner] org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping: Mapped URL path [/v3/trackingService] onto handler '/v3/trackingService' INFO 2015-07-04 06:56:03,902 [WrapperListener_start_runner] org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping: Mapped URL path [/v1/systemFileService] onto handler '/v1/systemFileService' INFO 2015-07-04 06:56:03,902 [WrapperListener_start_runner] org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping: Mapped URL path [/v1/muleFileService] onto handler '/v1/muleFileService' INFO 2015-07-04 06:56:03,902 [WrapperListener_start_runner] org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping: Mapped URL path [/v1/threadsService] onto handler '/v1/threadsService' INFO 2015-07-04 06:56:03,903 [WrapperListener_start_runner] org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping: Mapped URL path [/v1/memoryService] onto handler '/v1/memoryService' INFO 2015-07-04 06:56:03,903 [WrapperListener_start_runner] org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping: Mapped URL path [/v3/statusService] onto handler '/v3/statusService' INFO 2015-07-04 06:56:03,903 [WrapperListener_start_runner] org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping: Mapped URL path [/v1/jmxService] onto handler '/v1/jmxService' INFO 2015-07-04 06:56:03,903 [WrapperListener_start_runner] org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping: Mapped URL path [/v3/poolService] onto handler '/v3/poolService' INFO 2015-07-04 06:56:03,903 [WrapperListener_start_runner] org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping: Mapped URL path [/v1/statisticsService] onto handler '/v1/statisticsService' INFO 2015-07-04 06:56:03,903 [WrapperListener_start_runner] org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping: Mapped URL path [/v3/statisticsService] onto handler '/v3/statisticsService' INFO 2015-07-04 06:56:03,904 [WrapperListener_start_runner] org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping: Mapped URL path [/v3/systemService] onto handler '/v3/systemService' INFO 2015-07-04 06:56:03,904 [WrapperListener_start_runner] org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping: Mapped URL path [/v1/alertService] onto handler '/v1/alertService' INFO 2015-07-04 06:56:03,904 [WrapperListener_start_runner] org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping: Mapped URL path [/v1/slaService] onto handler '/v1/slaService' INFO 2015-07-04 06:56:03,904 [WrapperListener_start_runner] org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping: Mapped URL path [/v3/applicationService] onto handler '/v3/applicationService' INFO 2015-07-04 06:56:03,904 [WrapperListener_start_runner] org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping: Mapped URL path [/v3/applicationLogService] onto handler '/v3/applicationLogService' INFO 2015-07-04 06:56:04,122 [WrapperListener_start_runner] org.springframework.web.servlet.DispatcherServlet: FrameworkServlet 'api': initialization completed in 471 ms INFO 2015-07-04 06:56:04,127 [WrapperListener_start_runner] /mmc-support: AgentServlet: Starting MMC Agent. INFO 2015-07-04 06:56:04,129 [WrapperListener_start_runner] /mmc-support: AgentServlet: Initialized com.mulesoft.mmc.agent.web.AgentServlet@f51d94d with ID c71a8cd9-dc7e-4750-bc51-d1faf204ceea INFO 2015-07-04 06:56:10,825 [WrapperListener_start_runner] org.eclipse.jetty.server.handler.ContextHandler: Started o.e.j.w.WebAppContext@2046bc37{/mmc-support,jar:file:/Users/rsogo/work/mmc-distribution-mule-console-bundle-3.6.1/mule-enterprise-3.6.1/lib/mule/mmc-agent-impl-3.6.1.jar!/mmc-support-app,AVAILABLE} INFO 2015-07-04 06:56:10,839 [WrapperListener_start_runner] org.eclipse.jetty.server.ServerConnector: Started ServerConnector@b094e09{HTTP/1.1}{0.0.0.0:7777} INFO 2015-07-04 06:56:10,862 [WrapperListener_start_runner] org.eclipse.jetty.server.ServerConnector: Stopped ServerConnector@b094e09{HTTP/1.1}{0.0.0.0:7777} INFO 2015-07-04 06:56:10,966 [WrapperListener_start_runner] org.eclipse.jetty.server.ServerConnector: Started ServerConnector@44e995bf{SSL-HTTP/1.1}{0.0.0.0:7777} INFO 2015-07-04 06:56:10,967 [WrapperListener_start_runner] com.mulesoft.mmc.agent.AgentCoreExtension: Mule Agent Core Extension listening on (0.0.0.0:7777) INFO 2015-07-04 06:56:10,972 [WrapperListener_start_runner] org.mule.module.launcher.DefaultArchiveDeployer: ================== New Exploded Artifact: default INFO 2015-07-04 06:56:10,980 [WrapperListener_start_runner] org.mule.module.launcher.MuleSharedDomainClassLoader: Using domain dir /Users/rsogo/work/mmc-distribution-mule-console-bundle-3.6.1/mule-enterprise-3.6.1/domains/default for domain default INFO 2015-07-04 06:56:11,077 [WrapperListener_start_runner] org.mule.module.launcher.MuleDeploymentService: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + Started domain 'default' + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ INFO 2015-07-04 06:56:11,079 [WrapperListener_start_runner] org.mule.module.launcher.DefaultArchiveDeployer: ================== New Exploded Artifact: default INFO 2015-07-04 06:56:11,101 [WrapperListener_start_runner] org.mule.module.launcher.application.DefaultMuleApplication: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + New app 'default' + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ INFO 2015-07-04 06:56:12,140 [WrapperListener_start_runner] org.mule.module.launcher.MuleDeploymentService: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + Started app 'default' + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ INFO 2015-07-04 06:56:12,192 [WrapperListener_start_runner] org.mule.module.launcher.DeploymentDirectoryWatcher: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + Mule is up and kicking (every 5000ms) + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ INFO 2015-07-04 06:56:12,207 [WrapperListener_start_runner] org.mule.module.launcher.StartupSummaryDeploymentListener: ********************************************************************** * - - + DOMAIN + - - * - - + STATUS + - - * ********************************************************************** * default * DEPLOYED * ********************************************************************** ******************************************************************************************************* * - - + APPLICATION + - - * - - + DOMAIN + - - * - - + STATUS + - - * ******************************************************************************************************* * default * default * DEPLOYED * *******************************************************************************************************
Enterprise UX 2015 2日目
Lean Engineering: Principles for Enabling Build/Measure/Learn in the Enterprise
Bill Scott
Paypalの人。 Lean Engineeringという開発チームが学習していくプロセスを紹介してました。
Lean gives a brain to agile. Is this dual track agile @jeffpatton? So excited to hear @billwscott speak at #eux15 pic.twitter.com/KE0zHvDTyk
— Audrey Crane (@audcrane) 2015, 5月 14
"Agile is a machine fed by the backlog. Lean UX gives it a brain.” And a heart! @billwscott #eux15 pic.twitter.com/PvgwcBDQBk
— Amy Jiménez Marquez (@amymarquez) 2015, 5月 14
これは自社でも活かせそう。
How to Coach Enterprise Experimentation
Alissa Briggs
Lean Experienceというのは知らなかったです。いろいろ方法論が紹介されましたが、下記がさくっとまとまっていました。 Top 5 Lean Startup Experiment Examples
Innovation Studios: the Engines of Enterprise
Jeff Gothelf
LEAN UXの著者。 企業の中でイノベーションを起こすときにどうするか、という話し。
ハッカソンは楽しいけど、一時的なものでしかないよ。
会社横断の取り組みとして、Adobe Kickboxが引用されていました。
どれも難しいけど、Innovation Studioがまだましかな、と。
Anatomy of an innovation studio #eux15 pic.twitter.com/miN6tocfRo
— Leanna Gingras (@leegoesplaces) 2015, 5月 14
A Consistent Culture of Design
Phil Gilbert
IBM Design: design in motionの偉い人。
IBM Design Languageというのを作っていて、Design Thinkingのフレームワークや、フォントサイズやカラーパレットなどのリソース、サンプルが公開されています。 www.ibm.com
Case Study: Citrix and Corporate Change
Julie Baher
Citrixの会社の変革の話し。初日のキーノートの細かいストーリー。
Qualitative Approaches and Enterprise Outcomes
Nathan Shedroff
そして、このHR。強そう。
Another good candidate for best slide of the day. @nathanshedroff #eux15 pic.twitter.com/grjK9xW7L3
— Audrey Crane (@audcrane) 2015, 5月 14
Liminal Thinking: Sense-making for systems in large organizations
Dave Gray
Enterprise UX 2015 1日目
5月13日から15日までEnterprise UX 2015がSan Antonioであって、参加してきました。 アメリカ中のいろんなところから参加者が集まってましたが、日本からはNCDCからの3名だけでした。
講師は有名な人が多くて、参考になることも多かったです。 ITmediaのブログの方に、感想などまとめますが、こちらにはログ的に生情報をばんばん上げていきます。
スケジュール
とにかく、海外のカンファレンスは朝が早い。朝食もランチも付いてる。 この日も7時にホテルのロビーに集合して、出発しました。
The Enterprise UX Journey: Lessons learned and the journey ahead
Catherine Courage
キーノート。 CitrixのCXのExecutive。
Customer Experienceの向上を、CEOの旗振りのもとやってますよーという話し。 UIやデザインの話しは1枚くらいしかなくて、会社全体での顧客体験についてでした。 製品も、マーケティングも、出荷も全部対象にしている。 すごく良かった。
終わった後に、参加者からUXとCXの違いはなにか?という質問があって、「会社全体のCXがあって、その中に購入者のUX、エンドユーザーのUXのようにペルソナごとのUXがあるんだよ。」という回答でした。
Insight Types That Influence Enterprise Decision Makers
Christian Rohrer
Intel Securityで、ソフトウェアのUXを担当している。 マカフィーってIntelに買収されたんですね。
SecurityとすばらしいUser Experienceは接点少ないよ、と自虐ネタ。
"Almost the null set" #eux15 pic.twitter.com/IVpjQsjDGf
— Richard Dalton (@mauvyrusset) 2015, 5月 13
企業向けのソフトウェアの場合、UXの対象はエンドユーザーだけではなくて、ソフトウェアの購入のキーマンや、システム管理者も考えないと行けない。
UX Researchは沢山あって、対象に合わせてどのメソッドを使うかは選択すること。 www.nngroup.com
Data Science and Design: A Tale of Two
Chris Chapo
データサイエンスと、デザインの関係について。
#eux15 Fantastic overview of data & design thru three simple points :-) via @chapo pic.twitter.com/0DIrarrWJl
— Uday Gajendar (@udanium) 2015, 5月 13
Emotion Economy: Ethnography as Corporate Strategy
Kelly Goto
The Architecture of Understanding
Peter Morville
オライリーのIAの本を書いている人。
- 資料
Slides: The Architecture of Understanding #eux15 https://t.co/RMRoXU0iIN
— Peter Morville (@morville) 2015, 5月 13
Next Generation Design Systems
David Cronin
GEの取り組み。 Design Systemということで、GEで使用するデザインのマテリアルや、部品をリポジトリを作っている。検索したけど、公開してないのかなー。
部品にはPSDもあれば、CSSもある。
個人的に参考になった初日No1の内容。
Next gen design system guidelines at GE @davcron #eux15 pic.twitter.com/E6opNkXs17
— Stephen James (@tweetllama) 2015, 5月 13
X11 ForwardingとOSX、Windowsからのリモート接続の話し
普段、X11はあまり使いませんが、今回、Oracle Databaseをサーバーにセットアップする必要があったので、OUIのために環境を用意しました。
環境は、社外のデータセンターのサーバーで、自宅から接続するため、SSHでトンネリングして、X11を使う必要がありました。
やりかたは複数
- CygwinX(Windows)やXQuartz(OSX)でSSHの-Xオプションを使う
- CygwinXやXmingのようなX ServerとPuttyや、TeraTermのようなX11フォーワーディングの設定ができるSSHクライアントを組み合わせる
サーバー側の設定
X11 Forwardingの設定が有効になっているか確認。
netstatで確認すると、リモートサーバー側で6000+オフセットの値のポートがリッスンされています。下の例だと、オフセットが10で設定されている。
$ netstat -tan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:6010 0.0.0.0:* LISTEN
DISPLAY変数は設定しなくても、自動で設定されます。
$ env | grep DISPLAY
DISPLAY={Remote Server}:10.0
仕組みとしては、リモートサーバー側のDISPLAYで受けて、SSH経由でローカルPCのDIPLAYに転送してくれるようです。
次、クライアント側の設定です
1. CygwinX(Windows)やXQuartz(OSX)でSSHの-Xオプションを指定する
ssh -X -v {User}@{Remote Server}
-X
を付けるとForwardingが有効となります。
-v
を付けることで、詳細なメッセージがでるため、上手く利用できない場合は、-v
を付けてエラーの内容を見ていきます。
この状態で、Xが必要なプログラムを実行すると、ウィンドウが立ち上がります。
もともとこのやり方で、OSX環境でやろうとしていました。 が、問題がありました。この方法でOracle DBのOUIを実行した場合、ボタンなどのUIコンポーネントを操作することができませんでした。xeyeなんかは普通に実行できたので、アプリケーションの作りによって相性がありそうです。
2. CygwinXやXmingのようなX ServerとPuttyや、TeraTermのようなX11フォーワーディングの設定ができるSSHクライアントを組み合わせる
さて、実際にはこのやり方でやりました。
Puttyや、TeraTermにはX11転送のための設定があります。それを有効にすればOKです。 Puttyや、TeraTerm上でXが必要なプログラムを実行するとローカルPC側のDIPLAYにそれぞれのターミナルソフトが転送してくれます。
それにしても、Oracle DBをセットアップする上で、インストーラーがGUIである必要はまったくないですよね。 ファイルを使ったサイレント・インストールも用意されているけど、GUIとできることが違うし。システム要件の事前チェックのスキップとか。
Linuxや、Redhatをセットアップするときのように、CUIでインタラクティブに設定させてもらえると楽だなぁ。
参考させていただいたサイト
Docker上でのJBossの構築 on OSX
これまでOSX(Yosemite 10.10.1)で下記の実験を行いました。
Mac OSXでDocker(インストール編) - そごうソフトウェア研究所
DockerでコンテナにJavaを入れるまで - そごうソフトウェア研究所
今回はJBossを入れて動かすところまでやっていきたいと思います。
Dockerfile
# Dockerfile
FROM centos:6
MAINTAINER Ryohei Sogo
# install package
RUN yum update -y
RUN yum install -y java-1.7.0-openjdk
RUN yum install -y java-1.7.0-openjdk-devel
RUN yum install -y wget
RUN yum install -y tar
# JBoss
ADD ./files/jboss-as-7.1.1.Final.tar.gz /opt
# なぜかADDしただけで解凍されている
# RUN tar -zxf /var/tmp/jboss-as-7.1.1.Final.tar.gz -C /opt
ADD ./files/standalone.xml /opt/jboss-as-7.1.1.Final/standalone/configuration/
# Create user
RUN useradd jboss
RUN chown -R jboss /opt/jboss-as-7.1.1.Final
# JBoss
EXPOSE 9080
Dockerfileの内容としては、次のような感じです。
- 事前にダウンロードしておいたjboss-as-7.1.1をADDでイメージに追加する
- 設定ファイルを変更する必要があるので、standalone.xmlもADDでイメージに追加する
- JBoss実行用のjbossユーザーを作成し、jboss-as-7.1.1の所有者をjbossユーザーに変える
- 9080ポートをEXPOSEで公開(standalone.xmlの中で9080ポートを使用するように指定している)
standalone.xmlも晒しておきます。 standalone.xml
なんでか、ADDしただけでtar.gzファイルが解凍されてて、確認しないといけないです。 ADD ./files/jboss-as-7.1.1.Final.tar.gz /opt
コンテナの起動
コンテナを起動します
あとでデーモンモードで起動させるようにするけど、取りあえず今は'-t -i'オプションを指定して、インタラクティブモードでコンテナを起動します。
$ docker run -t -i -P rsogo/apppot_runtime /bin/bash
[root@fbf427c7d0a4 /]#
コンテナにはいれましたので、jbossユーザーになって、JBossを起動させます。
[root@fbf427c7d0a4 /]# su jboss
[jboss@fbf427c7d0a4 /]$ /opt/jboss-as-7.1.1.Final/bin/standalone.sh
=========================================================================
JBoss Bootstrap Environment
JBOSS_HOME: /opt/jboss-as-7.1.1.Final
JAVA: java
JAVA_OPTS: -server -XX:+UseCompressedOops -XX:+TieredCompilation -Xms64m -Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -Djboss.server.default.config=standalone.xml
=========================================================================
ホスト側でコンテナの状況を確認します。
起動していますね。コンテナでEXPOSEした9080ポートがホスト側の49158ポートに割り当てられていることも確認できます。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fbf427c7d0a4 rsogo/apppot_runtime:latest "/bin/bash" 42 seconds ago Up 40 seconds 0.0.0.0:49155->9080/tcp pensive_lovelace
確認
アドレスの確認
$ boot2docker ip
192.168.59.103
実際にアクセスします。
URLはboot2docker ip
で確認したIPアドレスと、docker ps
で確認した際に9080がマッピングされているポートです。
今回の例だとhttp://192.168.59.103:49155
です。
OKですね。
OSXのboot2dockerでのIPアドレス確認ではまった
AnsibleからからDocker上のコンテナにsshでアクセスしたいだけなのにえらい時間がかかった。 結論から言うと'boot2docker ip'でOK。
使用例
$ boot2docker ip 192.168.59.103
はまった経緯は、いろんなDockerのネットワーク周りのブログを見るとdocker0というネットワークインターフェイスができるよ、と書いてあるがifconfigしてもでてこない。
docker inspectでコンテナの情報が表示され、その中のIPアドレスでアクセスできるんだろうと思っていたけど、できない。
docker inspect --format ' {{ .NetworkSettings.IPAddress }} ' test01
172.17.0.71
$ telnet 172.17.0.71 22
Trying 172.17.0.71...
telnet: connect to address 172.17.0.71: Operation timed out
telnet: Unable to connect to remote host
'boot2docker ip'を使ってみる。
$ boot2docker ip
192.168.59.103
$ telnet 192.168.59.103 22
Trying 192.168.59.103...
Connected to 192.168.59.103.
Escape character is '^]'.
SSH-2.0-OpenSSH_6.0
^C
OK。ちなみにこのIPアドレスの特定の仕方は下記のOSX用のインストールのマニュアルに記載されていた。ブログ等を見るのも良いけど、トラブった時は一次情報を参照せよという良い例。